SlideShare a Scribd company logo
1 of 141
Dave’s Revision Notes


    Programmable Systems




                           Gary Plimer 2004
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.
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.
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.
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.
Programmable Systems Outcome
                    3
Microcontroller Architecture
                                                                                      Microcontrollers
                                                                                      contain all these
   RO M
                     PRO G RA M
                                                         RAM                          features within a
                     C O U N TE R
 PRO G RA M                                             R E G IS TE R                 single package, as
  M EM O RY
                                       D A TA
                                        BUS
                                                           F IL E S
                                                                                      opposed to the
                                                                                      microprocessor
                         A LU
                                                                                      system where each
                                                          I/ O           “ R E A L”
       PRO G RA M
          BUS                                          P O R TS         W O R LD      block in the diagram
                                                                                      above is normally a
                                                       TIM E R S                      separate integrated
                      C LO C K
                                                                                      circuit. In general the
                    S IM P L IF IE D P IC M IC R O C O N TR O L L E R
                                                                                      only component that
                                    B L O C K D IA G R A M                            needs to be added to
                                                                                      a microcontroller is a
                                                                                      clock resonator, which
                                                                                      sets the operating
                                                                                      speed of the
                                                                                      microcontroller.
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!
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.
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.
Programmable Systems Outcome
           3
Microcontroller Architecture - Terminology

Input/Output Circuitry (I/O Ports)

Microcontrollers 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.
Programmable Systems Outcome
                      3
  The Basic Stamp


                                                                 The program instructions are
                                                                 written on a host computer in the
                                                                 simple PBASIC language. The
H O S T C O M P U TE R
                          D O W N LO A D C A B LE                download cable is then connected
      R U N N IN G
S TA M P S O F TW A R E                                          from the computer to the module,
                                                                 and the program is downloaded
                                                    EEPRO M      into the EEPROM memory chip.
                                   B A S IC                      The download cable is then
                               IN TE R P R E TE R
                                                     IN P U T/   removed, and the program (now
              C LO C K                              O U TP U T
                                                       P IN S    stored in the memory chip) is
                                                                 carried out sequentially by the
                                                                 microcontroller 'interpreter' chip.
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.
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
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.
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
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)
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       128    64      32     16      8      4      2      1
        value
Programmable Systems Outcome
        3
Pupil Assignment No.2



 Convert each of the following binary numbers into decimal:

         11110000
         11000011
         01010101
         10101010


  bit number     7      6     5      4     3      2     1     0


    decimal     128    64     32    16     8      4     2     1
     value
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     128    64    32    16     8      4    2   1
     value
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                Decimal       Hexadecimal
system of writing numbers is the
hexadecimal system. The                        10               A
hexadecimal system uses 16                     11               B
different digits - 0 to 9 and A to F.
The 'digits' A to F correspond to the          12               C
decimal numbers 10 to 15.                      13               D
                                               14               E
                                               15               F
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
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
Programmable Systems Outcome
        3
Pupil Assignment No.2



 Convert the following binary numbers to hexadecimal:

         %11011101
         %11111001
         %01010101
         %10101010
         %11001010
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
Programmable Systems Outcome 3


Converting Decimal to Hex
Convert 450 to Hex
Think about base 16,
                  163       162    161   160
                  4097      256    16    1
For 450 we need             x1     x12   x2
In Hex                      1      C     2
                            &1C2
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.
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
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).
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.
Programmable Systems Outcome
           3                                             S TA R T

Beginning Programming
                                                    S W ITC H P IN 7
                                                          H IG H

Consider the simple Flowchart shown opposite.
                                                  W A IT 2 S E C O N D S



The Flowchart helps us plan our programming.        S W ITC H P IN 6
                                                          H IG H



                                                  W A IT 1 S E C O N D
Now have a look at the next slide which shows a
possible solution to this Flowchart
                                                  S W ITC H P IN S 4 & 5
                                                          H IG H



                                                  W A IT 3 S E C O N D S



                                                      S W ITC H A L L
                                                           O FF


                                                          S TO P
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
Programmable Systems Outcome
          3                                                      S TA R T


Labels and Addressing                                       S W ITC H P IN 7
                                                                  H IG H



                                                          W A IT 2 S E C O N D S
Sometimes it is necessary to create programs that
loop 'forever', as shown by the flowchart. In this case     S W ITC H P IN 6
                                                                  H IG H
it is necessary to add labels to the program, and to
use the 'goto' command to jump to the line marked         W A IT 1 S E C O N D
by the label.
                                                          S W ITC H P IN S 4 & 5
                                                                  H IG H


          Study the Flowchart then look at                W A IT 3 S E C O N D S
          the solution on the next slide.
                                                              S W ITC H A L L
                                                                   O FF


                                                           W A IT 1 S E C O N D
Programmable Systems Outcome
            3                                                        S TA R T


  Labels and Addressing (Continued)                             S W ITC H P IN 7
                                                                      H IG H



                                                              W A IT 2 S E C O N D S
A PBASIC program which would achieve this control operation
is listed below.                                                S W ITC H P IN 6
                                                                      H IG H

init:   let dirs = %11110000      ' set pins 4-7 as outputs
                                                              W A IT 1 S E C O N D

main:   high 7                    ' set pin 7 high
        pause 2000                ' wait for 2 seconds        S W ITC H P IN S 4 & 5
                                                                      H IG H
        high 6                    ' set pin 6 high
        pause 1000                ' wait for 1 second         W A IT 3 S E C O N D S
        let pins = %11110000      ' set pins 4-7 high
        pause 3000                ' wait for 3 seconds            S W ITC H A L L
                                                                       O FF
        let pins = 0              ' switch all pins low
        pause 1000                ' wait for 1 second          W A IT 1 S E C O N D
        goto main                 ' loop forever
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'.
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?
Programmable Systems Outcome
           3
Assignment 2

 A set of temporary traffic lights are required for a system of road-works.


 red                 10 sec          Draw a flowchart for the lights sequence
                                     shown by one set of the traffic lights.
 red and amber       2 sec

 green               10 sec          Use the times shown in the table for each
                                     stage.
 amber               2 sec
                                     Write a PBASIC program to achieve this
                                     operation. Use the following pin configuration
                                     - red (7), amber (6) and green (5).
Programmable Systems Outcome
            3                     S TA R T


Assignment 3                                          M O VE FO RW ARD



                                                         W A IT 3 S E C .
Write a high level program in PBASIC to control the
movement of the buggy as shown by the flowchart
opposite.                                               TURN LEFT



                                                        W A IT 1 S E C .



                                                      M O VE FO RW ARD



                                                         W A IT 3 S E C .



                                                             S TO P
Programmable Systems Outcome
           3                                                   S TA R T



For...Next Loops                                        S E T C O U N TE R = 5




 A for...next loop is used when you wish to repeat a      S W ITC H P IN 7
                                                                H IG H
 section of code a number of times.
 The number of times the program runs for is set by a   W A IT 1 S E C O N D

 variable.
                                                          S W ITC H P IN 7
 A variable is a number that is stored in the RAM               LO W

 memory of the Stamp Controller.
                                                        W A IT 1 S E C O N D
 There are 14 memory locations that byte variables
 can be stored in.
 These locations are labelled b0 to b13, but can also        HAVE W E            N
                                                            LO O P E D 5
 be 'renamed' to more appropriate names by use of             TIM E S ?
 the 'symbol' command.
                                                                         Y

                                                                S TO P
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
Programmable Systems Outcome
           3
Assignment 4                                         3


 A buggy is to follow the path shown opposite.

 Draw a flowchart for the movement of the        3       3
 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          3
 by your flowchart. (Assume it takes 1.5
 seconds to turn 90 degrees).
Programmable Systems Outcome
             3
Assignment 5                                       Input      Pin    Output
                                                 Connection         Connection
