Programmable Systems Electronic devices have been developed to make life more enjoyable, easier,...

50
Programmable Systems Electronic devices have been developed to make life more enjoyable, easier, safer or more productive. Some examples: Microwave oven. Traffic lights. Computers. Games consoles.

Transcript of Programmable Systems Electronic devices have been developed to make life more enjoyable, easier,...

Programmable Systems

Electronic devices have been developed to make

life more enjoyable, easier, safer or more

productive.

Some examples:

Microwave oven.Traffic lights.Computers.Games consoles.

There are 2 types of Electronic device,

1) Purely electronic devices such as Digital Watches

2) Mechatronic devices such as a Computer Hard Drive

Question: Why do you think a Computer Hard Drive comes under Mechatronic devices?

Electronic Control Systems

Pupil Assignment

1. List three electronic devices.

2. List three mechatronic devices.

3. Explain the ‘mechanism’ in each of the three mechatronic devices listed.

Some possible answers:

1) Mobile Phone, Television remote control, Calculator

2) Computer DVD-ROM drive, Smart Phone, Remote door lock in a car

Mechatronic Device

A typical mechatronic system picks up signals from the environment, processes them to generate output signals, transforming them for example into forces, motions and actions.

System Diagram

Both Electronic and Mechatronic devices have one thing in common, they both have a control unit.

0 C0

The system diagram for a warning device for a freezer in a restaurant would be drawn as below.

HEAT SOUNDTEMPERATURESENSOR DRIVER BUZZER

Transducers

Input transducers are electronic devices that detect changes in the ‘real world’ and send signals into the process block of the electronic system.

Output transducers are electronic devices that can be switched on and off by the process block of the electronic system.

A popular electronic toy is shown. Try to identify as many input and output transducers as you can.

Pupil Assignment

P op

F i zzy

K olah

J ui ce

Gi nger

Y uk

List the Input and Output transducers for the following products

Washing machine

Vending Machine

Personal Music Player

Hairdryer

Microcontrollers

A microcontroller is often described as ‘a computer on a chip’

It has a memory and the ability to receive inputs and control outputs

It is a small & inexpensive device

Often built into products to make them more intelligent and easier to use

Usually programmed for a specific purpose/ product

Advantages of Microcontrollers

A microcontroller can often replace several parts or even a complete circuit.

The main advantages to using one are:

Increased reliability (less parts to fail)

Simplified product assembly (less parts required)

Greater product flexibility (can be re-programmed)

Pupil Assignment

List three devices that may contain a microcontroller.

Explain why you think it would be useful to have a microcontroller in these devices.

Stamp Controller

Programming Procedure:

Draw a flowchart for the control

task. Write the program

on the 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.

Getting Started - Programming

Start up the Stamp software and key in the program.

Save the program and then download it to the stamp controller by clicking ‘Run’.

Your teacher will give you help with the software, if you need it.

In your own words explain what the program does.

main:

high 7

pause 1000low 7pause 1000end

Pupil Assignment

red 10 s

red and amber

2 s

green 10 s

amber 2 s

Using the times shown in the table for each stage of a Traffic Light sequence, write a P-Basic Program for the lights then run and test your program.

Flow ChartsSTART

SWITCH PIN 7HIGH

SWITCH PIN 6HIGH

SWITCH PIN 4 & 5 HIGH

WAIT 2 SECONDS

SWITCH ALLOFF

WAIT 3 SECONDS

STOP

WAIT 1 SECOND

Start / Stop Symbol

Input / Output Symbol

Wait Symbol

There are other symbols you will need to learn, but we will discuss those when we need to use them.

Pupil AssignmentA microwave oven operates with the following sequence. Draw a flowchart and write a P-Basic program for this sequence.

Light onTurntable onMagnetron onWait 30 secondsMagnetron offWait 10 secondsTurntable offBuzzer onWait 0.5 secondBuzzer offLight off

You can decide for yourself which pins to allocate to the output transducers

Adding Comments

Comments are always added to program listings to help explain the program operation. An example is shown below.

Main:

high 7 ‘switch pin 7 high

pause 1000 ‘wait 1 second

low 7 ‘switch pin 7 off

pause 1000 ‘wait 1 second

goto main ‘jump to label main

Note the apostrophe which tells the program that what follows is a comment, not a line of code.

Program Layout & White Space

Main:

high 7 ‘switch pin 7 high

pause 1000 ‘wait 1 second

low 7 ‘switch pin 7 off

pause 1000 ‘wait 1 second

goto main ‘jump to label main

Lets have a look at the layout of the previous code. Note how the code is indented, (tabbed in). This is known as leaving “WHITE SPACE”. White space makes the layout and reading of programs much clearer.

The start of the program is indicated by the “LABEL” main, note the colon after the label. Labels can have any name as long as it is not a P- Basic command.

Copy down the program below and label each part as shown.

Label

Code

White Space

Comments

Symbols

Sometimes it can be hard to remember which pins are connected to which devices. The ‘symbol’ command can then be used at the start of a program to rename the inputs and outputs.

symbol red = 7 ' rename 7 ‘red’symbol green = 5 ' rename 5 ‘green’

main: ' make a label called ‘main’

high red ' red LED onlow green ' green LED offpause 1000 ' wait 1 secondlow red ' red LED offhigh green ' green LED onpause 1000 ' wait 1 secondgoto main ' jump back to the start

Key in the program, then run and test.

LOOPS

Sometimes it is necessary to create programs that loop ‘forever’, as is the case in this flowchart. There is no ‘Stop’ symbol because the program never ends!

What command makes the program loop?

main:

high 7

pause 2000high 6pause 1000high 4high 5pause 3000low 4low 5low 6low 7pause 1000goto main

START

SWITC H PIN 7HIG H

SWITC H PIN 6HIG H

SWITC H PINS 4 5HIG H

&

WAIT 2 SEC O NDS

SWITC H ALLO FF

WAIT 3 SEC O NDS

WAIT 1 SEC O ND

WAIT 1 SEC O ND

Pupil Assignment

red 10 s

red andamber

2 s

green 10 s

amber 2 s

1. Draw a flow chart for the control of the traffic lights

2. Write a P-Basic program using the symbol command to give names to pins

3. The program should loop

4. Run and test your program

Pupil AssignmentA fountain in a garden centre is to be used to attract visitors to a new range of plastic ponds. The garden centre owner wishes to develop a microcontroller-based system that can be programmed to switch the fountain pump and an external lighting system on and off at regular intervals.

Draw a flowchart for the control sequence and add the missing comments to the program listing.

main: high 7 ' switch the pump onpause 10000 ' wait 10 secondshigh 6 ' switch the lights onpause 40000 ' …low 6 ' …pause 10000 ' …low 7 ' …pause 60000 ' …goto main ' …

Pupil Assignment

Input connection

Pin Output connection

7 train motor

6 points

5 green signal

4 red signal

3

2

1

0

1. Switch the green signal on2. Switch the train on for 30

seconds3. Stop the train4. Switch the green signal off and

the red signal on5. Switch the points on6. Switch the train on for 30

seconds7. Stop the train8. Switch the points off9. Switch the red signal off 10. Jump back to step 1

A toy shop has a train set in the window. The train set has an electric train, a set of red/green signals and a set of moving track points that allow the train to move around two different loops of track. Draw a flow chart and write a P-Basic program to control the train set.

Output Module

Allows output transducers to be connected to the stamp

controller

Typical output transducers are Motors, Buzzers and Bulbs

To use the output module, the output device should be

connected between the screw-terminal numbered output (4–7) and a V+ connection.

Pupil Activity

STAM PC O N TR O LLER

O U TPU TD R IVER

M O D U LE

main: ' make a label called ‘main’high 5 ' motor A forwardhigh 7 ' motor B forwardpause 1000 ' wait 1 secondlow 5 ' motor A haltlow 7 ' motor B haltpause 1000 ' wait 1 secondhigh 4 ' motor A backwardhigh 6 ' motor B backwardpause 1000 ' wait 1 secondlow 4 ' motor A haltlow 6 ' motor B haltgoto main ' jump back to the start

Connect 2 dc motors to the output module, enter the following code then run and test your program.

YOUR TEACHER WILL EXPLAIN THE MODULE CONNECTIONS

Speed Control

There are two ways to control the speed of a d.c. motor.

Vary the voltage applied to the motor. Unfortunately the ‘turning power’ (torque) of the motor will also drop, which means the whole motor system will be less powerful.

The second way to control the motor is to always apply the full voltage but then to switch the power supply on and off rapidly. The advantage of this system is that the torque remains quite high.

This method is known as PULSE WIDTH MODULATION

Pulse Width Modulation

V

tSPACE

MARK

Motor off is known as SPACE – Larger Space to Mark Ratio = slow speed

Motor on is known as MARK – Larger Mark to Space Ratio = fast speed

Pupil Activity

Connect a d.c. solar motor across the ‘V+’ and ‘7’ 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 (off time) is twice the length of the mark (on time).

main: high 7 ' output highpause 5 ' pause for 5 mslow 7 ' output lowpause 10 ' pause for 10 msgoto main ' loop

Try out different speeds (by experiment) by altering the length of the pause delays.

Pupil Assignment

1) Explain the terms ‘mark’ and ‘space’ in relation to PWM speed control of a d.c. motor.

2) Describe the advantages and disadvantages of using PWM speed control.

3) Sketch 2 PWM graphs, one for a fast speed and one for a slow speed.

Pupil Assignment

The motor on the washing machine is controlled by outputs 6 and 7 (motor B). Switching output 6 on will make the motor turn one way; switching output 7 on will make the motor turn the other way.

Draw a flowchart and write a PBASIC program that will make the motor rotate at full speed in each direction for five seconds.

Write a second PBASIC program that will make the motor rotate at half speed in each direction for five seconds. Use PWM speed control for the motor.

For Next Loops

It is often useful to repeat the same part of a program a number of times, for instance when flashing an LED. In these cases a ‘for … next’ loop can be used.

START

SET COUNTER = 5

SWITCH PIN 7HIGH

WAIT 1 s

SWITCH PIN 7LOW

HAVE WELOOPED 5

TIMES?

STOP

WAIT 1 s

YES

NO

?

Note the new flowchart symbol. This is the decision symbol

For Next Loops – Pupil Activity

Key in, download and run the following program.

symbol counter = b0 ' define the variable ‘counter’symbol red = 7 ' define pin 7 with the name ‘red’

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

secondnext counter ' end of for …

next loopend ' end program

Pupil Assignment

3

3

33

Connect the buggy to the output module.

The buggy should follow the path shown in the diagram, moving in each direction for three seconds.

Draw a flowchart for the movement of the buggy, making use of a ‘for … next’ command structure.

Write a high-level program in PBASIC to control the movement of the buggy as shown by your flowchart.

Sub - Procedures

A sub-procedure is a separate ‘mini-program’ that can be called from the main program.

Once the sub-procedure has been carried out, the main program continues.

Sub-procedures are often used to separate the program into small sections to make it easier to understand.

Sub-procedures that complete common tasks can also be copied from program to program to save time.

Pupil Activity

symbol red = 7 ' rename pin 7 ‘red’symbol buzzer = 6 ' rename pin 6 ‘buzzer’symbol counter = b0 ' define a counter using variable b0

main: ' make a label called ‘main’gosub flash ' call the sub-procedure flashgosub noise ' call the sub-procedure noisegoto main ' loop backend ' end of the main program

flash: ' make a sub-procedure called ‘flash’for counter = 1 to 25 ' start a for … next loop

high red ' red LED on pause 50 ' wait 0.05 second low red ' red LED off pause 50 ' wait 0.05 secondnext counter ' next loopreturn ' return from the sub-procedure

noise:high buzzer ' buzzer onpause 2000 ' wait 2 secondslow buzzer ' buzzer offreturn ' return from the sub-procedure

Flowchart Symbol

Sub-Procedure symbol

Your teacher will show you the correct way to draw a flowchart which includes a sub-procedure

Pupil Assignment

A washing machine motor should rotate 15 seconds in one direction before reversing and rotating 15 seconds in the opposite direction. This should repeat 10 times.

Draw a flowchart

Write a P-Basic program making use of sub-procedures

Run and test your program

Allows sensors to be connected to the stamp controller

There are 4 digital and 2 analogue inputs Pins 0 and 1 have a test button, they can be

pressed instead of adding switches

Input Module

Digital Sensors act like switches

They are either ON or OFF HIGH or LOW 1 or 0

Some common switches you will meet are the , MicroswitchPush and Rocker switchReed switch

Digital Signals and Input Transducers

VOLTAGE

TIME

5 V

0 V

Analogue Signals

Time (s)

Volts (V)

Analogue signals can vary between a maximum and minimum value and depend on the conditions being monitored, for example light or temperature.

Common analogue input transducers are the Light Dependent Resistor, thermistor, (temperature sensor) and variable resistor.

More Symbols

Microswitch (Single pole, single throw).

Push Switch

