UoD_ME21001_Group_1_16 / Mbed 2 deprecated 4_project

Dependencies:   mbed

Committer:
vrasmusen
Date:
Thu Nov 28 15:57:52 2019 +0000
Revision:
0:4d589ddb43db
Project code 4

Who changed what in which revision?

UserRevisionLine numberNew 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