As part of a Christmas decoration, a lighting
sequence is to be controlled by a                             7
microcontroller. The output connections are                   6       Yellow
shown opposite.                                                        Light
                                                              5     Purple Light
The red and green lights should come on
                                                              4
together and stay on for 5 seconds. Then
they both go off and the yellow and blue                      3     Blue Light
lights should come on together for 8                          2     Green Light
seconds. They then go off and the purple
                                                              1
light flashes on and off 6 times (the 'on' and
'off' times being 0.5 seconds each). The                      0      Red Light
sequence then repeats itself continuously.

Draw a flowchart and write a PBASIC
program for this sequence.
Programmable Systems Outcome
               3                    S TA R T
If...Then... command
                                                   S W ITC H P IN 7
                                                         H IG H

The if...then programming structure allows the
computer to make a decision based on information
received from an input pin.
                                                      IS P IN 3       N
                                                       H IG H ?


Note the symbol used in the flowchart
                                                                 Y

                                                    S W ITC H A L L
   Give an example of where this type of                 LO W
   control might be used

                                                        S TO P
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.
Programmable Systems Outcome
          3                                                 S TA R T


                                                         S W ITC H A L L
                                                          P IN S H IG H
Assignment 6
                                                    W A IT 5 S E C O N D S




                                                        S W ITC H A L L
                                                          P IN S L O W

 Develop a PBASIC program that will carry out the
 instructions shown in the flowchart opposite.      W A IT 0 . 5 S E C O N D S



                                                          S W ITC H A L L
                                                           P IN S H IG H



                                                    W A IT 0 . 5 S E C O N D S




                                                       H A S T H IS B E E N      N
                                                     D O N E 1 0 TIM E S ?



                                                                       Y

                                                         S W ITC H A L L
                                                           P IN S L O W



                                                              S TO P
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.
Programmable Systems Outcome
               3
 Assignment 8

Connect 2 motors to the output                                      O UTPUT
                                                S TA M P
driver module (or MFA movement                                       D R IV E R
                                             CO NTR O LLER
                                                                    M O D U LE
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.
                        V+          The motors should run in a forward direction until
                        0           either of the two micro-switch bumpers are
                        1           activated. At this point the motors should reverse for
                        2           3 seconds, then stop. One motor should then switch
                        3           on for 2 seconds, then stop. Both motors should
                        0V          then switch on.
  SHOWS HOW TO WIRE 2 SWITCHES TO   Draw a flowchart and write a PBASIC program to
     THE SCREW TERMINALS ON THE
          STAMP CONTROLLER
                                    control the movement of the buggy as described
                                    above.
Programmable Systems Outcome
         3                                                        S TA R T



                   Develop a PBASIC program that will       G REEN LED O N
Assignment 9
                   carry out the instructions shown in
                   the flowchart opposite. Use the
                   following pin configuration.                  S W IT C H
                                                                PUSHED?
                                                                                        NO


                                                                        YES

        Input          Pin      Output                     G REEN LED O FF
                                                            AM BER LED O N
      Connection               Connection
                        7       Red Light                     W A IT 3 s e c .



                        6        Amber                     AM BER LED O FF
                                                             RED LED O N
                                 Light
                        5      Green Light                    W A IT 4 s e c .



                        4                                   AM BER LED O N


         Start          3
        Switch                                                W A IT 2 s e c ..


                                                         R E D /A M B E R L E D O F F
                                                             G R EEN LED O N
Programmable Systems Outcome
            3
                                                        FLASH
Sub-Procedures                            S TA R T

It is often useful to be able to re-use
                                           B1 = 5      H IG H 7
sections of code within a program. A
sub-procedure is a small section of
                                          FLASH      W A IT 0 .1 s
code that can be 'called' from a
different part of the program.
                                          B1 = 20      LO W 7

After the sub-procedure is finished
program flow moves back to the            FLASH      W A IT 0 .1 s
original section of the program.
                                          B1 = 10
To 'call' a sub-procedure the gosub                    H A S T H IS
                                                     BEEN DO NE
(go-to-sub-procedure) command is                      B 1 T IM E S ?   NO
                                          FLASH
used.
                                                                YES
                                           S TO P
The last line of the sub-procedure
                                                      RETURN
must be return, which means 'return
to the original position'.
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
         pause 2000                          ' wait two seconds
         end                                 ' end the main program
' Sub-procedures start here.
                                              Continued on next page
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.
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.
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
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).
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.
Programmable Systems Outcome
            3
                                                       M A IN S W A TE R
Assignment 12
                                                                     IN L E T V A LV E



                                                                                   H E A D S TO R A G E TA N K




                                        A G ITA TO R
                                          M O TO R                                  D U M P P U M P M O TO R




                        C O N V EYO R
                          M O TO R



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.:
Programmable Systems Outcome
         3
Assignment 12 continued


             Input        Pin     Output
           Connection            Connection
                          7     Agitator motor
                          6      Dump Pump
                          5       Conveyer
                          4       Inlet valve
                          3
                          2
                          1
           Start switch   0
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.
Programmable Systems Outcome
          3
Assignment 12 continued


(a) 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
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.
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.
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
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
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.
Programmable Systems Outcome
          3
Assignment 13 solution



                         STAR T


                                     W A IT 1 S e c .


                          P IN 0
                         H IG H ?   LET b0 = b0 + 1     U PDATE LCD




                          P IN 1
                                    LET b0 = b0 - 1
                         H IG H /
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
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
Programmable Systems Outcome
          3
Mechatronic System Interfacing Circuits


 Vt
                           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.

0V
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.
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.


                 + 5V

                                                                    + 12V
                                    R E LA Y




                                                       S O L E N O ID



                                                                    0V
                   0V
Programmable Systems Outcome
              3
Connecting Digital Switches


 + 5V
                                                      Digital switches are available in
                                                      two main 'families'. Normally-
                                                      open switches are the most
                                                      common. As the name suggests,
                       S W ITC H O P E N = L O W
                                                      the contacts on these switches
                     S W ITC H C L O S E D = H IG H
                                                      are normally open, so the switch
                                                      is electrically 'off'. When the
        10K
                                                      switch is activated the contacts
                                                      close and so the switch is
                                                      electrically 'on'.

 0V
                                                      Note: Your Teacher will discuss
              N O R M A L L Y O P E N S W ITC H       pull up & Pull down resistors.
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
Programmable Systems Outcome
              3
                                                S TA R T
Assignment 14
Write, and test, a PBASIC program for the    R ED LED O N          BUZZER OFF

control sequence shown in the diagram          B O LT O U T


opposite.                                                           W A IT 2 s


                                              S W IT C H 1
                                              PRESSED?             BUZZER O N
   Input         Pin    Output Connection                     NO


 Connection                                            YES


                  7            Bolt
                                              S W IT C H 2
                                              PRESSED?
                  6          Buzzer                           NO



                  5        Green LED                   YES



                  4         Red LED           S W IT C H 3
                                              PRESSED?        NO

   Switch 3       3
                                                       YES
   Switch 2       2                          RED LED O FF
                                            G REEN LED O N
                                                B O L T IN
   Switch 1       1
                                               W A IT 3 s
                  0
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.
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.
Programmable Systems Outcome
           3
                                                                                        + 12V
Stepper Motors
                                      7        1                    18
                                      6        2                    17
To make the armature rotate
                                      5        3                    16
continuously the four coils must be




                                                   U LN 2 8 0 3 A
                                      4        4                    15
switched on and off in a certain               5                    14   S TE P P E R
order.                                         6                    13
                                               7                    12
                                               8                    11

Many microcontroller systems use               9                    10

four output lines to control the          0V                                                    0V
stepper motor, each output line
controlling the power to one of the
coils.
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.
Programmable Systems Outcome
            3
