M T BULUSHI / Mbed 2 deprecated traffic_bish

Dependencies:   mbed

Committer:
iammuhammed
Date:
Tue Dec 28 16:41:11 2021 +0000
Revision:
4:0da8deb04107
Parent:
3:21d083a76ac4
sdfdf

Who changed what in which revision?

UserRevisionLine numberNew contents of line
iammuhammed 0:e63002f11fd1 1 #include "mbed.h"
iammuhammed 4:0da8deb04107 2
iammuhammed 1:673b7c90b411 3
iammuhammed 1:673b7c90b411 4
iammuhammed 1:673b7c90b411 5 DigitalOut PIN_RED(D8);
iammuhammed 1:673b7c90b411 6 DigitalOut PIN_AMBER(D9);
iammuhammed 1:673b7c90b411 7 DigitalOut PIN_GREEN(D10);
iammuhammed 1:673b7c90b411 8 DigitalIn p1(D0); // representing sensor for people
iammuhammed 1:673b7c90b411 9 DigitalIn p2(D1);
iammuhammed 1:673b7c90b411 10 DigitalIn p3(D2);
iammuhammed 1:673b7c90b411 11 DigitalIn p4(D3);
iammuhammed 1:673b7c90b411 12 DigitalIn c1(D4); // representing sensor for cars
iammuhammed 1:673b7c90b411 13 DigitalIn c2(D5);
iammuhammed 1:673b7c90b411 14 DigitalIn c3(D6);
iammuhammed 1:673b7c90b411 15 DigitalIn c4(D7);
iammuhammed 1:673b7c90b411 16
iammuhammed 1:673b7c90b411 17 // lights onboard for pedestrian
iammuhammed 1:673b7c90b411 18
iammuhammed 1:673b7c90b411 19 DigitalOut ledR(LED_RED);
iammuhammed 1:673b7c90b411 20 DigitalOut ledG(LED_GREEN);
iammuhammed 1:673b7c90b411 21
iammuhammed 1:673b7c90b411 22 // initiliasing variables
iammuhammed 1:673b7c90b411 23
iammuhammed 1:673b7c90b411 24 int count_p ;
iammuhammed 1:673b7c90b411 25 int count_c;
iammuhammed 1:673b7c90b411 26 Timer t;
iammuhammed 1:673b7c90b411 27 bool pedestrian = false;
iammuhammed 1:673b7c90b411 28
iammuhammed 1:673b7c90b411 29
iammuhammed 1:673b7c90b411 30 void Count(){
iammuhammed 1:673b7c90b411 31 count_p = 0;
iammuhammed 1:673b7c90b411 32 count_c = 0;
iammuhammed 1:673b7c90b411 33
iammuhammed 1:673b7c90b411 34 if(p1 == 1){
iammuhammed 1:673b7c90b411 35 count_p = count_p + 1;
iammuhammed 1:673b7c90b411 36
iammuhammed 1:673b7c90b411 37 if(t.read() == 0){
iammuhammed 1:673b7c90b411 38 t.start();
iammuhammed 1:673b7c90b411 39 }
iammuhammed 1:673b7c90b411 40
iammuhammed 1:673b7c90b411 41
iammuhammed 1:673b7c90b411 42
iammuhammed 1:673b7c90b411 43
iammuhammed 1:673b7c90b411 44 }
iammuhammed 1:673b7c90b411 45 if(p2 == 1){
iammuhammed 1:673b7c90b411 46 count_p = count_p + 1;
iammuhammed 1:673b7c90b411 47
iammuhammed 1:673b7c90b411 48 if(t.read() == 0){
iammuhammed 1:673b7c90b411 49 t.start();
iammuhammed 1:673b7c90b411 50 }
iammuhammed 1:673b7c90b411 51
iammuhammed 1:673b7c90b411 52 }
iammuhammed 1:673b7c90b411 53
iammuhammed 1:673b7c90b411 54 if(p3 == 1){
iammuhammed 1:673b7c90b411 55 count_p = count_p + 1;
iammuhammed 1:673b7c90b411 56
iammuhammed 1:673b7c90b411 57 if(t.read() == 0){
iammuhammed 1:673b7c90b411 58 t.start();
iammuhammed 1:673b7c90b411 59 }
iammuhammed 1:673b7c90b411 60
iammuhammed 1:673b7c90b411 61 }
iammuhammed 1:673b7c90b411 62 if(p4 == 1){
iammuhammed 1:673b7c90b411 63 count_p = count_p + 1;
iammuhammed 1:673b7c90b411 64
iammuhammed 1:673b7c90b411 65 if(t.read() == 0){
iammuhammed 1:673b7c90b411 66 t.start();
iammuhammed 1:673b7c90b411 67 }
iammuhammed 1:673b7c90b411 68
iammuhammed 1:673b7c90b411 69 }
iammuhammed 1:673b7c90b411 70
iammuhammed 1:673b7c90b411 71 if(c1 == 1){
iammuhammed 1:673b7c90b411 72 count_c = count_c + 1;
iammuhammed 1:673b7c90b411 73 }
iammuhammed 1:673b7c90b411 74 if(c2 == 1){
iammuhammed 1:673b7c90b411 75 count_c = count_c + 1;
iammuhammed 1:673b7c90b411 76 }
iammuhammed 1:673b7c90b411 77
iammuhammed 1:673b7c90b411 78 if(c3 == 1){
iammuhammed 1:673b7c90b411 79 count_c = count_c + 1;
iammuhammed 1:673b7c90b411 80 }
iammuhammed 1:673b7c90b411 81 if(c4 == 1){
iammuhammed 1:673b7c90b411 82 count_c = count_c + 1;
iammuhammed 1:673b7c90b411 83 }
iammuhammed 1:673b7c90b411 84
iammuhammed 1:673b7c90b411 85
iammuhammed 1:673b7c90b411 86
iammuhammed 1:673b7c90b411 87
iammuhammed 1:673b7c90b411 88 }
iammuhammed 1:673b7c90b411 89
iammuhammed 1:673b7c90b411 90 void Red(){
iammuhammed 1:673b7c90b411 91
iammuhammed 1:673b7c90b411 92
iammuhammed 1:673b7c90b411 93 PIN_RED = 1;
iammuhammed 1:673b7c90b411 94 PIN_AMBER = 0;
iammuhammed 1:673b7c90b411 95 PIN_GREEN = 0;
iammuhammed 1:673b7c90b411 96
iammuhammed 1:673b7c90b411 97 };
iammuhammed 1:673b7c90b411 98
iammuhammed 1:673b7c90b411 99 void Red_Amber(){
iammuhammed 1:673b7c90b411 100
iammuhammed 1:673b7c90b411 101 PIN_RED = 1;
iammuhammed 1:673b7c90b411 102 PIN_AMBER = 1;
iammuhammed 1:673b7c90b411 103 PIN_GREEN = 0;
iammuhammed 1:673b7c90b411 104
iammuhammed 1:673b7c90b411 105
iammuhammed 1:673b7c90b411 106 };
iammuhammed 1:673b7c90b411 107
iammuhammed 1:673b7c90b411 108 void Amber(){
iammuhammed 1:673b7c90b411 109
iammuhammed 1:673b7c90b411 110 PIN_RED = 0;
iammuhammed 1:673b7c90b411 111 PIN_AMBER = 1;
iammuhammed 1:673b7c90b411 112 PIN_GREEN = 0;
iammuhammed 1:673b7c90b411 113
iammuhammed 1:673b7c90b411 114 }
iammuhammed 1:673b7c90b411 115
iammuhammed 1:673b7c90b411 116
iammuhammed 1:673b7c90b411 117 void Green(){
iammuhammed 1:673b7c90b411 118 PIN_RED = 0;
iammuhammed 1:673b7c90b411 119 PIN_AMBER = 0;
iammuhammed 1:673b7c90b411 120 PIN_GREEN = 1;
iammuhammed 1:673b7c90b411 121 }
iammuhammed 1:673b7c90b411 122
iammuhammed 1:673b7c90b411 123 void Stop(){
iammuhammed 1:673b7c90b411 124 // when our changetraffic light function finishes at is green..
iammuhammed 1:673b7c90b411 125 Amber();
iammuhammed 1:673b7c90b411 126 wait(3);
iammuhammed 1:673b7c90b411 127 // turn off amber, then turn red on for 5 seconds
iammuhammed 1:673b7c90b411 128 Red();
iammuhammed 1:673b7c90b411 129
iammuhammed 1:673b7c90b411 130 }
iammuhammed 1:673b7c90b411 131 void Start(){
iammuhammed 1:673b7c90b411 132
iammuhammed 1:673b7c90b411 133
iammuhammed 1:673b7c90b411 134 }
iammuhammed 0:e63002f11fd1 135
iammuhammed 1:673b7c90b411 136
iammuhammed 1:673b7c90b411 137
iammuhammed 1:673b7c90b411 138
iammuhammed 1:673b7c90b411 139
iammuhammed 1:673b7c90b411 140 void changeLights(){
iammuhammed 1:673b7c90b411 141
iammuhammed 1:673b7c90b411 142 if(pedestrian == true){
iammuhammed 1:673b7c90b411 143 // red and amber on for 2 seconds ( red is already on though)
iammuhammed 1:673b7c90b411 144 Red_Amber();
iammuhammed 1:673b7c90b411 145 wait(2);
iammuhammed 1:673b7c90b411 146
iammuhammed 1:673b7c90b411 147 // turn off red and amber, then turn on green
iammuhammed 1:673b7c90b411 148 Green();
iammuhammed 1:673b7c90b411 149 wait(3);
iammuhammed 1:673b7c90b411 150 pedestrian = false;
iammuhammed 1:673b7c90b411 151 }
iammuhammed 1:673b7c90b411 152 else {
iammuhammed 1:673b7c90b411 153 // green off, Amber on for 3 seconds
iammuhammed 1:673b7c90b411 154 Amber();
iammuhammed 1:673b7c90b411 155 wait(3);
iammuhammed 1:673b7c90b411 156
iammuhammed 1:673b7c90b411 157 // turn off amber, then turn red on for 5 seconds
iammuhammed 1:673b7c90b411 158 Red();
iammuhammed 1:673b7c90b411 159 wait(5);
iammuhammed 1:673b7c90b411 160
iammuhammed 1:673b7c90b411 161 // red and amber on for 2 seconds ( red is already on though)
iammuhammed 1:673b7c90b411 162 Red_Amber();
iammuhammed 1:673b7c90b411 163 wait(2);
iammuhammed 1:673b7c90b411 164
iammuhammed 1:673b7c90b411 165 // turn off red and amber, then turn on green
iammuhammed 1:673b7c90b411 166 Green();
iammuhammed 1:673b7c90b411 167 wait(3);
iammuhammed 1:673b7c90b411 168
iammuhammed 1:673b7c90b411 169 }
iammuhammed 1:673b7c90b411 170
iammuhammed 1:673b7c90b411 171
iammuhammed 1:673b7c90b411 172
iammuhammed 1:673b7c90b411 173
iammuhammed 1:673b7c90b411 174
iammuhammed 1:673b7c90b411 175 }
iammuhammed 1:673b7c90b411 176
iammuhammed 1:673b7c90b411 177 void P_Green(){
iammuhammed 1:673b7c90b411 178
iammuhammed 1:673b7c90b411 179 ledR = 1;
iammuhammed 1:673b7c90b411 180 ledG = 0;
iammuhammed 1:673b7c90b411 181
iammuhammed 1:673b7c90b411 182 }
iammuhammed 1:673b7c90b411 183
iammuhammed 1:673b7c90b411 184 void P_Red(){
iammuhammed 1:673b7c90b411 185
iammuhammed 1:673b7c90b411 186 ledR = 0;
iammuhammed 1:673b7c90b411 187 ledG = 1;
iammuhammed 1:673b7c90b411 188
iammuhammed 1:673b7c90b411 189 }
iammuhammed 2:470641683dfb 190 //void Fault(){
iammuhammed 2:470641683dfb 191 //
iammuhammed 2:470641683dfb 192 // Amber();
iammuhammed 2:470641683dfb 193 // P_Red();
iammuhammed 2:470641683dfb 194 //
iammuhammed 2:470641683dfb 195 // while(true){
iammuhammed 2:470641683dfb 196 //
iammuhammed 2:470641683dfb 197 //
iammuhammed 2:470641683dfb 198 // wait(0.5);
iammuhammed 2:470641683dfb 199 // PIN_AMBER = 0;
iammuhammed 2:470641683dfb 200 // ledR = 1;
iammuhammed 2:470641683dfb 201 // wait(0.5);
iammuhammed 2:470641683dfb 202 // PIN_AMBER = 1;
iammuhammed 2:470641683dfb 203 // ledR = 0;
iammuhammed 2:470641683dfb 204 //
iammuhammed 2:470641683dfb 205 // }
iammuhammed 2:470641683dfb 206 //
iammuhammed 2:470641683dfb 207 //}
iammuhammed 1:673b7c90b411 208
iammuhammed 1:673b7c90b411 209
iammuhammed 1:673b7c90b411 210
iammuhammed 1:673b7c90b411 211 int main()
iammuhammed 1:673b7c90b411 212 {
iammuhammed 1:673b7c90b411 213
iammuhammed 2:470641683dfb 214
iammuhammed 1:673b7c90b411 215
iammuhammed 1:673b7c90b411 216 ledR = 0;
iammuhammed 1:673b7c90b411 217 ledG = 1;
iammuhammed 1:673b7c90b411 218 Green();
iammuhammed 1:673b7c90b411 219 wait(3);
iammuhammed 1:673b7c90b411 220
iammuhammed 1:673b7c90b411 221
iammuhammed 1:673b7c90b411 222
iammuhammed 1:673b7c90b411 223
iammuhammed 1:673b7c90b411 224
iammuhammed 1:673b7c90b411 225 while (true) {
iammuhammed 1:673b7c90b411 226
iammuhammed 1:673b7c90b411 227 pedestrian = false;
iammuhammed 1:673b7c90b411 228
iammuhammed 1:673b7c90b411 229 // checks for count every 5 seconds
iammuhammed 1:673b7c90b411 230
iammuhammed 1:673b7c90b411 231 wait(5);
iammuhammed 1:673b7c90b411 232 Count();
iammuhammed 1:673b7c90b411 233
iammuhammed 1:673b7c90b411 234 if (count_p > count_c){
iammuhammed 1:673b7c90b411 235 Stop();
iammuhammed 1:673b7c90b411 236 P_Green();
iammuhammed 1:673b7c90b411 237 wait(20);
iammuhammed 1:673b7c90b411 238 P_Red();
iammuhammed 1:673b7c90b411 239 t.reset();
iammuhammed 1:673b7c90b411 240 //check variable for our changelight function
iammuhammed 1:673b7c90b411 241 pedestrian = true;
iammuhammed 1:673b7c90b411 242
iammuhammed 1:673b7c90b411 243 }
iammuhammed 1:673b7c90b411 244 else if (count_p > 0 & t.read() > 60){
iammuhammed 1:673b7c90b411 245 Stop();
iammuhammed 1:673b7c90b411 246 P_Green();
iammuhammed 1:673b7c90b411 247 wait(20);
iammuhammed 1:673b7c90b411 248 P_Red();
iammuhammed 1:673b7c90b411 249 t.reset();
iammuhammed 1:673b7c90b411 250 //check variable for our changelight function
iammuhammed 1:673b7c90b411 251 pedestrian = true;
iammuhammed 1:673b7c90b411 252
iammuhammed 1:673b7c90b411 253 }
iammuhammed 1:673b7c90b411 254
iammuhammed 1:673b7c90b411 255 changeLights();
iammuhammed 1:673b7c90b411 256
iammuhammed 1:673b7c90b411 257
iammuhammed 1:673b7c90b411 258
iammuhammed 1:673b7c90b411 259
iammuhammed 1:673b7c90b411 260 }
iammuhammed 1:673b7c90b411 261
iammuhammed 1:673b7c90b411 262
iammuhammed 1:673b7c90b411 263
iammuhammed 2:470641683dfb 264
iammuhammed 1:673b7c90b411 265 }
iammuhammed 1:673b7c90b411 266
iammuhammed 1:673b7c90b411 267
iammuhammed 2:470641683dfb 268