Reed Switch

Thermistor

-t

Light Dependent Resistor, LDR

Magnet

Variable Resistor

Push to make

if-then Command

To enable the Stamp Controller to accept inputs, we need to learn a new command, the IF – THEN command

Connect a switch to pin 0, key in, download and run the program listed below. This program makes output pin 7 flash every time the push-switch on input pin 0 is pushed.

main: ' make a label called ‘main’

if pin0 =1 then flash ' jump if the input is ongoto main ' else loop back around

flash: ' make a label called ‘flash’

high 7 ' switch output 7 onpause 2000 ' wait 2 secondslow 7 ' switch output 7 offgoto main ' jump back to start

Pupil Assignment

A burglar alarm must sound a buzzer and light a warning signal for 20 seconds when any of the 2 windows in a room are opened. Each window contains a reed switch that is connected to the alarm.

Draw a flowchart and write a PBASIC program that will operate the burglar alarm correctly. Use the following input and output connections.

Input connection

Pin Output connection

7 red light

6 buzzer

5

4

3

2

switch 1 1

switch 0 0

Pupil Assignment

Input connection

Pin Output connection

7 red light

6 yellow light

5 green light

4

3

2

1

pressure mat

0

As part of a Christmas decoration in a shop, a lighting sequence is to be controlled by a microcontroller. The output connections are shown below.

When a visitor treads on a pressure mat under the carpet, the lights should flash on and off in sequence three times.

Pupil AssignmentInput connection

Pin Output connection

7 motor reverse

6 motor forward

5 solenoid bolt

4 LED

3

2

door Microswitch

1

start switch 0

A washing machine operates as follows.

Wait until the start switch is on.Wait until the door switch is on.Switch on the LED.Switch on the solenoid bolt.Wash cycle: repeated 20 times

– motor forwards for five seconds, motor backwards for five seconds.

Spin cycle: repeated 10 times – motor forwards for two seconds, motor backwards for two seconds.

Switch off the solenoid bolt.Switch off the LED.

Draw a flowchart and write a PBASIC program to control the movement of the washing machine as described above.

Pupil Assignment

N

Y

START

GREENLED ON

SWITCHPUSHED?

GREEN LED OFFAMBER LED ON

WAIT 3 s

GREEN LED OFFRED LED ON

WAIT 4 s

AMBER LED ON

WAIT 2 s

RED/AMBER LEDOFF

GREEN LED ON

Develop a PBASIC program that will carry out the instructions shown in the flowchart. Use the following pin configuration.

Input connection

Pin Output connection

7 red light

6 amber light

5 green light

4

3

2

1

start switch 0

Red On/ Amber Green Off

Pupil Assignment

State whether each of the input transducers below is an analogue or digital sensor.

(a) LDR(b) reed switch(c) microswitch(d) thermistor(e) variable resistor(f) tilt switch(g) push switch(h) rocker switch

For each of the input transducers give an example of an electronic product that may use that transducer. Explain how the transducer would be used within the product.

Number Systems

The Stamp Microcontroller can accept decimal numbers as well as binary numbers. However, we need to tell the microcontroller what we are using.

Decimal values are written as usual: 10 (= 10 in decimal)

Binary values are indicated by a % symbol: %10 (= 2 in decimal)

Your teacher will now show you how to convert decimal to binary and binary to decimal.

Pupil Assignment

Convert each of the following binary numbers into decimal.

1) %111100002) %110000113) %010101014) %10101010

Convert each of these decimal numbers into binary.

1) 172) 233) 114) 385) 33

The “let dirs” command

Up till now, if we wanted to switch on more than one output, we needed to switch them on one by one. However, by using binary, we can now switch on more than one pin at a time.

To enable us to achieve this, we must first tell the microcontroller what pins are outputs and which are inputs.

To do this we use the dirs command.

Let dirs = %00001111 ‘let pins 0 to 3 be outputs the rest inputs

The “let pins” command

Once we have instructed the microcontroller what is outputs and what is inputs, we use the let pins command.Let dirs =%11111111 ‘all pins outputs

Main:

let pins = %00001111 ‘switch on pins 0 to 3

pause 1500 ‘1.5 second delay

let pins = 0 ‘switch all pins off

pause 1500 ‘1.5 second delay

let pins = %11110000 ‘switch on pins 4 to 7

pause 1500 ‘1.5 second delay

let pins = 0 ‘switch off all pins

end ‘end program