Assignment 16
                                                  12V D C
                                                  S U P P LY



                             S TA M P          O UTPUT             STEPPER
                        C O N TR O LLER         D R IV E R          M O TO R




    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.
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       Coil 3       Coil 2       Coil 1
                (output 7)   (output 6)   (output 5)   (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
Programmable Systems Outcome
              3
Stepper Motor Driver IC
                                                                                                                                   + 12V


                                                                                  100K         1K
  The use of four output pins to                                  2          13       14            4
  drive a stepper motor can be an                                     R      VC C 2   VC C 1            RX

  inefficient way to use the               C LO C K
                                                             15
                                                                  C                                      Q 1
  microcontroller input/output pins.                                               SA A                  Q 2
                                                                                  1027                   Q 3
                                                             3
                                       D IR E C TIO N             M
  A dedicated integrated circuit,                                                                        Q 4

  called the SAA1027 stepper motor                                        V EE1            V EE2
                                                                                                               S TE P P E R


  driver, has been designed to                                                5                12

                                                        0V                                                                    0V
  overcome this problem by building
  the logic step generator, and the
  transistor switches, into one
  package.
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
Programmable Systems Outcome
             3
Activity, connect the MFA boards to the
Stamp as shown. Run the program.

                                                  12V DC
                                                  S U P P LY



                       S TA M P       M FA        M FA
                  C O N TR O LLER   ADAPTER   STEPPER
                                               M O TO R
                                               D R IV E R




                                              STEPPER
                                               M O TO R
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.
                                          G R O O V E SEN SO R
                                                                                                  4 -PH A SE
                                                                                            S TE P P E R M O TO R
                         C R Y S TA L
                          G LA SS




                        G RO O VES




                                                         P O L IS H IN G B R U S H
                                                      D R IV E N B Y D C M O TO R


                                                        P N E U M A TIC C Y L IN D E R S
                                                         M O V E B R U S H M O TO R
                                                     IN TO / O U T F R O M TH E G L A S S
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.
                                       G R O O V E SEN SO R
                                                                                               4 -PH A SE
                                                                                         S TE P P E R M O TO R
                       C R Y S TA L
                        G LA SS




                      G RO O VES




                                                      P O L IS H IN G B R U S H
                                                   D R IV E N B Y D C M O TO R


                                                     P N E U M A TIC C Y L IN D E R S
                                                      M O V E B R U S H M O TO R
                                                  IN TO / O U T F R O M TH E G L A S S
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            0
      (logic 1 when pressed)
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.
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
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

                                       O UTPUT
                        S TA M P
                                        D R IV E R
                   C O N TR O LLER
                                       M O DU LE
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.
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
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.


                   2

                   1                    DAC
                   0
                                                             A N A LO G U E
                  D IG ITA L
Programmable Systems Outcome
               3
Digital to Analogue Conversion



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

                                                             10K

                                           10K
                                 2
                                           22K
The simplest form of DAC          1                                +5V
is made from a summing
                                           39K
amplifier, as shown in the       0
diagram below

                                                                   -5 V


                                                                                    0V
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
                                         15V
                               MOTOR
                                         DC
                                       SUPPLY



          STAMP        MFA
                                    MFA         This program drives the
                     ADAPTER       POWER
        CONTROLLER
                                   D TO A       motor at eight different
                                 CONVERTER
                                                speeds for five seconds
                                                each speed.
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.
Programmable Systems Outcome
                3
 Pulse Width Modulation


                                                V
The graph shows how the technique is
                                                              M ARK
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            SPA C E
                                                                      t
pulses this acceleration/deceleration
becomes negligible, and the motor rotates
constantly at a slower speed.
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
Programmable Systems Outcome
              3
Soft Start of DC Motors
              V




                                                                        t

     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.
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
Programmable Systems Outcome
               3                                               10K

                                             10K
Assignment 19                         2
                                             22K
                                      1
Details of a speed control unit for                                  +5V
a dc motor are shown.                        39K
                                      0


Name the configuration of
operational amplifier being used.                                    -5 V


                                                                                 0V
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
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 2:1. 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
Programmable Systems Outcome
           3
Assignment 20

                  Input      Pin   Output Connection
                Connection
                             7
                             6
                             5     Motor Anticlockwise
                             4      Motor Clockwise
                             3
                             2
                             1
                             0
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.
Programmable Systems Outcome
              3
Voltage Reference                              5V




                                                      1K
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     2 .5 V
                                                 REF       V REF= 2 .5 V
voltage.
                                               D IO D E
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.                          0V

Therefore the 8-bit ADC device will generate
an 8-bit value directly equivalent to the
voltage signal applied.
Programmable Systems Outcome
              3
Signal Conditioning




                                      S IG N A L
                                    A M P L IF IE R




     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.
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
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                Your Task

     2) Calculate the gain required from the
     op-amp circuit.                           Draw a suitable circuit to
                                               achieve a gain of 0.33
              Input Signal = 7.65V
              Required output signal =
     2.55V
             Therefore Gain = output /
     input = 2.55 / 7.65 = 0.33
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.

b) 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).
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?
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?

  b) 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).
Programmable Systems Outcome
              3
Interfacing to the ADC



  The ADC used with the Stamp                                                                  + 5V
  Controller is a 'serial' type device.
  This means that the analogue                           1
                                          P IN 0             C S                      VC   C
  reading is transmitted as a series
                                                         2
  of eight consecutive bits via a            V IN            V IN ( +     )
                                                                              ADC
                                                                                      C LK            P IN 1

  single 'data' pin. However it is                       3
                                                             V IN ( - )
                                                                              0831   D A TA           P IN 2
  obviously necessary that the                           4
                                                                                      V REF
  Stamp Controller and the ADC are                           G ND                                     2 .5 V

  synchronised for this
  communication, and this is                        0V

  achieved by the Stamp Controller
  sending a number of 'clock' pulses
  down a second 'clock' pin.
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.
Programmable Systems Outcome
             3
Activity
                TEM PERATU RE             S E R IA L        S TA M P
                    PRO BE                  ADC        C O N TR O LLER
                                         M O D ULE




     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
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.
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
                 M U L TIP L E X E R              of the analogue channels in turn to the
                                                  ADC. Therefore the multiplexer 'selects'
     V s1                                         which sensor is connected to the ADC at
                                       TO A D C   any one time. As only one sensor is
                                                  connected to the ADC at any one time the
     V s2
                                                  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.
Programmable Systems Outcome
                    3
Activity
     TEM PERATURE                             S E R IA L                         S E R IA L
         PRO BE       M U L T IP L E X E R                      S TA M P
                                                ADC        C O N TR O LLER   LC D M O D U LE
                                             M O D U LE
        L IG H T
       SENSO R




     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.
Programmable Systems Outcome
                  3
Activity    TEM PERATURE                           S E R IA L      S TA M P       S E R IA L
                PRO BE     M U L T IP L E X E R      ADC                       LCD M O DULE
                                                                CO NTRO LLER
                                                  M O DULE
               L IG H T
              SENSO R



           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= ",#data," ")
           pause 1000                                             'Wait 1 second
           goto main                                              'Loop
Programmable Systems Outcome
                3
Assignment 3

         TEM PER ATU R E    S E R IA L        S TA M P     D ATA LO G G E R       S E R IA L
             PRO BE           ADC        C O N TR O LLER      M O DU LE       LC D M O D U LE
                           M O DU LE




    Build the circuit as shown in the diagram above. (The datalogging module
       is optional at this point)

    a) Write a high level program in PBASIC that will continually monitor and
       display the temperature of the water on the LCD.

    b) The temperature of the water should not be allowed to drop below 45
        degrees Celsius. Modify your PBASIC program so that the immersion
        heater (connected to pin3) is automatically switched on when the water
        cools below the critical temperature.
Programmable Systems Outcome
             3
Assignment 3 solutions


