Kevin Mueller / Mbed 2 deprecated Traffic_Light_Project

Dependencies:   mbed

Committer:
kmueller
Date:
Wed Dec 04 15:42:18 2019 +0000
Revision:
0:4bacc097881b
hfhf

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kmueller 0:4bacc097881b 1 /**************************************************************
kmueller 0:4bacc097881b 2 / Traffic Light Project Group n-11
kmueller 0:4bacc097881b 3 /
kmueller 0:4bacc097881b 4 / The following code describes a traffic light sequence for both safe and unsafe conditions
kmueller 0:4bacc097881b 5 /**************************************************************/
kmueller 0:4bacc097881b 6
kmueller 0:4bacc097881b 7 #include "mbed.h"
kmueller 0:4bacc097881b 8
kmueller 0:4bacc097881b 9 // E/W Road
kmueller 0:4bacc097881b 10 DigitalOut red(p21); //Outputs to a Red Light LED for EW Road
kmueller 0:4bacc097881b 11 DigitalOut green(p23); //Outputs to a Green Light LED for EW Road
kmueller 0:4bacc097881b 12 DigitalOut yellow(p22); //Outputs to a Yellow Light LED for EW Road
kmueller 0:4bacc097881b 13
kmueller 0:4bacc097881b 14 // N/S Road
kmueller 0:4bacc097881b 15 DigitalOut red2(p27); //Outputs to a Red Light LED for NS Road
kmueller 0:4bacc097881b 16 DigitalOut green2(p28); //Outputs to a Green Light LED for NS Road
kmueller 0:4bacc097881b 17 DigitalOut yellow2(p29); //Outputs to a Yellow Light LED for NS Road
kmueller 0:4bacc097881b 18
kmueller 0:4bacc097881b 19 // Buttons
kmueller 0:4bacc097881b 20 // EW Buttons
kmueller 0:4bacc097881b 21 DigitalIn button1 (p9); //Assigns an EW button as an input
kmueller 0:4bacc097881b 22 DigitalIn button2 (p10); //Assigns an EW button as an input
kmueller 0:4bacc097881b 23 // NS Buttons
kmueller 0:4bacc097881b 24 DigitalIn button3 (p15); //Assigns an NS button as an input
kmueller 0:4bacc097881b 25 DigitalIn button4 (p16); //Assigns an NS button as an input
kmueller 0:4bacc097881b 26
kmueller 0:4bacc097881b 27 float i; //float variable i
kmueller 0:4bacc097881b 28 int j; //stating variable j
kmueller 0:4bacc097881b 29 int k; //stating variable k
kmueller 0:4bacc097881b 30 int x; //stating variable x
kmueller 0:4bacc097881b 31
kmueller 0:4bacc097881b 32 int main() {
kmueller 0:4bacc097881b 33
kmueller 0:4bacc097881b 34 while(1) { //repeat loop indefinitely
kmueller 0:4bacc097881b 35 k=1; //variable k = 1
kmueller 0:4bacc097881b 36 x=0; //variable x = 0
kmueller 0:4bacc097881b 37 if(k==1){ //if k equals 1
kmueller 0:4bacc097881b 38 for(i=0; i<3; i+=0.1){ //increment i by 0.1 till 100
kmueller 0:4bacc097881b 39 if (button1.read()==0 or button2.read()==0){ //if EW buttons are pressed
kmueller 0:4bacc097881b 40 j = 1; //set j = 1
kmueller 0:4bacc097881b 41 }
kmueller 0:4bacc097881b 42 else { //otherwise
kmueller 0:4bacc097881b 43 red = green2 = 1; //EW light is red and therefore NS road is green
kmueller 0:4bacc097881b 44 yellow = green = yellow2 = red2 = 0; //EW yellow & green lights are off therefore NS yellow and red also are off
kmueller 0:4bacc097881b 45 }
kmueller 0:4bacc097881b 46 wait(0.1); //wait 0.1 seconds
kmueller 0:4bacc097881b 47 }
kmueller 0:4bacc097881b 48 for(i=0; i<30; i+=1) { //increment i by 1 until 3
kmueller 0:4bacc097881b 49 if (button1.read()==0 or button2.read()==0){ //if EW buttons are pressed
kmueller 0:4bacc097881b 50 j = 1; //set j = 1
kmueller 0:4bacc097881b 51 }
kmueller 0:4bacc097881b 52 else{ //otherwise
kmueller 0:4bacc097881b 53 yellow = red2 = green2= green = 0; //EW yellow & green lights are off therefore NS green and red also are off
kmueller 0:4bacc097881b 54 yellow2= red = 1; //NS yellow and EW red are on
kmueller 0:4bacc097881b 55 wait(0.1); //wait 0.5secs
kmueller 0:4bacc097881b 56 }
kmueller 0:4bacc097881b 57 yellow = red2 = green2= green= yellow2 = 0;//EW yellow & green lights are off therefore NS green and red and yellow also are off
kmueller 0:4bacc097881b 58 red = 1; //EW red is on
kmueller 0:4bacc097881b 59 wait(0.1); //wait 0.5secs
kmueller 0:4bacc097881b 60 }
kmueller 0:4bacc097881b 61 }
kmueller 0:4bacc097881b 62
kmueller 0:4bacc097881b 63 for(i=0; i<3; i+=0.1){ //increment i by 0.1 till 30
kmueller 0:4bacc097881b 64 if (button1.read()==0 or button2.read()==0){ //if EW buttons are pressed
kmueller 0:4bacc097881b 65 j = 1; //set j = 1
kmueller 0:4bacc097881b 66 }
kmueller 0:4bacc097881b 67
kmueller 0:4bacc097881b 68 else{ //otherwise
kmueller 0:4bacc097881b 69 red = red2 = 1; //EW read and NS turned on
kmueller 0:4bacc097881b 70 yellow = yellow2 = green = green2 = 0; //EW and NS green and yellow turned off
kmueller 0:4bacc097881b 71 }
kmueller 0:4bacc097881b 72 wait(0.1); //wait 0.1 secs
kmueller 0:4bacc097881b 73 }
kmueller 0:4bacc097881b 74
kmueller 0:4bacc097881b 75 for(i=0; i<30; i+=1){ //increment i by 1 till 3
kmueller 0:4bacc097881b 76
kmueller 0:4bacc097881b 77 if (button1.read()==0 or button2.read()==0){ //if EW buttons are pressed
kmueller 0:4bacc097881b 78 j = 1; //set j equal 1
kmueller 0:4bacc097881b 79 }
kmueller 0:4bacc097881b 80
kmueller 0:4bacc097881b 81 else{ //otherwise
kmueller 0:4bacc097881b 82 red = yellow = red2 = 1; //EW red & yellow and NS red turn on
kmueller 0:4bacc097881b 83 green = green2 = yellow2 = 0; //EW green & NS green and yellow turn off
kmueller 0:4bacc097881b 84 wait(0.1); //wait 0.5secs
kmueller 0:4bacc097881b 85 }
kmueller 0:4bacc097881b 86 red = red2 = 1; //EW red & NS red turn on
kmueller 0:4bacc097881b 87 yellow = yellow2 = green = green2 = 0; //EW yellow & green and NS yellow and green turn off
kmueller 0:4bacc097881b 88 wait(0.1); //wait 0.5secs
kmueller 0:4bacc097881b 89 }
kmueller 0:4bacc097881b 90
kmueller 0:4bacc097881b 91 k=0; //set variable k = 0
kmueller 0:4bacc097881b 92 x=1; //set varialbe x = 1
kmueller 0:4bacc097881b 93
kmueller 0:4bacc097881b 94
kmueller 0:4bacc097881b 95 if(x==1){ //if x = 1
kmueller 0:4bacc097881b 96 // End of Sequence one
kmueller 0:4bacc097881b 97
kmueller 0:4bacc097881b 98 for(i=0; i<10; i+=0.1){ //increment i by 0.1 till 100
kmueller 0:4bacc097881b 99 if (button1.read()==0 or button2.read()==0){ //if EW buttons are pressed
kmueller 0:4bacc097881b 100 j = 1; //set j equal to 1
kmueller 0:4bacc097881b 101 }
kmueller 0:4bacc097881b 102
kmueller 0:4bacc097881b 103 else{ //otherwise
kmueller 0:4bacc097881b 104 green = red2 = 1; //EW green and NS red turn on
kmueller 0:4bacc097881b 105 red = yellow = yellow2 = green2 = 0; //EW red & yellow and NS yellow and green turn off
kmueller 0:4bacc097881b 106 }
kmueller 0:4bacc097881b 107 wait(0.1); //wait 0.1secs
kmueller 0:4bacc097881b 108 }
kmueller 0:4bacc097881b 109 for(i=0; i<30; i+=1){ //increment i by 1 till 3
kmueller 0:4bacc097881b 110
kmueller 0:4bacc097881b 111 if (button1.read()==0 or button2.read()==0){ //if EW buttons are pressed
kmueller 0:4bacc097881b 112 j = 1; //set j equal to 1
kmueller 0:4bacc097881b 113 }
kmueller 0:4bacc097881b 114
kmueller 0:4bacc097881b 115 else{ //otherwise
kmueller 0:4bacc097881b 116 yellow = red2 = 1; //EW yellow and NS red turn on
kmueller 0:4bacc097881b 117 red = yellow2 = green = green2 = 0; //EW red and green & NS yellow and green turn off
kmueller 0:4bacc097881b 118 }
kmueller 0:4bacc097881b 119
kmueller 0:4bacc097881b 120 }
kmueller 0:4bacc097881b 121 yellow = 1;
kmueller 0:4bacc097881b 122 wait(3);
kmueller 0:4bacc097881b 123 yellow = 0;
kmueller 0:4bacc097881b 124
kmueller 0:4bacc097881b 125 for(i=0; i<3; i+=0.1){ //increment i by 0.1 till 30
kmueller 0:4bacc097881b 126
kmueller 0:4bacc097881b 127 if (button1.read()==0 or button2.read()==0){ //if EW buttons are pressed
kmueller 0:4bacc097881b 128 j = 1; //set j equal to 1
kmueller 0:4bacc097881b 129 }
kmueller 0:4bacc097881b 130
kmueller 0:4bacc097881b 131 else{ //otherwise
kmueller 0:4bacc097881b 132 red = red2 = 1; //EW and NS red turn on
kmueller 0:4bacc097881b 133
kmueller 0:4bacc097881b 134 yellow = yellow2 = green = green2 = 0; //EW yellow & green & NS yellow and green turn off
kmueller 0:4bacc097881b 135 }
kmueller 0:4bacc097881b 136 wait(0.1); //wait 0.1secs
kmueller 0:4bacc097881b 137 }
kmueller 0:4bacc097881b 138
kmueller 0:4bacc097881b 139 for(i=0; i<3; i+=0.1){ //increment i by 0.1 till 30
kmueller 0:4bacc097881b 140
kmueller 0:4bacc097881b 141 if (button1.read()==0 or button2.read()==0){ //if EW buttons are pressed
kmueller 0:4bacc097881b 142 j = 1; //set j equal to 1
kmueller 0:4bacc097881b 143 }
kmueller 0:4bacc097881b 144
kmueller 0:4bacc097881b 145 else{ //otherwise
kmueller 0:4bacc097881b 146 red = red2 = yellow2 = 1; //EW red and NS red and yellow turn on
kmueller 0:4bacc097881b 147 yellow = green = green2 = 0; //EW yellow and green and NS green turn off
kmueller 0:4bacc097881b 148 }
kmueller 0:4bacc097881b 149 wait(0.1); // wait 0.1secs
kmueller 0:4bacc097881b 150 } // Sequence 2 done
kmueller 0:4bacc097881b 151 }
kmueller 0:4bacc097881b 152 x=0; //set x to 0
kmueller 0:4bacc097881b 153 k=1; //set k to 1
kmueller 0:4bacc097881b 154
kmueller 0:4bacc097881b 155 if(j==1){ //if j equals to 1
kmueller 0:4bacc097881b 156
kmueller 0:4bacc097881b 157 red = 1; //EW red turn on
kmueller 0:4bacc097881b 158 }
kmueller 0:4bacc097881b 159 }
kmueller 0:4bacc097881b 160 }