UoD_ME21001_Group_1_07 / Mbed 2 deprecated Project_Test_9

Dependencies:   mbed

Committer:
callumhoffie
Date:
Thu Nov 21 16:33:23 2019 +0000
Revision:
0:67f1965f904d
Child:
1:fb4ff3d2b5d0
working code to check button press at every light change and act on it by making it all red for 10 seconds at the end of the sequence

Who changed what in which revision?

UserRevisionLine numberNew contents of line
callumhoffie 0:67f1965f904d 1 //Amalgamation of Project_Test_1 and Project_Test_2_switch codes to check viability of a simple 1/2 switch light interface.
callumhoffie 0:67f1965f904d 2 //Expansion of Project_Test_1 protocol to include three more pins and two more traffic light circuits.
callumhoffie 0:67f1965f904d 3
callumhoffie 0:67f1965f904d 4
callumhoffie 0:67f1965f904d 5
callumhoffie 0:67f1965f904d 6 #include "mbed.h"
callumhoffie 0:67f1965f904d 7 DigitalOut red1(p21); //Assign digital output value of red1 to mbed pin p21
callumhoffie 0:67f1965f904d 8 DigitalOut yellow1(p22); //Assign digital output value of yellow1 to mbed pin p22
callumhoffie 0:67f1965f904d 9 DigitalOut green1(p23); //Assign digital output value of green1 to mbed pin p23
callumhoffie 0:67f1965f904d 10 DigitalOut red2(p24); //Assign digital output value of red2 to mbed pin p24
callumhoffie 0:67f1965f904d 11 DigitalOut yellow2(p25); //Assign digital output value of yellow2 to mbed pin p25
callumhoffie 0:67f1965f904d 12 DigitalOut green2(p27); //Assign digital output value of green2 to mbed pin p26
callumhoffie 0:67f1965f904d 13 DigitalIn switchInput(p15);
callumhoffie 0:67f1965f904d 14
callumhoffie 0:67f1965f904d 15
callumhoffie 0:67f1965f904d 16 int main() {
callumhoffie 0:67f1965f904d 17 int x = 0;
callumhoffie 0:67f1965f904d 18 while(1) { //Repeat indefinitely
callumhoffie 0:67f1965f904d 19 // read the input state only once in the while loop
callumhoffie 0:67f1965f904d 20 if(switchInput.read() == 0) {
callumhoffie 0:67f1965f904d 21 red1 = 1; //Turn on red1
callumhoffie 0:67f1965f904d 22 red2 = 1; //Turn on red2
callumhoffie 0:67f1965f904d 23 wait(3); //Wait 3 seconds
callumhoffie 0:67f1965f904d 24 if(switchInput.read() == 1){
callumhoffie 0:67f1965f904d 25 x = 1;
callumhoffie 0:67f1965f904d 26 }
callumhoffie 0:67f1965f904d 27 yellow1 = 1; //Turn on yellow1
callumhoffie 0:67f1965f904d 28 wait(1); //Wait 1 second
callumhoffie 0:67f1965f904d 29 if(switchInput.read() == 1){
callumhoffie 0:67f1965f904d 30 x = 1;
callumhoffie 0:67f1965f904d 31 }
callumhoffie 0:67f1965f904d 32 red1 = 0; //Turn off red1
callumhoffie 0:67f1965f904d 33 yellow1 = 0; //Turn off yellow1
callumhoffie 0:67f1965f904d 34 green1 = 1; //Turn on green1
callumhoffie 0:67f1965f904d 35 wait(3); //Wait 3 seconds
callumhoffie 0:67f1965f904d 36 if(switchInput.read() == 1){
callumhoffie 0:67f1965f904d 37 x = 1;
callumhoffie 0:67f1965f904d 38 }
callumhoffie 0:67f1965f904d 39 green1 = 0; //Turn off green1
callumhoffie 0:67f1965f904d 40 yellow1 = 1; //Turn on yellow1
callumhoffie 0:67f1965f904d 41 wait(1); //Wait 1 second
callumhoffie 0:67f1965f904d 42 if(switchInput.read() == 1){
callumhoffie 0:67f1965f904d 43 x = 1;
callumhoffie 0:67f1965f904d 44 }
callumhoffie 0:67f1965f904d 45 yellow1 = 0; //Turn off yellow1
callumhoffie 0:67f1965f904d 46 red1 = 1; //Turn on red1
callumhoffie 0:67f1965f904d 47 wait(3); //Wait 3 seconds
callumhoffie 0:67f1965f904d 48 if(switchInput.read() == 1){
callumhoffie 0:67f1965f904d 49 x = 1;
callumhoffie 0:67f1965f904d 50 }
callumhoffie 0:67f1965f904d 51 yellow2 = 1; //Turn on yellow2
callumhoffie 0:67f1965f904d 52 wait(1); //Wait 1 second
callumhoffie 0:67f1965f904d 53 if(switchInput.read() == 1){
callumhoffie 0:67f1965f904d 54 x = 1;
callumhoffie 0:67f1965f904d 55 }
callumhoffie 0:67f1965f904d 56 red2 = 0; //Turn off red2
callumhoffie 0:67f1965f904d 57 yellow2=0; //Turn off yellow2
callumhoffie 0:67f1965f904d 58 green2=1; //Turn on green2
callumhoffie 0:67f1965f904d 59 wait(3); //Wait 3 seconds
callumhoffie 0:67f1965f904d 60 if(switchInput.read() == 1){
callumhoffie 0:67f1965f904d 61 x = 1;
callumhoffie 0:67f1965f904d 62 }
callumhoffie 0:67f1965f904d 63 green2 = 0; //Turn off green2
callumhoffie 0:67f1965f904d 64 yellow2=1; //Turn on yellow2
callumhoffie 0:67f1965f904d 65 wait(1); //Wait 1 second
callumhoffie 0:67f1965f904d 66 if(switchInput.read() == 1){
callumhoffie 0:67f1965f904d 67 x = 1;
callumhoffie 0:67f1965f904d 68 }
callumhoffie 0:67f1965f904d 69 yellow2=0; //Turn off yellow2
callumhoffie 0:67f1965f904d 70 if(x == 1) {
callumhoffie 0:67f1965f904d 71 red1 = 1;
callumhoffie 0:67f1965f904d 72 red2 = 1;
callumhoffie 0:67f1965f904d 73 yellow1 = 0;
callumhoffie 0:67f1965f904d 74 yellow2 = 0;
callumhoffie 0:67f1965f904d 75 green1= 0;
callumhoffie 0:67f1965f904d 76 green2 = 0;
callumhoffie 0:67f1965f904d 77 wait(10);
callumhoffie 0:67f1965f904d 78 x = 0;
callumhoffie 0:67f1965f904d 79 }
callumhoffie 0:67f1965f904d 80 }
callumhoffie 0:67f1965f904d 81 }
callumhoffie 0:67f1965f904d 82 } //End of statement