main:   gosub adcread                          'Get the ADC reading
        serout 7,T2400,(254,128)               'Print on LCD line 1
        serout 7,T2400,("Temp = ",#data," ")
        pause 1000                             'Wait 1 second
        goto main                              'Loop


main:   gosub adcread                          'Get the ADC reading
        serout 7,T2400,(254,128)               'Print on LCD line 1
        serout 7,T2400,("Temp = ",#data," ")
        if data < 45 then doon                 'Jump if temp low
        low 3                                  'Heater off
        goto main                              'Loop
doon:   high 3                                 'Heater on
        goto main                              'Loop
Programmable Systems Outcome
               3
Assignment 4

A local council has issued standard size "wheely bins" to all households so that the dust
carts can empty them automatically. The dustman simply clamps the wheely bin onto a
platform and then presses a switch. the platform then rotates through 130 degrees as
shown in the diagram. The platform stays in the emptying position for 5 seconds and
then returns to it's original position, where it triggers a micro switch on the rear of the
dustcart. Platform movement is controlled by a dc motor and gearbox.




                                                  0
                                            130
                                                                  S TA R T S W ITC H




                        W H E E LY
                          B IN


                                                                                       Continued
                                     P L A TF O R M   M IC R O - S W ITC H
Programmable Systems Outcome
               3
Assignment 4
The process is controlled by a microcontroller. the angle of rotation of the platform is
sensed by a rotary potentiometer. The potentiometer is capable of rotating 360
degrees from the starting position, and rotation between 0 and 360 degrees sends a
proportional reading of between 0 and 255 via an ADC module connected to the
microcontroller.
                       Input        Pin        Output Connection
                   Connection
                        Start         0
                       switch
                                      1
                                      2
                      Micro-          3
                      switch
                                      4      Motor clockwise (Raises
                                                      bin)
                                      5        Motor anti-clockwise        Continued
                                                  (Lowers bin)
Programmable Systems Outcome
              3
Assignment 4


(a)      Calculate the analogue reading when the platform is 130 degrees from the
         original position.

(b)      Draw up a flow chart which shows the control sequence for the emptying of
         the wheely bin.

(c)      With reference to your flow chart, write a high level program in PBASIC to
         control sequence for the emptying of the wheely bin.

          Assume use of a pre-written sub-procedure called 'adcread' which will
return the analogue reading in a variable called 'data'.
Programmable systems-outcome-34
Programmable systems-outcome-34
Programmable systems-outcome-34
Programmable systems-outcome-34
Programmable systems-outcome-34
Programmable systems-outcome-34
Programmable systems-outcome-34
Programmable systems-outcome-34
Programmable systems-outcome-34
Programmable systems-outcome-34
Programmable systems-outcome-34
Programmable systems-outcome-34
Programmable systems-outcome-34
Programmable systems-outcome-34
Programmable systems-outcome-34
Programmable systems-outcome-34
Programmable systems-outcome-34
Programmable systems-outcome-34
Programmable systems-outcome-34
Programmable systems-outcome-34

More Related Content

What's hot

Microcontroller overview 1
Microcontroller overview 1Microcontroller overview 1
Microcontroller overview 1Sally Salem
 
Microcontroller presentation
Microcontroller presentationMicrocontroller presentation
Microcontroller presentationredwan1006066
 
Central Processing Unit User View
Central Processing Unit User ViewCentral Processing Unit User View
Central Processing Unit User ViewAnuj Modi
 
Project Report On Micro-controller Embedded System
Project Report On Micro-controller Embedded SystemProject Report On Micro-controller Embedded System
Project Report On Micro-controller Embedded SystemRkrishna Mishra
 
Intro to micro controller (Atmega16)
Intro to micro controller (Atmega16)Intro to micro controller (Atmega16)
Intro to micro controller (Atmega16)Ramadan Ramadan
 
International Journal of Computational Engineering Research(IJCER)
 International Journal of Computational Engineering Research(IJCER)  International Journal of Computational Engineering Research(IJCER)
International Journal of Computational Engineering Research(IJCER) ijceronline
 
Honeywell PLC ML 200R ystem architecture &-installation
Honeywell PLC ML 200R ystem architecture &-installationHoneywell PLC ML 200R ystem architecture &-installation
Honeywell PLC ML 200R ystem architecture &-installationShivam Singh
 
Computer architecture control unit
Computer architecture control unitComputer architecture control unit
Computer architecture control unitMazin Alwaaly
 
Microproccesor and Microcontrollers hardware basics
Microproccesor and Microcontrollers hardware basicsMicroproccesor and Microcontrollers hardware basics
Microproccesor and Microcontrollers hardware basicsashmus
 
Presentation on Embedded system using micro controller by PARAS JHA
Presentation on Embedded system using micro controller  by PARAS JHAPresentation on Embedded system using micro controller  by PARAS JHA
Presentation on Embedded system using micro controller by PARAS JHAParas Jha
 
Honeywell PLC ML-50 (MLM-DR16S)
Honeywell PLC ML-50 (MLM-DR16S)Honeywell PLC ML-50 (MLM-DR16S)
Honeywell PLC ML-50 (MLM-DR16S)Shivam Singh
 
Gesture based vehicle movements control and alerting system docu
Gesture based vehicle movements control and alerting system docuGesture based vehicle movements control and alerting system docu
Gesture based vehicle movements control and alerting system docuVignan Munna
 
Embedded processor system for controllable period-width multichannel pulse wi...
Embedded processor system for controllable period-width multichannel pulse wi...Embedded processor system for controllable period-width multichannel pulse wi...
Embedded processor system for controllable period-width multichannel pulse wi...TELKOMNIKA JOURNAL
 
Introduction to embedded system
Introduction to embedded systemIntroduction to embedded system
Introduction to embedded systemNiteesh Srivastava
 
Difference between microprocessor and microcontroller
Difference between microprocessor and microcontrollerDifference between microprocessor and microcontroller
Difference between microprocessor and microcontrollerMicrocontrollers Lab
 

What's hot (20)

Microcontroller overview 1
Microcontroller overview 1Microcontroller overview 1
Microcontroller overview 1
 
Microcontroller presentation
Microcontroller presentationMicrocontroller presentation
Microcontroller presentation
 
Central Processing Unit User View
Central Processing Unit User ViewCentral Processing Unit User View
Central Processing Unit User View
 
Project Report On Micro-controller Embedded System
Project Report On Micro-controller Embedded SystemProject Report On Micro-controller Embedded System
Project Report On Micro-controller Embedded System
 
Intro to micro controller (Atmega16)
Intro to micro controller (Atmega16)Intro to micro controller (Atmega16)
Intro to micro controller (Atmega16)
 
International Journal of Computational Engineering Research(IJCER)
 International Journal of Computational Engineering Research(IJCER)  International Journal of Computational Engineering Research(IJCER)
International Journal of Computational Engineering Research(IJCER)
 
819 data sheet
819 data sheet819 data sheet
819 data sheet
 
Micro-controller course lec 01
Micro-controller course lec 01Micro-controller course lec 01
Micro-controller course lec 01
 
Honeywell PLC ML 200R ystem architecture &-installation
Honeywell PLC ML 200R ystem architecture &-installationHoneywell PLC ML 200R ystem architecture &-installation
Honeywell PLC ML 200R ystem architecture &-installation
 
Computer architecture control unit
Computer architecture control unitComputer architecture control unit
Computer architecture control unit
 
2.computer org.
2.computer org.2.computer org.
2.computer org.
 
Microproccesor and Microcontrollers hardware basics
Microproccesor and Microcontrollers hardware basicsMicroproccesor and Microcontrollers hardware basics
Microproccesor and Microcontrollers hardware basics
 
Presentation on Embedded system using micro controller by PARAS JHA
Presentation on Embedded system using micro controller  by PARAS JHAPresentation on Embedded system using micro controller  by PARAS JHA
Presentation on Embedded system using micro controller by PARAS JHA
 
Embedded two mark question
Embedded two mark questionEmbedded two mark question
Embedded two mark question
 
Honeywell PLC ML-50 (MLM-DR16S)
Honeywell PLC ML-50 (MLM-DR16S)Honeywell PLC ML-50 (MLM-DR16S)
Honeywell PLC ML-50 (MLM-DR16S)
 
Gesture based vehicle movements control and alerting system docu
Gesture based vehicle movements control and alerting system docuGesture based vehicle movements control and alerting system docu
Gesture based vehicle movements control and alerting system docu
 
Embedded processor system for controllable period-width multichannel pulse wi...
Embedded processor system for controllable period-width multichannel pulse wi...Embedded processor system for controllable period-width multichannel pulse wi...
Embedded processor system for controllable period-width multichannel pulse wi...
 
Introduction to embedded system
Introduction to embedded systemIntroduction to embedded system
Introduction to embedded system
 
My Project
My ProjectMy Project
My Project
 
Difference between microprocessor and microcontroller
Difference between microprocessor and microcontrollerDifference between microprocessor and microcontroller
Difference between microprocessor and microcontroller
 

Viewers also liked

Structures outcome-4
Structures outcome-4Structures outcome-4
Structures outcome-4doovood
 
Structures outcome-3
Structures outcome-3Structures outcome-3
Structures outcome-3doovood
 
Logicout3
Logicout3Logicout3
Logicout3doovood
 
Programmable systems-outcome-12
Programmable systems-outcome-12Programmable systems-outcome-12
Programmable systems-outcome-12doovood
 
Applied electronics-outcome-3
Applied electronics-outcome-3Applied electronics-outcome-3
Applied electronics-outcome-3doovood
 
Applied electronics-outcome-2
Applied electronics-outcome-2Applied electronics-outcome-2
Applied electronics-outcome-2doovood
 

Viewers also liked (6)

Structures outcome-4
Structures outcome-4Structures outcome-4
Structures outcome-4
 
Structures outcome-3
Structures outcome-3Structures outcome-3
Structures outcome-3
 
Logicout3
Logicout3Logicout3
Logicout3
 
Programmable systems-outcome-12
Programmable systems-outcome-12Programmable systems-outcome-12
Programmable systems-outcome-12
 
Applied electronics-outcome-3
Applied electronics-outcome-3Applied electronics-outcome-3
Applied electronics-outcome-3
 
Applied electronics-outcome-2
Applied electronics-outcome-2Applied electronics-outcome-2
Applied electronics-outcome-2
 

Similar to Programmable systems-outcome-34

home automaton using pc ppt
home automaton using pc ppthome automaton using pc ppt
home automaton using pc pptRajesh Kumar
 
U proc ovw
U proc ovwU proc ovw
U proc ovwBrit4
 
Minor Project Report on - short range personal 'RADAR'.
Minor Project Report on - short range personal 'RADAR'.Minor Project Report on - short range personal 'RADAR'.
Minor Project Report on - short range personal 'RADAR'.Sarvesh Kushwaha
 
Computer engineering - overview of microprocessors
Computer engineering - overview of microprocessorsComputer engineering - overview of microprocessors
Computer engineering - overview of microprocessorsEkeedaPvtLtd
 
Microcontroller presentation
Microcontroller presentationMicrocontroller presentation
Microcontroller presentationxavierpaulino
 
Introduction to embedded systems using the msp430 6. 1 Enumerate the.pdf
Introduction to embedded systems using the msp430 6. 1 Enumerate the.pdfIntroduction to embedded systems using the msp430 6. 1 Enumerate the.pdf
Introduction to embedded systems using the msp430 6. 1 Enumerate the.pdfaienterpresses
 
Introduction to embedded systems using the msp430 6.1 Enumerate the .pdf
Introduction to embedded systems using the msp430 6.1 Enumerate the .pdfIntroduction to embedded systems using the msp430 6.1 Enumerate the .pdf
Introduction to embedded systems using the msp430 6.1 Enumerate the .pdfaienterpresses
 
Module_1_Introduction to robotic and microcontroller.ppt
Module_1_Introduction to robotic and microcontroller.pptModule_1_Introduction to robotic and microcontroller.ppt
Module_1_Introduction to robotic and microcontroller.pptmichealfajobi7
 
Programmable logic controller (PLC)
Programmable logic controller (PLC)Programmable logic controller (PLC)
Programmable logic controller (PLC)Manthan Chavda
 
What are the characteristics of a Microcontroller.pdf
What are the characteristics of a Microcontroller.pdfWhat are the characteristics of a Microcontroller.pdf
What are the characteristics of a Microcontroller.pdfexpess-technology
 
INDUSTRIAL TRAINING REPORT EMBEDDED SYSTEM.pptx
INDUSTRIAL TRAINING REPORT EMBEDDED SYSTEM.pptxINDUSTRIAL TRAINING REPORT EMBEDDED SYSTEM.pptx
INDUSTRIAL TRAINING REPORT EMBEDDED SYSTEM.pptxMeghdeepSingh
 
Benefits of Micro Controller.pdf
Benefits of Micro Controller.pdfBenefits of Micro Controller.pdf
Benefits of Micro Controller.pdfirfanakram32
 
Introducttion to robotics and microcontrollers
Introducttion to robotics and microcontrollersIntroducttion to robotics and microcontrollers
Introducttion to robotics and microcontrollersSandeep Kamath
 
8051 microcontroller
8051 microcontroller8051 microcontroller
8051 microcontrollersnehapvs
 
Motorola 68hc11
Motorola 68hc11Motorola 68hc11
Motorola 68hc11gajani121
 

Similar to Programmable systems-outcome-34 (20)

home automaton using pc ppt
home automaton using pc ppthome automaton using pc ppt
home automaton using pc ppt
 
U proc ovw
U proc ovwU proc ovw
U proc ovw
 
Minor Project Report on - short range personal 'RADAR'.
Minor Project Report on - short range personal 'RADAR'.Minor Project Report on - short range personal 'RADAR'.
Minor Project Report on - short range personal 'RADAR'.
 
Computer engineering - overview of microprocessors
Computer engineering - overview of microprocessorsComputer engineering - overview of microprocessors
Computer engineering - overview of microprocessors
 
Microcontroller presentation
Microcontroller presentationMicrocontroller presentation
Microcontroller presentation
 
Introduction to embedded systems using the msp430 6. 1 Enumerate the.pdf
Introduction to embedded systems using the msp430 6. 1 Enumerate the.pdfIntroduction to embedded systems using the msp430 6. 1 Enumerate the.pdf
Introduction to embedded systems using the msp430 6. 1 Enumerate the.pdf
 
Introduction to embedded systems using the msp430 6.1 Enumerate the .pdf
Introduction to embedded systems using the msp430 6.1 Enumerate the .pdfIntroduction to embedded systems using the msp430 6.1 Enumerate the .pdf
Introduction to embedded systems using the msp430 6.1 Enumerate the .pdf
 
LECT 2.pptx
LECT 2.pptxLECT 2.pptx
LECT 2.pptx
 
Module_1_Introduction to robotic and microcontroller.ppt
Module_1_Introduction to robotic and microcontroller.pptModule_1_Introduction to robotic and microcontroller.ppt
Module_1_Introduction to robotic and microcontroller.ppt
 
Micro controller
Micro controllerMicro controller
Micro controller
 
Programmable logic controller (PLC)
Programmable logic controller (PLC)Programmable logic controller (PLC)
Programmable logic controller (PLC)
 
What are the characteristics of a Microcontroller.pdf
What are the characteristics of a Microcontroller.pdfWhat are the characteristics of a Microcontroller.pdf
What are the characteristics of a Microcontroller.pdf
 
INDUSTRIAL TRAINING REPORT EMBEDDED SYSTEM.pptx
INDUSTRIAL TRAINING REPORT EMBEDDED SYSTEM.pptxINDUSTRIAL TRAINING REPORT EMBEDDED SYSTEM.pptx
INDUSTRIAL TRAINING REPORT EMBEDDED SYSTEM.pptx
 
Benefits of Micro Controller.pdf
Benefits of Micro Controller.pdfBenefits of Micro Controller.pdf
Benefits of Micro Controller.pdf
 
Introduction in microcontroller
Introduction in microcontrollerIntroduction in microcontroller
Introduction in microcontroller
 
Introducttion to robotics and microcontrollers
Introducttion to robotics and microcontrollersIntroducttion to robotics and microcontrollers
Introducttion to robotics and microcontrollers
 
8051 microcontroller
8051 microcontroller8051 microcontroller
8051 microcontroller
 
Matter new
Matter newMatter new
Matter new
 
Motorola 68hc11
Motorola 68hc11Motorola 68hc11
Motorola 68hc11
 
Mod3
Mod3Mod3
Mod3
 

Programmable systems-outcome-34

  • 1. Dave’s Revision Notes Programmable Systems 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 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.
  • 4. 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.
  • 5. 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.
  • 6. Programmable Systems Outcome 3 Microcontroller Architecture Microcontrollers contain all these RO M PRO G RA M RAM features within a C O U N TE R PRO G RA M R E G IS TE R single package, as M EM O RY D A TA BUS F IL E S opposed to the microprocessor A LU system where each I/ O “ R E A L” PRO G RA M BUS P O R TS W O R LD block in the diagram above is normally a TIM E R S separate integrated C LO C K circuit. In general the S IM P L IF IE D P IC M IC R O C O N TR O L L E R only component that B L O C K D IA G R A M needs to be added to a microcontroller is a clock resonator, which sets the operating speed of the microcontroller.
  • 7. 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!
  • 8. 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.
  • 9. 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.
  • 10. Programmable Systems Outcome 3 Microcontroller Architecture - Terminology Input/Output Circuitry (I/O Ports) Microcontrollers 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.
  • 11. Programmable Systems Outcome 3 The Basic Stamp The program instructions are written on a host computer in the simple PBASIC language. The H O S T C O M P U TE R D O W N LO A D C A B LE download cable is then connected R U N N IN G S TA M P S O F TW A R E from the computer to the module, and the program is downloaded EEPRO M into the EEPROM memory chip. B A S IC The download cable is then IN TE R P R E TE R IN P U T/ removed, and the program (now C LO C K O U TP U T P IN S stored in the memory chip) is carried out sequentially by the microcontroller 'interpreter' chip.
  • 12. 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.
  • 13. 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
  • 14. 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.
  • 15. 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
  • 16. 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)
  • 17. 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 128 64 32 16 8 4 2 1 value
  • 18. Programmable Systems Outcome 3 Pupil Assignment No.2 Convert each of the following binary numbers into decimal: 11110000 11000011 01010101 10101010 bit number 7 6 5 4 3 2 1 0 decimal 128 64 32 16 8 4 2 1 value
  • 19. 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 128 64 32 16 8 4 2 1 value
  • 20. 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 Decimal Hexadecimal system of writing numbers is the hexadecimal system. The 10 A hexadecimal system uses 16 11 B different digits - 0 to 9 and A to F. The 'digits' A to F correspond to the 12 C decimal numbers 10 to 15. 13 D 14 E 15 F
  • 21. 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
  • 22. 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
  • 23. Programmable Systems Outcome 3 Pupil Assignment No.2 Convert the following binary numbers to hexadecimal: %11011101 %11111001 %01010101 %10101010 %11001010
  • 24. 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
  • 25. Programmable Systems Outcome 3 Converting Decimal to Hex Convert 450 to Hex Think about base 16, 163 162 161 160 4097 256 16 1 For 450 we need x1 x12 x2 In Hex 1 C 2 &1C2
  • 26. 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.
  • 27. 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
  • 28. 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).
  • 29. 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.
  • 30. Programmable Systems Outcome 3 S TA R T Beginning Programming S W ITC H P IN 7 H IG H Consider the simple Flowchart shown opposite. W A IT 2 S E C O N D S The Flowchart helps us plan our programming. S W ITC H P IN 6 H IG H W A IT 1 S E C O N D Now have a look at the next slide which shows a possible solution to this Flowchart S W ITC H P IN S 4 & 5 H IG H W A IT 3 S E C O N D S S W ITC H A L L O FF S TO P
  • 31. 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
  • 32. Programmable Systems Outcome 3 S TA R T Labels and Addressing S W ITC H P IN 7 H IG H W A IT 2 S E C O N D S Sometimes it is necessary to create programs that loop 'forever', as shown by the flowchart. In this case S W ITC H P IN 6 H IG H it is necessary to add labels to the program, and to use the 'goto' command to jump to the line marked W A IT 1 S E C O N D by the label. S W ITC H P IN S 4 & 5 H IG H Study the Flowchart then look at W A IT 3 S E C O N D S the solution on the next slide. S W ITC H A L L O FF W A IT 1 S E C O N D
  • 33. Programmable Systems Outcome 3 S TA R T Labels and Addressing (Continued) S W ITC H P IN 7 H IG H W A IT 2 S E C O N D S A PBASIC program which would achieve this control operation is listed below. S W ITC H P IN 6 H IG H init: let dirs = %11110000 ' set pins 4-7 as outputs W A IT 1 S E C O N D main: high 7 ' set pin 7 high pause 2000 ' wait for 2 seconds S W ITC H P IN S 4 & 5 H IG H high 6 ' set pin 6 high pause 1000 ' wait for 1 second W A IT 3 S E C O N D S let pins = %11110000 ' set pins 4-7 high pause 3000 ' wait for 3 seconds S W ITC H A L L O FF let pins = 0 ' switch all pins low pause 1000 ' wait for 1 second W A IT 1 S E C O N D goto main ' loop forever
  • 34. 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'.
  • 35. 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?
  • 36. Programmable Systems Outcome 3 Assignment 2 A set of temporary traffic lights are required for a system of road-works. red 10 sec Draw a flowchart for the lights sequence shown by one set of the traffic lights. red and amber 2 sec green 10 sec Use the times shown in the table for each stage. amber 2 sec Write a PBASIC program to achieve this operation. Use the following pin configuration - red (7), amber (6) and green (5).
  • 37. Programmable Systems Outcome 3 S TA R T Assignment 3 M O VE FO RW ARD W A IT 3 S E C . Write a high level program in PBASIC to control the movement of the buggy as shown by the flowchart opposite. TURN LEFT W A IT 1 S E C . M O VE FO RW ARD W A IT 3 S E C . S TO P
  • 38. Programmable Systems Outcome 3 S TA R T For...Next Loops S E T C O U N TE R = 5 A for...next loop is used when you wish to repeat a S W ITC H P IN 7 H IG H section of code a number of times. The number of times the program runs for is set by a W A IT 1 S E C O N D variable. S W ITC H P IN 7 A variable is a number that is stored in the RAM LO W memory of the Stamp Controller. W A IT 1 S E C O N D There are 14 memory locations that byte variables can be stored in. These locations are labelled b0 to b13, but can also HAVE W E N LO O P E D 5 be 'renamed' to more appropriate names by use of TIM E S ? the 'symbol' command. Y S TO P
  • 39. 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
  • 40. Programmable Systems Outcome 3 Assignment 4 3 A buggy is to follow the path shown opposite. Draw a flowchart for the movement of the 3 3 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 3 by your flowchart. (Assume it takes 1.5 seconds to turn 90 degrees).
  • 41. Programmable Systems Outcome 3 Assignment 5 Input Pin Output Connection Connection As part of a Christmas decoration, a lighting sequence is to be controlled by a 7 microcontroller. The output connections are 6 Yellow shown opposite. Light 5 Purple Light The red and green lights should come on 4 together and stay on for 5 seconds. Then they both go off and the yellow and blue 3 Blue Light lights should come on together for 8 2 Green Light seconds. They then go off and the purple 1 light flashes on and off 6 times (the 'on' and 'off' times being 0.5 seconds each). The 0 Red Light sequence then repeats itself continuously. Draw a flowchart and write a PBASIC program for this sequence.
  • 42. Programmable Systems Outcome 3 S TA R T If...Then... command S W ITC H P IN 7 H IG H The if...then programming structure allows the computer to make a decision based on information received from an input pin. IS P IN 3 N H IG H ? Note the symbol used in the flowchart Y S W ITC H A L L Give an example of where this type of LO W control might be used S TO P
  • 43. 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.
  • 44. Programmable Systems Outcome 3 S TA R T S W ITC H A L L P IN S H IG H Assignment 6 W A IT 5 S E C O N D S S W ITC H A L L P IN S L O W Develop a PBASIC program that will carry out the instructions shown in the flowchart opposite. W A IT 0 . 5 S E C O N D S S W ITC H A L L P IN S H IG H W A IT 0 . 5 S E C O N D S H A S T H IS B E E N N D O N E 1 0 TIM E S ? Y S W ITC H A L L P IN S L O W S TO P
  • 45. 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.
  • 46. Programmable Systems Outcome 3 Assignment 8 Connect 2 motors to the output O UTPUT S TA M P driver module (or MFA movement D R IV E R CO NTR O LLER M O D U LE 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. V+ The motors should run in a forward direction until 0 either of the two micro-switch bumpers are 1 activated. At this point the motors should reverse for 2 3 seconds, then stop. One motor should then switch 3 on for 2 seconds, then stop. Both motors should 0V then switch on. SHOWS HOW TO WIRE 2 SWITCHES TO Draw a flowchart and write a PBASIC program to THE SCREW TERMINALS ON THE STAMP CONTROLLER control the movement of the buggy as described above.
  • 47. Programmable Systems Outcome 3 S TA R T Develop a PBASIC program that will G REEN LED O N Assignment 9 carry out the instructions shown in the flowchart opposite. Use the following pin configuration. S W IT C H PUSHED? NO YES Input Pin Output G REEN LED O FF AM BER LED O N Connection Connection 7 Red Light W A IT 3 s e c . 6 Amber AM BER LED O FF RED LED O N Light 5 Green Light W A IT 4 s e c . 4 AM BER LED O N Start 3 Switch W A IT 2 s e c .. R E D /A M B E R L E D O F F G R EEN LED O N
  • 48. Programmable Systems Outcome 3 FLASH Sub-Procedures S TA R T It is often useful to be able to re-use B1 = 5 H IG H 7 sections of code within a program. A sub-procedure is a small section of FLASH W A IT 0 .1 s code that can be 'called' from a different part of the program. B1 = 20 LO W 7 After the sub-procedure is finished program flow moves back to the FLASH W A IT 0 .1 s original section of the program. B1 = 10 To 'call' a sub-procedure the gosub H A S T H IS BEEN DO NE (go-to-sub-procedure) command is B 1 T IM E S ? NO FLASH used. YES S TO P The last line of the sub-procedure RETURN must be return, which means 'return to the original position'.
  • 49. 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 pause 2000 ' wait two seconds end ' end the main program ' Sub-procedures start here. Continued on next page
  • 50. 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.
  • 51. 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.
  • 52. 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
  • 53. 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).
  • 54. 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.
  • 55. Programmable Systems Outcome 3 M A IN S W A TE R Assignment 12 IN L E T V A LV E H E A D S TO R A G E TA N K A G ITA TO R M O TO R D U M P P U M P M O TO R C O N V EYO R M O TO R 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.:
  • 56. Programmable Systems Outcome 3 Assignment 12 continued Input Pin Output Connection Connection 7 Agitator motor 6 Dump Pump 5 Conveyer 4 Inlet valve 3 2 1 Start switch 0
  • 57. 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.
  • 58. Programmable Systems Outcome 3 Assignment 12 continued (a) 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
  • 59. 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.
  • 60. 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.
  • 61. 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
  • 62. 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
  • 63. 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.
  • 64. Programmable Systems Outcome 3 Assignment 13 solution STAR T W A IT 1 S e c . P IN 0 H IG H ? LET b0 = b0 + 1 U PDATE LCD P IN 1 LET b0 = b0 - 1 H IG H /
  • 65. 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
  • 66. 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
  • 67. Programmable Systems Outcome 3 Mechatronic System Interfacing Circuits Vt 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. 0V
  • 68. 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.
  • 69. 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. + 5V + 12V R E LA Y S O L E N O ID 0V 0V
  • 70. Programmable Systems Outcome 3 Connecting Digital Switches + 5V Digital switches are available in two main 'families'. Normally- open switches are the most common. As the name suggests, S W ITC H O P E N = L O W the contacts on these switches S W ITC H C L O S E D = H IG H are normally open, so the switch is electrically 'off'. When the 10K switch is activated the contacts close and so the switch is electrically 'on'. 0V Note: Your Teacher will discuss N O R M A L L Y O P E N S W ITC H pull up & Pull down resistors.
  • 71. 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
  • 72. Programmable Systems Outcome 3 S TA R T Assignment 14 Write, and test, a PBASIC program for the R ED LED O N BUZZER OFF control sequence shown in the diagram B O LT O U T opposite. W A IT 2 s S W IT C H 1 PRESSED? BUZZER O N Input Pin Output Connection NO Connection YES 7 Bolt S W IT C H 2 PRESSED? 6 Buzzer NO 5 Green LED YES 4 Red LED S W IT C H 3 PRESSED? NO Switch 3 3 YES Switch 2 2 RED LED O FF G REEN LED O N B O L T IN Switch 1 1 W A IT 3 s 0
  • 73. 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.
  • 74. 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.
  • 75. Programmable Systems Outcome 3 + 12V Stepper Motors 7 1 18 6 2 17 To make the armature rotate 5 3 16 continuously the four coils must be U LN 2 8 0 3 A 4 4 15 switched on and off in a certain 5 14 S TE P P E R order. 6 13 7 12 8 11 Many microcontroller systems use 9 10 four output lines to control the 0V 0V stepper motor, each output line controlling the power to one of the coils.
  • 76. 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.
  • 77. Programmable Systems Outcome 3 Assignment 16 12V D C S U P P LY S TA M P O UTPUT STEPPER C O N TR O LLER D R IV E R M O TO R 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.
  • 78. 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 Coil 3 Coil 2 Coil 1 (output 7) (output 6) (output 5) (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
  • 79. Programmable Systems Outcome 3 Stepper Motor Driver IC + 12V 100K 1K The use of four output pins to 2 13 14 4 drive a stepper motor can be an R VC C 2 VC C 1 RX inefficient way to use the C LO C K 15 C Q 1 microcontroller input/output pins. SA A Q 2 1027 Q 3 3 D IR E C TIO N M A dedicated integrated circuit, Q 4 called the SAA1027 stepper motor V EE1 V EE2 S TE P P E R driver, has been designed to 5 12 0V 0V overcome this problem by building the logic step generator, and the transistor switches, into one package.
  • 80. 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
  • 81. Programmable Systems Outcome 3 Activity, connect the MFA boards to the Stamp as shown. Run the program. 12V DC S U P P LY S TA M P M FA M FA C O N TR O LLER ADAPTER STEPPER M O TO R D R IV E R STEPPER M O TO R
  • 82. 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. G R O O V E SEN SO R 4 -PH A SE S TE P P E R M O TO R C R Y S TA L G LA SS G RO O VES P O L IS H IN G B R U S H D R IV E N B Y D C M O TO R P N E U M A TIC C Y L IN D E R S M O V E B R U S H M O TO R IN TO / O U T F R O M TH E G L A S S
  • 83. 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. G R O O V E SEN SO R 4 -PH A SE S TE P P E R M O TO R C R Y S TA L G LA SS G RO O VES P O L IS H IN G B R U S H D R IV E N B Y D C M O TO R P N E U M A TIC C Y L IN D E R S M O V E B R U S H M O TO R IN TO / O U T F R O M TH E G L A S S
  • 84. 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 0 (logic 1 when pressed)
  • 85. 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.
  • 86. 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
  • 87. 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 O UTPUT S TA M P D R IV E R C O N TR O LLER M O DU LE
  • 88. 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.
  • 89. 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
  • 90. 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. 2 1 DAC 0 A N A LO G U E D IG ITA L
  • 91. Programmable Systems Outcome 3 Digital to Analogue Conversion binary analogue output (V) input A Digital to Analogue Converter (DAC) is an integrated circuit that 000 0.00 decodes binary information and 001 0.71 generates an analogue voltage proportional to the binary 010 1.42 information provided. 011 2.13 A three bit DAC, with an output 100 2.84 range of 0-5V, may produce a voltage output according to the 101 3.55 table shown opposite.: 110 4.26 111 4.97
  • 92. 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. 10K 10K 2 22K The simplest form of DAC 1 +5V is made from a summing 39K amplifier, as shown in the 0 diagram below -5 V 0V
  • 93. 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 15V MOTOR DC SUPPLY STAMP MFA MFA This program drives the ADAPTER POWER CONTROLLER D TO A motor at eight different CONVERTER speeds for five seconds each speed.
  • 94. 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.
  • 95. Programmable Systems Outcome 3 Pulse Width Modulation V The graph shows how the technique is M ARK 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 SPA C E t pulses this acceleration/deceleration becomes negligible, and the motor rotates constantly at a slower speed.
  • 96. 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
  • 97. Programmable Systems Outcome 3 Soft Start of DC Motors V t 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.
  • 98. 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
  • 99. Programmable Systems Outcome 3 10K 10K Assignment 19 2 22K 1 Details of a speed control unit for +5V a dc motor are shown. 39K 0 Name the configuration of operational amplifier being used. -5 V 0V 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
  • 100. 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 2:1. 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
  • 101. Programmable Systems Outcome 3 Assignment 20 Input Pin Output Connection Connection 7 6 5 Motor Anticlockwise 4 Motor Clockwise 3 2 1 0
  • 102. 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.
  • 103. Programmable Systems Outcome 3 Voltage Reference 5V 1K 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 2 .5 V REF V REF= 2 .5 V voltage. D IO D E 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. 0V Therefore the 8-bit ADC device will generate an 8-bit value directly equivalent to the voltage signal applied.
  • 104. Programmable Systems Outcome 3 Signal Conditioning S IG N A L A M P L IF IE R 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.
  • 105. 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
  • 106. 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 Your Task 2) Calculate the gain required from the op-amp circuit. Draw a suitable circuit to achieve a gain of 0.33 Input Signal = 7.65V Required output signal = 2.55V Therefore Gain = output / input = 2.55 / 7.65 = 0.33
  • 107. 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. b) 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).
  • 108. 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?
  • 109. 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? b) 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).
  • 110. Programmable Systems Outcome 3 Interfacing to the ADC The ADC used with the Stamp + 5V Controller is a 'serial' type device. This means that the analogue 1 P IN 0 C S VC C reading is transmitted as a series 2 of eight consecutive bits via a V IN V IN ( + ) ADC C LK P IN 1 single 'data' pin. However it is 3 V IN ( - ) 0831 D A TA P IN 2 obviously necessary that the 4 V REF Stamp Controller and the ADC are G ND 2 .5 V synchronised for this communication, and this is 0V achieved by the Stamp Controller sending a number of 'clock' pulses down a second 'clock' pin.
  • 111. 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.
  • 112. Programmable Systems Outcome 3 Activity TEM PERATU RE S E R IA L S TA M P PRO BE ADC C O N TR O LLER M O D ULE 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
  • 113. 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.
  • 114. 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 M U L TIP L E X E R of the analogue channels in turn to the ADC. Therefore the multiplexer 'selects' V s1 which sensor is connected to the ADC at TO A D C any one time. As only one sensor is connected to the ADC at any one time the V s2 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.
  • 115. Programmable Systems Outcome 3 Activity TEM PERATURE S E R IA L S E R IA L PRO BE M U L T IP L E X E R S TA M P ADC C O N TR O LLER LC D M O D U LE M O D U LE L IG H T SENSO R 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.
  • 116. Programmable Systems Outcome 3 Activity TEM PERATURE S E R IA L S TA M P S E R IA L PRO BE M U L T IP L E X E R ADC LCD M O DULE CO NTRO LLER M O DULE L IG H T SENSO R 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= ",#data," ") pause 1000 'Wait 1 second goto main 'Loop
  • 117. Programmable Systems Outcome 3 Assignment 3 TEM PER ATU R E S E R IA L S TA M P D ATA LO G G E R S E R IA L PRO BE ADC C O N TR O LLER M O DU LE LC D M O D U LE M O DU LE Build the circuit as shown in the diagram above. (The datalogging module is optional at this point) a) Write a high level program in PBASIC that will continually monitor and display the temperature of the water on the LCD. b) The temperature of the water should not be allowed to drop below 45 degrees Celsius. Modify your PBASIC program so that the immersion heater (connected to pin3) is automatically switched on when the water cools below the critical temperature.
  • 118. Programmable Systems Outcome 3 Assignment 3 solutions main: gosub adcread 'Get the ADC reading serout 7,T2400,(254,128) 'Print on LCD line 1 serout 7,T2400,("Temp = ",#data," ") pause 1000 'Wait 1 second goto main 'Loop main: gosub adcread 'Get the ADC reading serout 7,T2400,(254,128) 'Print on LCD line 1 serout 7,T2400,("Temp = ",#data," ") if data < 45 then doon 'Jump if temp low low 3 'Heater off goto main 'Loop doon: high 3 'Heater on goto main 'Loop
  • 119. Programmable Systems Outcome 3 Assignment 4 A local council has issued standard size "wheely bins" to all households so that the dust carts can empty them automatically. The dustman simply clamps the wheely bin onto a platform and then presses a switch. the platform then rotates through 130 degrees as shown in the diagram. The platform stays in the emptying position for 5 seconds and then returns to it's original position, where it triggers a micro switch on the rear of the dustcart. Platform movement is controlled by a dc motor and gearbox. 0 130 S TA R T S W ITC H W H E E LY B IN Continued P L A TF O R M M IC R O - S W ITC H
  • 120. Programmable Systems Outcome 3 Assignment 4 The process is controlled by a microcontroller. the angle of rotation of the platform is sensed by a rotary potentiometer. The potentiometer is capable of rotating 360 degrees from the starting position, and rotation between 0 and 360 degrees sends a proportional reading of between 0 and 255 via an ADC module connected to the microcontroller. Input Pin Output Connection Connection Start 0 switch 1 2 Micro- 3 switch 4 Motor clockwise (Raises bin) 5 Motor anti-clockwise Continued (Lowers bin)
  • 121. Programmable Systems Outcome 3 Assignment 4 (a) Calculate the analogue reading when the platform is 130 degrees from the original position. (b) Draw up a flow chart which shows the control sequence for the emptying of the wheely bin. (c) With reference to your flow chart, write a high level program in PBASIC to control sequence for the emptying of the wheely bin. Assume use of a pre-written sub-procedure called 'adcread' which will return the analogue reading in a variable called 'data'.

Editor's Notes

  1. 6V = 255 steps, so 4.8/6 x 255 = 204, which = 11001100 in binary
  2. 6V = 255 steps, so 4.8/6 x 255 = 204, which = 11001100 in binary