Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
main.cpp@0:4d589ddb43db, 2019-11-28 (annotated)
- Committer:
- vrasmusen
- Date:
- Thu Nov 28 15:57:52 2019 +0000
- Revision:
- 0:4d589ddb43db
Project code 4
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| vrasmusen | 0:4d589ddb43db | 1 | //********************************************************************* // |
| vrasmusen | 0:4d589ddb43db | 2 | // this will cause the lights to flash in the UK Traffic light sequence // |
| vrasmusen | 0:4d589ddb43db | 3 | // and allow pedestrians to cross // |
| vrasmusen | 0:4d589ddb43db | 4 | //********************************************************************* // |
| vrasmusen | 0:4d589ddb43db | 5 | |
| vrasmusen | 0:4d589ddb43db | 6 | #include "mbed.h" |
| vrasmusen | 0:4d589ddb43db | 7 | |
| vrasmusen | 0:4d589ddb43db | 8 | DigitalOut g1(p24); //green lights 1 and 3 use output pin 24 |
| vrasmusen | 0:4d589ddb43db | 9 | DigitalOut g2(p25); //green lights 2 and 4 use output pin 25 |
| vrasmusen | 0:4d589ddb43db | 10 | DigitalOut y1(p27); //yellow lights 1 and 3 use output pin 27 |
| vrasmusen | 0:4d589ddb43db | 11 | DigitalOut y2(p28); //yellow lights 2 and 4 use output pin 28 |
| vrasmusen | 0:4d589ddb43db | 12 | DigitalOut r1(p29); //red lights 1 and 3 use output pin 29 |
| vrasmusen | 0:4d589ddb43db | 13 | DigitalOut r2(p30); //red lights 2 and 4 use output pin 30 |
| vrasmusen | 0:4d589ddb43db | 14 | DigitalIn switchstate (p17); //switches use input pin 17 |
| vrasmusen | 0:4d589ddb43db | 15 | |
| vrasmusen | 0:4d589ddb43db | 16 | int main() |
| vrasmusen | 0:4d589ddb43db | 17 | { |
| vrasmusen | 0:4d589ddb43db | 18 | |
| vrasmusen | 0:4d589ddb43db | 19 | g1=r2=1; //1 set red, 1 set green (starting condition) |
| vrasmusen | 0:4d589ddb43db | 20 | |
| vrasmusen | 0:4d589ddb43db | 21 | while(1) { |
| vrasmusen | 0:4d589ddb43db | 22 | while (switch1.read()==1) { //while buttons are not pressed |
| vrasmusen | 0:4d589ddb43db | 23 | if (g1 = 1) { //runs normal traffic routine if set 1 starts green |
| vrasmusen | 0:4d589ddb43db | 24 | wait(1); |
| vrasmusen | 0:4d589ddb43db | 25 | y1=1; |
| vrasmusen | 0:4d589ddb43db | 26 | g1=0; |
| vrasmusen | 0:4d589ddb43db | 27 | wait(1); |
| vrasmusen | 0:4d589ddb43db | 28 | y1=r2=0; |
| vrasmusen | 0:4d589ddb43db | 29 | g2=1; |
| vrasmusen | 0:4d589ddb43db | 30 | } else { |
| vrasmusen | 0:4d589ddb43db | 31 | wait(1); //runs normal traffic routine if set 2 green |
| vrasmusen | 0:4d589ddb43db | 32 | y2=1; |
| vrasmusen | 0:4d589ddb43db | 33 | g2=0; |
| vrasmusen | 0:4d589ddb43db | 34 | wait(1); |
| vrasmusen | 0:4d589ddb43db | 35 | y2=r1=0; |
| vrasmusen | 0:4d589ddb43db | 36 | g1=0; |
| vrasmusen | 0:4d589ddb43db | 37 | } |
| vrasmusen | 0:4d589ddb43db | 38 | } |
| vrasmusen | 0:4d589ddb43db | 39 | if (g1=1) { //if set 1 green when button pressed, move to green, wait and start set 2 |
| vrasmusen | 0:4d589ddb43db | 40 | wait(1); |
| vrasmusen | 0:4d589ddb43db | 41 | y1=1; |
| vrasmusen | 0:4d589ddb43db | 42 | g1=0; |
| vrasmusen | 0:4d589ddb43db | 43 | wait(1); |
| vrasmusen | 0:4d589ddb43db | 44 | r1=1; |
| vrasmusen | 0:4d589ddb43db | 45 | y1=0; |
| vrasmusen | 0:4d589ddb43db | 46 | wait(5); |
| vrasmusen | 0:4d589ddb43db | 47 | y2=0; |
| vrasmusen | 0:4d589ddb43db | 48 | wait(1); |
| vrasmusen | 0:4d589ddb43db | 49 | y2=0; |
| vrasmusen | 0:4d589ddb43db | 50 | g2=1; |
| vrasmusen | 0:4d589ddb43db | 51 | } else { //same as above but set 2 was green |
| vrasmusen | 0:4d589ddb43db | 52 | wait(1); |
| vrasmusen | 0:4d589ddb43db | 53 | y2=1; |
| vrasmusen | 0:4d589ddb43db | 54 | g2=0; |
| vrasmusen | 0:4d589ddb43db | 55 | wait(1); |
| vrasmusen | 0:4d589ddb43db | 56 | r1=1; |
| vrasmusen | 0:4d589ddb43db | 57 | y2=0; |
| vrasmusen | 0:4d589ddb43db | 58 | wait(5); |
| vrasmusen | 0:4d589ddb43db | 59 | y1=0; |
| vrasmusen | 0:4d589ddb43db | 60 | wait(1); |
| vrasmusen | 0:4d589ddb43db | 61 | y1=0; |
| vrasmusen | 0:4d589ddb43db | 62 | g1=1; |
| vrasmusen | 0:4d589ddb43db | 63 | } |
| vrasmusen | 0:4d589ddb43db | 64 | } |
| vrasmusen | 0:4d589ddb43db | 65 | } |
| vrasmusen | 0:4d589ddb43db | 66 |