Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Connect one lead of the push button to 5 volts and the other to digital pin 2 and a 10K Ohm
- pull-down resistor. Use 220 Ohm resistors to connect each of the LEDs to pins 8-12. The
- buzzer requires two 150 Ohm resistors in parallel to deliver a max of 2 volts to the 3-volt buzzer.
- */
- const int PED_BUT = 2;
- const int PED_BUZ = 3;
- const int PED_GRE = 8;
- const int PED_RED = 9;
- const int TRAF_GRE = 10;
- const int TRAF_YEL = 11;
- const int TRAF_RED = 12;
- void setup(){ // mandatory procedure--set pin modes
- pinMode(PED_BUT, INPUT);
- pinMode(PED_BUZ, OUTPUT);
- pinMode(PED_GRE, OUTPUT);
- pinMode(PED_RED, OUTPUT);
- pinMode(TRAF_GRE, OUTPUT);
- pinMode(TRAF_YEL, OUTPUT);
- pinMode(TRAF_RED, OUTPUT);
- }
- void loop(){ // mandatory procedure--main program
- digitalWrite(TRAF_GRE, HIGH); // default GRE traffic light -- default at start
- delay(6000); // delay 6 sec.
- haltTraffic();
- delay(10000); // delay 10 sec.
- changeTrafficGRE();
- for(int i=0;i<50;i++){ // test for BUT pushed
- if(digitalRead(PED_BUT)==HIGH)
- break;
- delay(400); // delay 0.4 sec.
- }
- }
- void haltTraffic(){ // halt traffic with Red, allow pedestrians with GRE with BUZ
- changeTrafficRed();
- delay(1000); // delay 1 sec.
- digitalWrite(PED_RED, LOW);
- digitalWrite(PED_GRE, HIGH);
- }
- void changeTrafficRed(){ // change traffic lights from GRE to YEL and then to red
- digitalWrite(TRAF_GRE, LOW);
- digitalWrite(TRAF_YEL, HIGH);
- delay(5000); // delay 5 sec.
- digitalWrite(TRAF_YEL, LOW);
- digitalWrite(TRAF_RED, HIGH);
- }
- void changeTrafficGRE(){ // halt pedestrian traffic with red and sound, allow traffic with GRE
- digitalWrite(PED_GRE, LOW);
- for(int i=0;i<8;i++){
- digitalWrite(PED_RED, LOW);
- digitalWrite(PED_BUZ, HIGH);
- delay(500); // delay 0.5 sec.
- digitalWrite(PED_RED, HIGH);
- digitalWrite(PED_BUZ, LOW);
- delay(500); // delay 0.5 sec.
- }
- delay(3000); // delay 3 sec.
- digitalWrite(TRAF_RED, LOW);
- digitalWrite(TRAF_GRE, HIGH);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement