Programmable Systems - PowerPoint PPT Presentation

1 / 146
About This Presentation
Title:

Programmable Systems

Description:

... (full name arithmetic and logic unit (ALU)) is the 'brain' of the microcontroller. ... The eight bits in a byte are labelled bits 0 to 7, from right to left. ... – PowerPoint PPT presentation

Number of Views:71
Avg rating:3.0/5.0
Slides: 147
Provided by: Pli1
Category:

less

Transcript and Presenter's Notes

Title: Programmable Systems


1
Programmable Systems
MUSSELBURGH GRAMMAR SCHOOL
Gary Plimer 2004
2
Programmable Systems Outcome 3
  • Outcome 3 - Microcontroller Controlled
    Mechatronic Systems
  • Section 1 Introduction
  • The purpose of this section is to introduce the
    microcontroller and it's architecture.
  • When students have completed this unit they
    should be able to
  • Describe the operation and architecture of
    microcontrollers.
  • Understand the terms ALU, RAM, ROM, EEPROM and
    bus.
  • Understand how the Basic Stamp system operates.

3
Programmable Systems Outcome 3 Section 1
MUSSELBURGH GRAMMAR SCHOOL
Gary Plimer 2004
4

Programmable Systems Outcome 3
What is a microcontroller? REVISION
A microcontroller is often described as a
'computer-on-a-chip'. Microcontrollers have
memory, processing units, and input/output
circuitry all built into a single chip. As they
are small and inexpensive they can easily be
built into other devices to make these products
more intelligent and easier to use.
5

Programmable Systems Outcome 3
What is a microcontroller? REVISION
Microcontrollers are usually programmed to
perform one specific control task for instance, a
microwave oven may use a single microcontroller
to process information from the keypads, display
user information on the seven segment display,
and control the output devices (turntable motor,
light, bell and magnetron). Microcontrollers are
computers designed to control specific processes
or products. The microcontroller is programmed
with a specific software program to complete the
desired task. By altering this software program
the same microcontroller can be used to complete
different tasks. Therefore the same device can be
used in a range of different products by simply
programming it with a different software program.
6

Programmable Systems Outcome 3
What is a microcontroller? REVISION
One microcontroller can often replace a number
of separate parts, or even a complete electronic
circuit. Some of the advantages of using
microcontrollers in a product design are
increased reliability and reduced stock inventory
(as one microcontroller replaces several parts),
simplified product assembly and smaller end
products, greater product flexibility and
adaptability since features are programmed into
the microcontroller and not built into the
electronic hardware rapid product changes or
development by changing the program and not the
electronic hardware. Applications that use
microcontrollers include household appliances,
alarm systems, medical equipment, vehicle
subsystems, and electronic instrumentation.
Although microprocessor systems (such as those
based around the Intel Pentium processor) tend
to be more widely publicised (mainly via personal
computer systems), microcontroller manufacturers
actually sell hundreds of microcontrollers for
every microprocessor sold.
7

Programmable Systems Outcome 3
Microcontroller Architecture
Microcontrollers contain all these features
within a single package, as opposed to the
microprocessor system where each block in the
diagram above is normally a separate integrated
circuit. In general the only component that needs
to be added to a microcontroller is a clock
resonator, which sets the operating speed of the
microcontroller.
8

Programmable Systems Outcome 3
Microcontroller Architecture - Terminology
Arithmetic / Logic Unit (ALU) and Clock The
processing unit (full name arithmetic and logic
unit (ALU)) is the 'brain' of the
microcontroller. It operates by reading
instructions from the read only memory ROM and
then carrying out the mathematical operations for
each instruction.
The clock circuit within the microcontroller
'synchronises' all the internal blocks (ALU, ROM,
RAM etc.) so that the system remains stable. The
clock circuit is built into the microcontroller,
but an external crystal or resonator is required
to set the clock frequency. A typical clock
frequency for use with a microcontroller is 4MHz,
but speeds as high as 20MHz can also be achieved.
With a clock frequency of 4MHz the
microcontroller completes one million
instructions a second!
9

Programmable Systems Outcome 3
Microcontroller Architecture - Terminology
Microcontrollers contain both ROM (permanent
memory) and RAM (temporary memory). The ROM
(Read Only Memory) contains the operating
instructions (i.e. the 'program') for the
microcontroller. The ROM is 'programmed' before
the microcontroller is installed in the target
system, and the memory retains the information
even when the power is removed. Most
microcontrollers are one-time-programmable types,
which means the ROM can only be programmed once.
If you make a mistake, and have to change the
program, the chip has to be thrown away and a new
chip programmed with the revised program. To
overcome this problem some microcontrollers now
use FLASH EEPROM memory instead. This type of
'erasable-permanent' memory allows the ROM to be
re-programmed if a mistake is made.
10

Programmable Systems Outcome 3
Microcontroller Architecture - Terminology
RAM Random Access Memory, is 'temporary' memory
used for storing information whilst the program
is running. This memory is 'volatile', which
means that as soon as the power is disconnected
the contents of the memory is lost.
Buses Information is carried between the various
blocks of the microcontroller along 'groups' of
wires called buses. The 'data bus' carries the
8-bit data between the ALU and RAM / Input-Output
registers, and the 'program bus' carries the
13-bit program instructions from the ROM. The
size of the data bus provides a description for
the microcontroller. Therefore an '8 bit
microcontroller' has a data bus '8-bits' wide.
Microcontrollers with 16-bit and 32-bit data
buses are also available.
11

Programmable Systems Outcome 3
Microcontroller Architecture - Terminology
Input/Output Circuitry (I/O Ports) Microcontrolle
rs communicate with the outside world via pins
which are grouped together in 'ports', with up to
eight pins in each port. Smaller microcontrollers
may only have one port, whilst larger devices may
have five or more. Generally each pin within the
port can be configured as an output or as an
input, or can even be multiplexed to change
functions as the program is run!
Timers Most microcontrollers have one or more
'timers' built into the system. The 'watchdog
timer' is the most common type of timer. This is
a special timer that 'resets' the microcontroller
if it stops processing for any reason (e.g. a
'bug' in the program). This ensures that the
microcontroller continues working at all times -
which is essential in some applications, for
instance medical monitoring equipment.
12

Programmable Systems Outcome 3
The Basic Stamp
The program instructions are written on a host
computer in the simple PBASIC language. The
download cable is then connected from the
computer to the module, and the program is
downloaded into the EEPROM memory chip. The
download cable is then removed, and the program
(now stored in the memory chip) is carried out
sequentially by the microcontroller 'interpreter'
chip.
13

Programmable Systems Outcome 3
  • Programming Procedure
  • Write the program on a host computer using the
    Stamp software.
  • Connect the download cable from the computer
    to the Stamp Controller.
  • Connect the power supply to the Stamp
    Controller.
  • Use the Stamp software to download the
    program. The download cable can be removed (if
    desired) after the download.

14

Programmable Systems Outcome 3
Pupil Assignment no.1
  • List the advantages of using a microcontroller
    within a product design.
  • Describe the input sensors and output
    transducers that may be linked to a
    microcontroller in the following common household
    appliances
  • - microwave oven
  • - washing machine
  • - electronic bicycle speedometer
  • Explain the following microcontroller terms
    ALU, bus, clock
  • Explain the differences between the following
    types of memory
  • RAM, ROM, EEPROM

15
Programmable Systems Outcome 3 Section 2
MUSSELBURGH GRAMMAR SCHOOL
Gary Plimer 2004
16
Programmable Systems Outcome 1
Outcome 3 - Microcontroller Controlled
Mechatronic Systems
  • Section 2 - Number Systems
  • The purpose of this section is to introduce the
    main number systems used within programmable
    systems for the processing of information.
  • When students have completed this unit they
    should be able to
  • Use the following terms correctly decimal,
    binary, hexadecimal.
  • Describe contexts when it is appropriate to use
    the three different number systems.
  • Convert between decimal, binary and
    hexadecimal number systems.

17

Programmable Systems Outcome 3
Number Systems
Microcontrollers only recognises the two
electronic states high and low. This number
system uses just two digits 0 and 1. An
electrical signal which is low is represented by
'logic 0', and a signal which is high is
represented by a 'logic 1'.
Write down the first sixteen numbers in the
decimal and binary system
18

Programmable Systems Outcome 3
Number Systems Notation
Before we introduce different number systems, we
need to help the Stamp Controller to
differentiate between them. When using a number
of different counting systems it is important to
distinguish which counting system you are using.
For instance the number '10' means three
different values in the three different counting
systems! Therefore the following notations are
used within PBASIC programs Decimal values are
written as usual 10 ( 10 in decimal) Binary
values are preceded by a symbol 10 ( 2 in
decimal) Hexadecimal values are preceded by an
symbol 10 ( 16 in decimal)
19

Programmable Systems Outcome 3
Number Systems
Bits and Bytes Eight bits grouped together are
described as a byte. The decimal value of a byte
is calculated by adding together the
corresponding decimal value of each of the
individual bits. The eight bits in a byte are
labelled bits 0 to 7, from right to left. The
right most bit is called the Least Significant
Bit (LSB) and the left most bit is called the
Most Significant Bit (MSB). The decimal value of
each bit is given in the table below
bit number 7 6 5 4 3 2 1 0
decimal value 128 64 32 16 8 4 2 1
20

Programmable Systems Outcome 3
Pupil Assignment No.2
Convert each of the following binary numbers
into decimal 11110000 11000011 01010101 1010
1010
bit number 7 6 5 4 3 2 1 0
decimal value 128 64 32 16 8 4 2 1
21

Programmable Systems Outcome 3
Pupil Assignment No.2
Convert each of these decimal numbers into
binary 17 23 11 38 33
bit number 7 6 5 4 3 2 1 0
decimal value 128 64 32 16 8 4 2 1
22

Programmable Systems Outcome 3
Hexadecimal Number System
Writing binary numbers in groups of eight bits is
quite time consuming, although on some occasions
binary numbers are very useful to clearly
illustrate the condition of each bit in a byte.
However a more user-friendly system of writing
numbers is the hexadecimal system. The
hexadecimal system uses 16 different digits - 0
to 9 and A to F. The 'digits' A to F correspond
to the decimal numbers 10 to 15.
Decimal Hexadecimal
10 A
11 B
12 C
13 D
14 E
15 F
23

Programmable Systems Outcome 3
Decimal Binary Hexadecimal
0 0000 0
1 0001 1
2 0010 2
3 0011 3
4 0100 4
5 0101 5
6 0110 6
7 0111 7
8 1000 8
9 1001 9
10 1010 A
11 1011 B
12 1100 C
13 1101 D
14 1110 E
15 1111 F
24

Programmable Systems Outcome 3
  • Converting Binary to Hexadecimal
  • Divide the binary number into groups of nibbles
    (four bits)
  • Convert the nibbles into decimal
  • Convert the decimal nibbles into hexadecimal
    (i.e. convert any decimal values greater than 9
    into the hexadecimal letter 'digits')
  • Example
  • Convert 01101010 into hexadecimal
  • Divide into nibbles 0110-1010
  • Convert into decimal 6-10
  • Convert into hexadecimal 6-A
  • Therefore 01101010 6A

25

Programmable Systems Outcome 3
Pupil Assignment No.2
Convert the following binary numbers to
hexadecimal 11011101 11111001 01010101 1
0101010 11001010
26

Programmable Systems Outcome 3
  • Converting Hexadecimal to Binary
  • Convert AF into binary
  • Divide into separate digits A-F
  • Convert to decimal 10-15
  • Convert to binary 1010-1111
  • Join the two four bit numbers 10101111
  • Therefore AF 10101111

27
Programmable Systems Outcome 3
Converting Decimal to Hex Convert 450 to
Hex Think about base 16, 163 162 161 160 409
7 256 16 1 For 450 we need x1 x12 x2 In
Hex 1 C 2 1C2
28
Programmable Systems Outcome 3 Section 3
MUSSELBURGH GRAMMAR SCHOOL
Gary Plimer 2004
29
Programmable Systems Outcome 1
Outcome 3 - Microcontroller Controlled
Mechatronic Systems
  • Section 3 - Simple Control Routines
  • The purpose of this section is to introduce the
    PBASIC commands used in developing control
    program listings.
  • When students have completed this unit they
    should be able to
  • Understand the use of flowcharts.
  • Develop flowcharts from a brief.
  • Understand the most common PBASIC commands.
  • Write PBASIC programs that involve loops, if
    statements and sub-procedures.

30

Programmable Systems Outcome 3
Port Addressing and the Data Direction
Register Microcontrollers communicate with the
outside world by input/output pins which are
grouped together in 'ports'. The Stamp
Controller has one input/output port, which
contains eight input/output pins. Each pin can
be addressed individually, or all eight pins in
the port can be addressed simultaneously. In the
PBASIC language the pins are labelled 0 to 7, and
the whole port address is allocated the label
'pins'. For example, to switch pin 3 'high'
individually the command would be high 3 To
switch pin 3 'low' individually the command
would be low 3
31

Programmable Systems Outcome 3
Port Addressing and the Data Direction Register
input/output pin 7 6 5 4 3 2 1 0
bit of address 'pins' 7 6 5 4 3 2 1 0
decimal value 128 64 32 16 8 4 2 1
To switch all pins 'high' the command would be
let pins 255 To switch all pins 'low' the
command would be let pins 0 To switch pins 0-2
'high' and pins 3-7 'low' the command would
be let pins 00000111
Note how the use of the binary number system can
be used on this occasion to clearly illustrate
which pins are switched high (1) or low (0).
32

Programmable Systems Outcome 3
The Data Direction Register (DDR)
Each pin can be configured to be an output (to
send digital signals) or an input (to receive
digital signals).
The Data Direction Register (DDR) is used to
configure the port, and in the PBASIC language
the DDR is allocated the label 'dirs'.
If all the bits in the DDR are set high then all
the pins will be set as outputs. If all the bits
are set low each pin will be set as an input.
For example, let dirs 255 ' set all pins as
outputs let dirs 0 ' set all pins as
inputs let dirs 11110000 ' set 0-3 inputs,
4-7 outputs
Every PBASIC program listing should always begin
with a 'let dirs ' statement to correctly setup
the DDR.
33

Programmable Systems Outcome 3
Beginning Programming
Consider the simple Flowchart shown
opposite. The Flowchart helps us plan our
programming. Now have a look at the next slide
which shows a possible solution to this Flowchart
34

Programmable Systems Outcome 3
Beginning Programming
A PBASIC program which would achieve this control
operation is let dirs 11110000 ' set pins
0-3 inputs, 4-7 outputs high 7 ' set pin 7
high pause 2000 ' wait for 2 seconds ( 2000
ms) high 6 ' set pin 6 high pause 1000 '
wait for 1 second let pins 11110000 ' set
pins 4-7 high pause 3000 ' wait for 3
seconds let pins 0 ' switch all pins
low end ' end the program
35

Programmable Systems Outcome 3
Labels and Addressing
Sometimes it is necessary to create programs that
loop 'forever', as shown by the flowchart. In
this case it is necessary to add labels to the
program, and to use the 'goto' command to jump to
the line marked by the label.
Study the Flowchart then look at the solution on
the next slide.
36

Programmable Systems Outcome 3
Labels and Addressing (Continued)
A PBASIC program which would achieve this control
operation is listed below. init let dirs
11110000 ' set pins 4-7 as outputs main high
7 ' set pin 7 high pause 2000 ' wait for 2
seconds high 6 ' set pin 6 high pause 1000 '
wait for 1 second let pins 11110000 ' set
pins 4-7 high pause 3000 ' wait for 3
seconds let pins 0 ' switch all pins
low pause 1000 ' wait for 1 second goto
main ' loop forever
37

Programmable Systems Outcome 3
Labels and Addressing (Continued)
Activity 1 Key in, download and run the program
listed above. After the first line (which simply
sets up the DDR), a label called 'main' has been
added to the listing. Note that all address
labels must end with a colon () when they are
first defined. It is also a good programming
technique to use tabs (or spaces) at the start of
lines without labels so that all the commands are
neatly aligned. The term 'white-space' is used
by programmers to define tabs, spaces and blank
lines, and the correct use of white-space can
make the program listing much easier to read and
understand. The last line 'goto main' causes
program flow to 'jump back' to the line labelled
main'. This means that this program will loop
'forever'.
38

Programmable Systems Outcome 3
Assignment 1 What is the function of the Data
Direction Register (DDR)? What is meant by the
term "white-space"? Why is it important to use
white-space and comments when writing programs?
39

Programmable Systems Outcome 3
Assignment 2
A set of temporary traffic lights are required
for a system of road-works.
Draw a flowchart for the lights sequence shown by
one set of the traffic lights. Use the times
shown in the table for each stage. Write a
PBASIC program to achieve this operation. Use the
following pin configuration - red (7), amber (6)
and green (5).
red 10 sec
red and amber 2 sec
green 10 sec
amber 2 sec
40

Programmable Systems Outcome 3
Assignment 3
Write a high level program in PBASIC to control
the movement of the buggy as shown by the
flowchart opposite.
41

Programmable Systems Outcome 3
For...Next Loops
A for...next loop is used when you wish to repeat
a section of code a number of times. The number
of times the program runs for is set by a
variable. A variable is a number that is stored
in the RAM memory of the Stamp Controller. There
are 14 memory locations that byte variables can
be stored in. These locations are labelled b0 to
b13, but can also be 'renamed' to more
appropriate names by use of the 'symbol' command.
42

Programmable Systems Outcome 3
For...Next Loops
Activity Study the following program. In your
own words, write down what you expect the program
to do. Now, key in, download and run the
following program to check your answer. symbol
counter b0 ' define the variable
"counter" symbol red 7 ' define pin 7 with
the name "red init let dirs 10000000 ' set
up pin 7 as an output main for counter 1 to
5 ' start a for...next loop high red ' switch
pin 7 high pause 1000 ' wait for 1 second low
red ' switch pin 7 low pause 1000 ' wait for
1 second next counter ' end of for...next
loop end ' end program
43

Programmable Systems Outcome 3
Assignment 4
A buggy is to follow the path shown opposite.
Draw a flowchart for the movement of the buggy,
making use of a for...next command structure.
Write a high level program in PBASIC to control
the movement of the buggy as shown by your
flowchart. (Assume it takes 1.5 seconds to turn
90 degrees).
44

Programmable Systems Outcome 3
Assignment 5
Input Connection Pin Output Connection
7
6 Yellow Light
5 Purple Light
4
3 Blue Light
2 Green Light
1
0 Red Light
As part of a Christmas decoration, a lighting
sequence is to be controlled by a
microcontroller. The output connections are shown
opposite.
The red and green lights should come on together
and stay on for 5 seconds. Then they both go off
and the yellow and blue lights should come on
together for 8 seconds. They then go off and the
purple light flashes on and off 6 times (the 'on'
and 'off' times being 0.5 seconds each). The
sequence then repeats itself continuously. Draw
a flowchart and write a PBASIC program for this
sequence.
45

Programmable Systems Outcome 3
If...Then... command
The if...then programming structure allows the
computer to make a decision based on information
received from an input pin. Note the symbol
used in the flowchart
Give an example of where this type of control
might be used
46

Programmable Systems Outcome 3
If...Then... Command Activity
Key in, download and run the program listed
below. init let dirs 10000000 ' setup the
DDR main let pins 10000000 ' switch pin 7
high if pin3 1 then skip ' jump to 'skip' if
input 3 is high goto main ' loop skip let pins
0 ' switch all pins off end ' end the
program
To test the program you will need to connect the
sensors module to the Stamp Controller, and
connect a micro-switch to sensor 3 on the sensor
module.
Note The then command can only be followed by a
label to jump to.
47

Programmable Systems Outcome 3
Assignment 6
Develop a PBASIC program that will carry out the
instructions shown in the flowchart opposite.
48

Programmable Systems Outcome 3
Assignment 7
A motor, connected to pin 7, is to run when a
'start' switch (connected to pin 2) is
momentarily pressed. The motor continues to run
until another 'stop' switch (connected to pin 3)
is pressed - at which point the motor switches
off. The system should then reset to wait for
another 'start' signal. Draw a flowchart and
write a PBASIC program for this sequence.
49

Programmable Systems Outcome 3
Assignment 8
Connect 2 motors to the output driver module (or
MFA movement module) as shown in the diagram.
Connect micro-switch 'bumpers' to pins 0 and 1 on
the Stamp Controller via the screw terminals as
shown below.
The motors should run in a forward direction
until either of the two micro-switch bumpers are
activated. At this point the motors should
reverse for 3 seconds, then stop. One motor
should then switch on for 2 seconds, then stop.
Both motors should then switch on. Draw a
flowchart and write a PBASIC program to control
the movement of the buggy as described above.
50

Programmable Systems Outcome 3
Develop a PBASIC program that will carry out the
instructions shown in the flowchart opposite. Use
the following pin configuration.
Assignment 9
Input Connection Pin Output Connection
7 Red Light
6 Amber Light
5 Green Light
4
Start Switch 3
51

Programmable Systems Outcome 3
Sub-Procedures
It is often useful to be able to re-use sections
of code within a program. A sub-procedure is a
small section of code that can be 'called' from a
different part of the program. After the
sub-procedure is finished program flow moves back
to the original section of the program. To
'call' a sub-procedure the gosub
(go-to-sub-procedure) command is used. The last
line of the sub-procedure must be return, which
means 'return to the original position'.
52

Programmable Systems Outcome 3
Activity
Key in, download and run the following
program. init let dirs 10000000 ' setup the
DDR main let pins 10000000 ' switch pin 7
high let b1 5 ' give variable b1 the value
5 gosub flash ' call sub-procedure pause
2000 ' wait two seconds let b1 20 ' give
variable b1 the value 20 gosub flash ' call
sub-procedure pause 2000 ' wait two
seconds let b1 10 ' give variable b1 the
value 10 gosub flash ' call sub-procedure paus
e 2000 ' wait two seconds end ' end the
main program ' Sub-procedures start here.
Continued on next page
53

Programmable Systems Outcome 3
Activity Continued
flash for b2 1 to b1 ' setup a
for...next loop using b2 high 7 ' output
pin on pause 100 ' wait 100ms low 7 '
output pin off pause 100 ' wait 100ms next
b2 ' next loop return ' return form
sub-procedure
In this example the flash sub-procedure is used
to actually flash the LED on and off. The number
of times the LED flashes is set by variable b1,
which is set before the sub-procedure is called.
Therefore by changing the value of b1 the number
of flashes can be changed. Note the end command
between the main program and the sub-procedure.
This is essential because it stops the Stamp
Controller accidentally 'running into' the
sub-procedure after the main program has been
completed.
54

Programmable Systems Outcome 3
Activity Continued
One further advantage of sub-procedures is that
they are easily copied from one program to
another. Therefore a 'standard' sub-procedure can
be created to carry out a specific task. This
task can then be carried out in a number of
different programs by simply copying the
sub-procedure from program to program.
55

Programmable Systems Outcome 3
Assignment 10
As part of a shop display, a lighting sequence is
to be controlled by a microcontroller. The output
connections are shown below.
Input Connection Pin Output Connection
7 Red Light
6 Yellow Light
5 Green Light
4 Orange Light
3
switch 2 2
switch 1 1
0
56

Programmable Systems Outcome 3
Assignment 10 continued
If switch 1 is pressed, each light should flash
on and off in sequence i.e. orange then green
then yellow then red (each 'on' and 'off' time
should be 0.5 seconds), this should be repeated 5
times. The system then resets for the next switch
push. If switch 2 is pressed all lights should
flash simultaneously 3 times. There should then
be a 2 second pause, before all lights should
flash simultaneously 6 times (each 'on' and 'off'
time should be 0.5 seconds). The system then
resets for the next switch push. Draw a
flowchart and write a PBASIC program for this
sequence (use a sub-procedure for the flash
routines).
57

Programmable Systems Outcome 3
Assignment 11
A sequence of events for the operation of the
washing machine is given in the table below
Step 1 Wait until the door switch is closed.
Step 2 Wait until the start switch is pushed.
Step 3 Rotate the drum clockwise for 10 seconds.
Step 4 Rotate the drum anti-clockwise for 10 seconds
Repeat steps 3 and 4 10 times
Step 5 Rotate the drum clockwise for 5 seconds.
Step 6 Rotate the drum anti-clockwise for 5 seconds
Repeat steps 5 and 6 5 times
Draw a Flow Chart, write, and test, a PBASIC
program for the control sequence described above.
58

Programmable Systems Outcome 3
Assignment 12
The diagram shows the layout of a pulper machine
used in a paper mill. A batch of pulp and
fillers, i.e. 5 x 20 kg bales of pulp and 2 x 50
kg bags of fillers, is mixed during the pulping
process with 1600 litres of water. The operation
of the pulping process is controlled by a
microcontroller. The microcontroller connections
are as shown on the next slide.
59

Programmable Systems Outcome 3
Assignment 12 continued
Input Connection Pin Output Connection
7 Agitator motor
6 Dump Pump
5 Conveyer
4 Inlet valve
3
2
1
Start switch 0
60

Programmable Systems Outcome 3
Event Operator Action Control Activity
1 Load conveyer with batch
2 Press start button Sequence commences.
3 Open inlet valve. Close valve after 10 minutes.
4 1 minute after inlet valve opens, start agitator motor. run agitator motor for 11 minutes.
5 Start conveyer 2 minutes after inlet valve opens. Run conveyer for 3 minutes.
6 1 minute after agitator motor stops, start dump pump. run dump pump for 3 minutes.
7 Reset and wait for next start command.
61

Programmable Systems Outcome 3
Assignment 12 continued
  • Based on the instructions given in the table,
    draw up a flow chart which shows the control
    sequence for the pulping sequence.
  • (b) With reference to your flow chart, write a
    high level program in PBASIC to control the
    operation of the pulper.
  • Assume use of a pre-written time delay
    sub-procedure called 'delay' which will
  • produce a time delay in multiples of one minute,
    according to the value set in the
  • variable 'mins' before the sub-procedure is
    called.
  • Example - To wait five minutes let mins 5
  • gosub delay

62

Programmable Systems Outcome 3
Specialised Commands
The PBASIC language also contains some
specialised commands dedicated for use with
microcontrollers. One of the most useful
commands is serout. The serout command can be
used to send serial ASCII text strings out of a
single pin. This can be used to send information
to a host computer via a serial link, or to
another device, such as the serial LCD module,
which can interpret ASCII text strings.
63

Programmable Systems Outcome 3
Specialised Commands
For example, to send the word "Hello" out of pin
7, the PBASIC command would be serout 7, T2400,
(254,128) serout 7,T2400,("Hello") Connect the
serial LCD module to the Stamp Controller and try
the above command.
64

Programmable Systems Outcome 3
Activity
Enter and run the following program
init let dirs 10000000 ' make pin 7 an
output let pins 10000000 ' switch pin 7
high main pause 5 ' short pause serout
7,T2400,(254,1) ' send 'clear LCD'
command pause 500 ' wait 0.5 second serout
7,T2400,(254,128) ' send 'line 1'
command serout 7,T2400,("Hello!") ' send
message pause 1000 ' wait 1 second serout
7,T2400,(254,192) ' send 'line 2'
command serout 7,T2400,("Goodbye!") ' send
message pause 1000 ' wait 1 second goto
main ' loop
65

Programmable Systems Outcome 3
Activity
Enter and run the following program
symbol counter b0 ' define the
variable init let dirs 10000000 ' make pin
7 an output let pins 10000000 ' switch pin
7 high pause 5 ' short pause serout
7,T2400,(254,1) ' send 'clear LCD'
command pause 30 ' wait 30 ms main for
counter 0 to 20 ' start a for...next loop
serout 7,T2400,(254,128) ' send 'line 1'
command serout 7,T2400,("Count ") ' send
message serout 7,T2400,(counter," ") '
send counter value pause 500 ' wait 0.5
second next counter ' next loop end
66

Programmable Systems Outcome 3
Assignment 13
Connect two switches to the input module, and the
serial LCD module, to the Stamp Controller. When
the switch connected to pin '0' is pressed the
Stamp Controller should add 1 to the current
total, and then display the new value on the LCD.
When the switch connected to pin '1' is pressed
the Stamp Controller should subtract 1 from the
current total, and then display the new value on
the LCD. Draw a flowchart and write a PBASIC
program to control the operation described above.
67

Programmable Systems Outcome 3
Assignment 13 solution
68

Programmable Systems Outcome 3
symbol counter b0 ' define the
variable init let dirs 10000000 ' make pin
7 an output let pins 10000000 ' switch pin
7 high pause 5 ' short pause serout
7,T2400,(254,1) ' send 'clear LCD'
command pause 30 ' wait 30 ms main serout
7,T2400,(254,128) ' send 'line 1'
command serout 7,T2400,("Value ") ' send
message serout 7,T2400,(counter," ") ' send
counter value pause 1000 ' wait 1
sec loop if pin0 1 then add1 ' test switch
0 if pin1 1 then take1 ' test switch
1 goto loop add1 let counter counter 1 '
add 1 goto main ' refresh display take1 let
counter counter - 1 ' take 1 goto main '
refresh display
69
Programmable Systems Outcome 3 Section 4
MUSSELBURGH GRAMMAR SCHOOL
Gary Plimer 2004
70
Programmable Systems Outcome 1
Outcome 3 - Microcontroller Controlled
Mechatronic Systems
  • Section 4 - Mechatronic System Interfacing
    Circuits
  • The purpose of this section is to understand the
    need for interfacing input and output devices
    when building mechatronic systems that are
    controlled by a microcontroller.
  • When students have completed this unit they
    should be able to
  • Explain why interfacing circuits are required
    within mechatronic systems.
  • Select appropriate interfacing techniques for
    common output devices.
  • Understand the different operation of common
    switch types.
  • Understand how unipolar stepper motors are
    controlled.
  • Understand the need for D-A conversion.
  • Understand how push-pull drivers are used to
    control dc motors.
  • Understand pulse-width modulated control of dc
    motors.
  • Understand the term 'soft-start' when applied
    to dc motor
  • Write PBASIC programs to control stepper motors
  • Write PBASIC programs to control

71

Programmable Systems Outcome 3
Mechatronic System Interfacing Circuits
The microcontroller input/output pin can only
provide a small drive current when configured as
an output. Therefore most output devices require
an interfacing circuit. The simplest interfacing
circuit uses a bipolar transistor, and the
Darlington pair configuration is often used to
increase the drive current capabilities.
72

Programmable Systems Outcome 3
Mechatronic System Interfacing Circuits
The ULN2803A integrated circuit can be very
useful because it contains eight 'Darlington
transistor pairs' in a convenient 18 pin DIL
package. For added convenience the back emf
protection diodes are also included on the
integrated circuit. The Stamp Controller output
driver uses this type of integrated circuit.
73

Programmable Systems Outcome 3
Mechatronic System Interfacing Circuits
For devices which use larger currents (e.g. a
solenoid), or a separate power supply (e.g. mains
electricity) , a relay can be used. The relay is
usually driven by a transistor as shown in the
diagram.
74

Programmable Systems Outcome 3
Connecting Digital Switches
Digital switches are available in two main
'families'. Normally-open switches are the most
common. As the name suggests, the contacts on
these switches are normally open, so the switch
is electrically 'off'. When the switch is
activated the contacts close and so the switch is
electrically 'on'. Note Your Teacher will
discuss pull up Pull down resistors.
75

Programmable Systems Outcome 3
Assignment 14
Draw appropriate interfacing circuit diagrams for
the following output devices. Clearly explain
your choice of circuit in each case. a) LED
b) Buzzer c) 6V DC motor d) 12V DC
solenoid e) 24V pneumatic solenoid valve
76

Programmable Systems Outcome 3
Assignment 14
Write, and test, a PBASIC program for the control
sequence shown in the diagram opposite.
Input Connection Pin Output Connection
7 Bolt
6 Buzzer
5 Green LED
4 Red LED
Switch 3 3
Switch 2 2
Switch 1 1
0
77

Programmable Systems Outcome 3
Stepper Motors
Stepper motors are very accurate motors that are
commonly used in computer disk drives, printers,
XY plotters and clocks. Unlike dc motors, which
spin round freely when power is applied, stepper
motors require that their power supply be
continuously pulsed in specific patterns. For
each pulse, the stepper motor moves around one
'step', typically 7.5 degrees (giving 48 steps in
a full revolution).
Stepper motors do have some limitations. First,
the power consumption is greatest when the
stepper motor is stopped (as all coils are still
energised). Secondly the output torque is not
very high, and so some type of gearbox is
normally required. Unless this gearbox is very
carefully designed the 'backlash' of the gears
can disrupt the accuracy of the final system.
Finally the speed of revolution is limited to
around 100 steps per second, which provides a
rotational speed of 2 rev / s or 120 rev / min.
78

Programmable Systems Outcome 3
Stepper Motors
There are two main types of stepper motors -
unipolar and bipolar. Unipolar motors usually
have four coils which are switched on and off in
a particular sequence. Bipolar motors have two
coils in which the current flow is reversed in a
similar sequence. It is the unipolar type which
is described in this section.
The stepper motor contains magnets which are
fixed to the central armature. Four electronic
coils are located around the casing. When a
current is passed through these coils they
generate a magnetic field, which attract/repels
the permanent magnets on the armature, and so the
armature spins one 'step' until the magnetic
fields align. The coils are then energised in a
different pattern to create a different magnetic
field, and the armature spins another step.
79

Programmable Systems Outcome 3
Stepper Motors
To make the armature rotate continuously the four
coils must be switched on and off in a certain
order. Many microcontroller systems use four
output lines to control the stepper motor, each
output line controlling the power to one of the
coils.
80

Programmable Systems Outcome 3
Assignment 15
  • Describe three products which may contain
    stepper motors.
  • Describe how the motor is used in each case.
  • A toy manufacturer is designing a new
    programmable robot toy. Describe the advantages
    and disadvantages of using stepper motors
    (rather than dc motors) to manoeuvre the robot.

81

Programmable Systems Outcome 3
Assignment 16
Connect a stepper motor to the output driver
module as shown. Develop a PBASIC program that
will rotate the stepper motor 48 steps in one
direction, and then 48 steps in the other
direction.
82
Programmable Systems Outcome 3
The table below shows the four different steps
required to make the motor turn. Copy the table
into your workbook
Step Coil 4 (output 7) Coil 3 (output 6) Coil 2 (output 5) Coil 1 (output 4)
1 1 0 1 0
2 1 0 0 1
3 0 1 0 1
4 0 1 1 0
1 1 0 1 0
83

Programmable Systems Outcome 3
Stepper Motor Driver IC
The use of four output pins to drive a stepper
motor can be an inefficient way to use the
microcontroller input/output pins. A dedicated
integrated circuit, called the SAA1027 stepper
motor driver, has been designed to overcome this
problem by building the logic step generator, and
the transistor switches, into one package.
84

Programmable Systems Outcome 3
Activity, key in the following program
symbol direct 5 ' pin 5 is direction
pin symbol clock 4 ' pin 4 is clock
pin symbol counter b0 ' variable b0 is loop
counter init let dirs 00110000 ' pin 4 5
outputs main high direct ' set dir pin
high for counter 1 to 48 ' setup a for...next
loop high clock ' clock pin high pause
10 ' wait 10ms low clock ' clock pin low
pause 10 ' wait 10ms next counter ' next
loop low direct ' set dir pin high for
counter 1 to 48 ' setup a for...next loop
high clock ' clock pin high pause 10 ' wait
10ms low clock ' clock pin low pause
10 ' wait 10ms next counter ' next loop goto
main ' loop forever
Continued
85

Programmable Systems Outcome 3
Activity, connect the MFA boards to the Stamp as
shown. Run the program.
86

Programmable Systems Outcome 3
Assignment 17
Crystal glassware is decorated by cutting grooves
on to the outside surface. The process leaves the
untouched parts of the glass clear and
reflective, whereas the cut grooves are dull and
rough and require to be polished. The diagram
shows the layout of a prototype system, developed
by a student, to polish crystal glasses with
eight parallel grooves cut along the length of
the glass.
87

Programmable Systems Outcome 3
Assignment 17 continued
The system is to be controlled by a
microcontroller. With a glass in place, the start
button is pressed to cause the cutting disk to
switch on and move into the cutting position. The
first groove is cut for five seconds. The cutter
is then withdrawn. The stepper motor rotates the
glass through 90 degrees into position for the
next groove. The process continues until all four
grooves have been cut. The stepper motor used by
the student has a step angle of 7.5 degrees. It
is controlled by means of an SAA1027 driver IC
signalled from the microcontroller.
88

Programmable Systems Outcome 3
Assignment 17 continued
Input Connection Pin Output Connection
7 Pneumatic Cylinder (1 outstroke, 0 instroke)
6 DC Motor (1 on, 0 off)
5 Stepper Pulse (0 to 1 pulse 1 step)
4 Stepper Direction (1 clockwise, 0 anticlockwise)
3
2
1
Start button (logic 1 when pressed) 0
89

Programmable Systems Outcome 3
Assignment 17 continued
Calculate the number of steps the stepper motor
must rotate to rotate the glass through 90
degrees. Draw up a flow chart which shows the
control sequence for the polishing
process. With reference to your flow chart,
write a high level program in PBASIC to control
the polishing process.
90

Programmable Systems Outcome 3
Push-Pull Motor Drivers
The L293D IC is a push-pull driver and is
included on the Output Driver module. The table
shows the pin combinations to drive the motor
forward or backward.
pin 4 pin 5 motor A pin 6 pin 7 motor B
0 0 halt 0 0 halt
0 1 forward 0 1 forward
1 0 reverse 1 0 reverse
1 1 halt 1 1 halt
91

Programmable Systems Outcome 3
Activity, key in and run the following program
init let dirs 11110000 ' make pins 4-7
outputs main let pins 01010000 ' motors
forward pause 3000 ' pause for 3 sec let
pins 00000000 ' motors halt pause 3000 '
pause for 3 sec let pins 10100000 ' motors
reverse pause 3000 ' pause for 3 sec let
pins 11110000 ' motors halt pause 3000 '
pause for 3 sec goto main ' loop forever
92

Programmable Systems Outcome 3
Assignment 18
A single block of material is to be moved
continuously back and forth along a conveyer belt
without falling off either end. Draw a flowchart
that will control the movement as described.
Write, and test, a PBASIC program for the control
sequence as drawn in your flowchart.
93

Programmable Systems Outcome 3
DC Motor Speed Control
The speed of a dc motor varies directly with the
voltage applied across it. Microcontroller do
not normally have an analogue output, and so they
cannot be used to vary the voltage to a motor in
this manner. However there are two main methods
by which a microcontroller can control the speed
of a DC motor Digital to Analogue Conversion
(DAC) Pulse Width Modulation
94

Programmable Systems Outcome 3
Digital to Analogue Conversion
The simplest way to control the speed of a DC
motor is to vary the voltage applied to the motor
coils - the higher the voltage the faster the
motor will spin (within the motor operating
limits). However the digital output from a
microcontroller is at a fixed voltage, and the
microcontroller cannot supply enough current to
drive the motor. Therefore an interfacing circuit
is required to boost the supply current for the
motor and to provide different voltage levels.
95

Programmable Systems Outcome 3
Digital to Analogue Conversion
binary input analogue output (V)
000 0.00
001 0.71
010 1.42
011 2.13
100 2.84
101 3.55
110 4.26
111 4.97
A Digital to Analogue Converter (DAC) is an
integrated circuit that decodes binary
information and generates an analogue voltage
proportional to the binary information
provided. A three bit DAC, with an output range
of 0-5V, may produce a voltage output according
to the table shown opposite.
96

Programmable Systems Outcome 3
Digital to Analogue Conversion
Each increase in the binary input produces a step
increase of 0.71V (5V 7 steps) in the analogue
output. In most practical applications the DAC
cannot supply the full output voltage (e.g. 5V)
due to the technical operating limitations of the
device.
The simplest form of DAC is made from a summing
amplifier, as shown in the diagram below
97

Programmable Systems Outcome 3
Activity, key in a run the program
symbol counter b0 ' variable b0 is loop
counter init let dirs 11110000 ' pin 4-7
outputs let pins 00010000 ' starting
speed main ' set dir pin high for counter
0 to 7 let pins pins 16 ' next speed
pause 5000 ' wait 5 seconds next counter '
next loop end ' end
This program drives the motor at eight different
speeds for five seconds each speed.
98

Programmable Systems Outcome 3
Pulse Width Modulation
With DAC, the voltage applied to the motor is
directly varied. As the voltage is decreased the
motor turns more slowly. However the current
flowing through the motor coils also decreases,
and so the output torque (turning moment) of the
motor also falls. Therefore this solution is
often unsatisfactory for controlling DC motors
due to the undesirable loss of motor torque.
Pulse Width Modulation (PWM) is a digital method
which can be used to vary the motor speed. In
this method the full voltage is applied to the
motor, but it is rapidly pulsed on and off. By
varying the on and off ratio of the pulses the
speed of the motor can be varied. As the full
voltage is applied to the motor during the 'on'
pulses the torque of the motor remains high.
99

Programmable Systems Outcome 3
Pulse Width Modulation
The graph shows how the technique is applied. The
'on' time for the motor is called the mark, the
'off' time is called the space. When the voltage
is applied to the motor it accelerates to top
speed. However before the top speed is reached
the motor is switched off, thus slowing it down.
By increasing the frequency of the pulses this
acceleration/deceleration becomes negligible, and
the motor rotates constantly at a slower speed.
100

Programmable Systems Outcome 3
Activity
Build the circuit as shown. This is most simply
achieved by connecting the dc motor across the
'V' and '7' Darlington Driver terminals on the
Output Driver module. Key in, download and run
the program listed below. This program drives the
motor at approximately half speed, as the space
is twice the length of the mark.
symbol mark b1 symbol space b2 symbol motor
7 init let dirs 11110000 ' pin 4-7
outputs let mark 10 ' set mark to 10ms let
space 20 ' set space to 20ms main high
motor ' output high pause mark ' pause for
mark time low motor ' output low pause
space ' pause for low time goto main ' loop
101

Programmable Systems Outcome 3
Soft Start of DC Motors
In some devices, such as electric drills, it is
desirable for the motor to start rotating slowly
and then build up speed, rather than rapidly
'accelerating' up to full speed. This is called
'soft starting' the motor, and the use of PWM is
often appropriate in these situations. The motor
is started at a low speed and then gradually
accelerated by varying the mark to space ratio
over a period of time.
102

Programmable Systems Outcome 3
Soft Start of DC Motors
Key in, download and run the program listed
below. This program gradually increases the speed
by increasing the length of the mark time over a
period of time. symbol counter b0 ' variable
b0 is loop counter symbol mark b1 symbol space
b2 symbol motor 7 init let dirs
11110000 ' pin 4-7 outputs let mark 10 '
set mark to 10ms let space 20 ' set space to
20ms main gosub puls ' call sub-procedure let
mark mark 2 ' increase mark time goto
main ' loop ' sub-procedure puls for
counter 0 to 50 ' start a for...next loop
high motor ' output high pause mark '
pause for mark time low motor ' output
low pause space ' pause for low time next
counter ' loop return ' return from
sub-procedure
103

Programmable Systems Outcome 3
Assignment 19
Details of a speed control unit for a dc motor
are shown. Name the configuration of operational
amplifier being used.
Name the method of dc motor speed control being
used. Explain clearly how the system
operates. State what the output voltage supplied
to the motor will be when the following values
are applied to the input pins (presume the
feedback resistor is at it's maximum value of
10K). i) 1 ii) 3 iii) 4
104

Programmable Systems Outcome 3
Assignment 20
A small dc motor, which is used to drive a model
conveyer belt, is to be controlled by a
microcontroller. The microcontroller gives out a
6V signal when an output bit is switched to logic
1. The speed of the motor must be varied
according to the loads which are being carried.
for convenience, the speed is to be reduced using
pulse-width modulated control.
Develop a short PBASIC procedure which could be
used to drive the motor in a clockwise direction
with a mark-to-space ratio of 21. Explain how
you could alter the procedure to make the motor
rotate in an anti-clockwise direction, with the
same mark-to-space ratio.
Pin allocations are shown on the next slide
105

Programmable Systems Outcome 3
Assignment 20
Input Connection Pin Output Connection
7
6
5 Motor Anticlockwise
4 Motor Clockwise
3
2
1
0
106
Programmable Systems Outcome 4
MUSSELBURGH GRAMMAR SCHOOL
Gary Plimer 2004
107

Programmable Systems Outcome 3
Analogue to Digital Conversion
The microcontroller can only process digital
(high/low) signals. However in many practical
applications analogue quantities, such as light
intensity or temperature, need to be tested. An
Analogue-to-Digital Converter (ADC) is a device
which can convert analogue quantities into
digital signals. An 8-bit ADC can generate a
digital signal in the range 0 to 255 (i.e. one
byte). ADC's are available as separate
integrated circuits, or may even be 'built into'
the microcontroller to give it 'on-board' ADC
capabilities. With the Stamp Controller system
an external 8-bit ADC integrated circuit is used.
108

Programmable Systems Outcome 3
Voltage Reference
ADCs are designed to process analogue signals
within a certain range. The maximum voltage
signal that can be processed by an ADC is called
its reference voltage. A common reference
voltage for an 8-bit ADC is 2.55V, so the ADC can
measure signals in the range 0 to
2.55V. Therefore the 8-bit ADC device will
generate an 8-bit value directly equivalent to
the voltage signal applied.
109

Programmable Systems Outcome 3
Signal Conditioning
Analogue sensors, such as the thermistor
(temperature sensor), may not directly produce a
suitable signal for use with the ADC. Therefore
it is often necessary to use a signal amplifier
circuit so that the input signal can be
'conditioned' to the input range of the ADC (0 to
2.5V). An operational amplifier, configured as a
voltage amplifier, is commonly used for this
task.
110

Programmable Systems Outcome 3
Example
The following example shows how the gain of the
operational circuit is typically calculated.
A temperature sensor is to be used to monitor the
temperature of a factory furnace.
Experimentation has shown that the temperature
sensor produces a linear output signal, reading
0V at 0º Celsius and 1.53V at a temperature of
200º Celsius. The maximum operating temperature
of the furnace is 1000º Celsius. The maximum
voltage that may be fed into the ADC is
2.55V Draw a circuit diagram of a suitable
signal conditioning system based on operational
amplifiers.
Continued
111

Programmable Systems Outcome 3
Example
1) Calculate the maximum input signal, which is
at 1000º Celsius. Signal at 200º
1.53V 1000º is equal to 5 x 200º Therefore
maximum signal is 5 x 1.53V 7.65V 2)
Calculate the gain required from the op-amp
circuit. Input Signal 7.65V Required output
signal 2.55V Therefore Gain output / input
2.55 / 7.65 0.33
Your Task Draw a suitable circuit to achieve a
gain of 0.33
112

Programmable Systems Outcome 3
Assignment 1
A microcontroller based monitoring system is used
to monitor sound signals over a period of time.
It is found that the maximum voltage generated
from the sound signals is 6V. However the maximum
voltage that may be fed into the microcontroller
system is 1.8V
  • a) Draw a circuit diagram of a suitable signal
    conditioning system, based on
  • operational amplifiers, which will allow the
    signals to be monitored without
  • damaging the microcontroller system. Indicate
    the values of any components used in your
    circuit.
  • If the sound signal is fed into the
    microcontroller through an ADC which has a
    voltage reference of 1.8V, write down the 8-bit
    binary pattern you would expect from the ADC when
    the sound signal generates a voltage of 4.8V.
  • Clearly identify the least significant bit
    (LSB).

113

Programmable Systems Outcome 3
Assignment 1(b) Solution
Two ways to consider this problem 1st If the ADC
is 8 bit, then there are 255 steps from 0V to
6V This means each step is worth 0.023529V
approx. If we are trying to find what 4.8V would
give, then if we divide 4.8 by 0.023529, we get
204 steps. Converting 204 into binary we get
11001100 OR 2nd A neater way is to use (4.8/6) x
255 204 Same answer, but a bit quicker. Can
you work out how I arrived at this method?
114

Programmable Systems Outcome 3
Assignment 2
  • The signal from a temperature sensing sub-system
    is processed by an ADC before being read by a
    microcontroller. The ADC has a voltage reference
    of 1.8 volts which produces a binary word of
    11111111
  • a) What is an ADC and why is it required before
    processing by the
  • microcontroller?
  • Calculate the binary word produced by the ADC at
    200ºC, if the voltage signal from the temperature
    sensing sub-system at this temperature is 1.2V.
  • Clearly identify the least significant bit (LSB).

115

Programmable Systems Outcome 3
Interfacing to the ADC
The ADC used with the Stamp Controller is a
'serial' type device. This means that the
analogue reading is transmitted as a series of
eight consecutive bits via a single 'data' pin.
However it is obviously necessary that the Stamp
Controller and the ADC are synchronised for this
communication, and this is achieved by the Stamp
Controller sending a number of 'clock' pulses
down a second 'clock' pin.
116

Programmable Systems Outcome 3
Interfacing to the ADC
Although the procedure for using the ADC is the
same in every case, it is never the less very
complex.
THEREFORE, IT IS NOT NECESSARY TO LEARN THESE
SUB-PROCEDURES. THE SUB-PROCEDURES WILL ALWAYS
BE PROVIDED, IF NECESSARY, IN EXAMINATIONS.
WHEN CREATING NEW PBASIC PROGRAMS THE TEMPLATE
FILE TEMPLATE.BAS SHOULD BE USED. THIS
TEMPLATE FILE CONTAINS ALL THE STANDARD
SUB-PROCEDURES REQUIRED, SO THAT IT IS ONLY
NECESSARY TO KEY IN THE MAIN PROGRAM.
117

Programmable Systems Outcome 3
Activity
Build the circuit as shown above. In the case of
the serial ADC module the sub-procedure to take a
reading is called 'adcread'. This sub-procedure
performs a read of the ADC and then stores the
reading in a variable named 'data'.
CONTINUED
118

Programmable Systems Outcome 3
Activity
Therefore a sample program to take an analogue
reading, and then transmit it to the computer for
viewing (using the debug command), would
be main gosub adcread 'Get the ADC
reading debug data 'Transmit data to
computer pause 1000 'Pause for 1 second goto
main 'Loop forever Note that this is not the
whole program listing, as the actual
sub-procedure 'adcread' and the symbol
definitions are not included. However they are
not needed to understand how the main program
operates, and so can be left out for clarity.
Open the file template.bas, key in the main
program above in the correct section of the
template and run the program.
119

Programmable Systems Outcome 3
Multiplexers
ADC integrated circuits are relatively expensive
to construct. When it is necessary to record more
than one analogue signal a 'multiplexer' can be
used to prevent the need for multiple ADC
circuits. The multiplexer can be physically
'built into' the ADC integrated circuit, or can
be provided by a completely separate integrated
circuit.
The multiplexer functions in a similar manner to
a rotary switch connecting each of the analogue
channels in turn to the ADC. Therefore the
multiplexer 'selects' which sensor is connected
to the ADC at any one time. As only one sensor is
connected to the ADC at any one time the whole
system is slower than using a separate ADC for
each sensor. However modern microcontrollers
operate very quickly, and so the cost saving
usually outweighs the increased processing time.
120

Programmable Systems Outcome 3
Activity
Build the circuit as shown. Note that a 2mm lead
is used to connect the MFA Analogue Multiplexer
to the Serial ADC Module (pin 3).
Key in, download and run the program listed on
the next slide. This program reads each of the
two sensors every second, and displays the
reading on the LCD.
121

Programmable Systems Outcome 3
Activity
let pins 11110111 pause 5 'Short
pause serout 7,T2400,(254,1) 'Clear LCD
command pause 30 'Short pause main low
ADC_MPX 'Select sensor 1 gosub
adcread 'Get the ADC reading serout
7,T2400,(254,128) 'Print on LCD line 1 serout
7,T2400,("Sensor 1 ",data," ") high
ADC_MPX 'Select sensor 2 gosub
adcread 'Get the ADC reading serout
7,T2400,(254,192) 'Print on LCD line 2 serout
7,T2400,("Sensor 2
Write a Comment
User Comments (0)
About PowerShow.com