Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //i/o
- int gmain=3; //Green light main
- int ymain=4; //Yellow light main
- int rmain=5; //Red light main
- int gside=7; //green light side
- int yside=8; //yellow light side
- int rside=9; //red light side
- int lwalk=11; //good to walk like
- int bwalk=12; //the button
- //Variables
- int walk = 0; //used to store info on if button has been pressed
- int val = 0;
- int walkmode = 0; //used for different modes of walk light
- void setup() {
- // put your setup code here, to run once:
- pinMode(gmain,OUTPUT);
- pinMode(ymain,OUTPUT);
- pinMode(rmain,OUTPUT);
- pinMode(gside,OUTPUT);
- pinMode(yside,OUTPUT);
- pinMode(rside,OUTPUT);
- pinMode(lwalk,OUTPUT);
- pinMode(bwalk,INPUT);
- }
- void loop() {
- main:
- ButtonCheck();
- digitalWrite(gmain,LOW);//all red lights
- digitalWrite(ymain,LOW);
- digitalWrite(rmain,HIGH);
- digitalWrite(gside,LOW);
- digitalWrite(yside,LOW);
- digitalWrite(rside,HIGH);
- //int walkmode=0;
- delay (500);
- ButtonCheck();
- digitalWrite(rmain,LOW);//red to green
- digitalWrite(gmain,HIGH);
- delay(3000);
- ButtonCheck();
- digitalWrite(gmain,LOW);//green to yellow
- digitalWrite(ymain,HIGH);
- delay(1000);
- if (walk == 1){
- goto cross;
- }
- else if (walk == 0){
- goto nocross;
- }
- else{digitalWrite(gmain,HIGH);//all on indicating error
- digitalWrite(ymain,HIGH);
- digitalWrite(rmain,HIGH);
- digitalWrite(gside,HIGH);
- digitalWrite(yside,HIGH);
- digitalWrite(rside,HIGH);
- }
- nocross:
- ButtonCheck();
- digitalWrite(gmain,LOW);//all red lights
- digitalWrite(ymain,LOW);
- digitalWrite(rmain,HIGH);
- digitalWrite(gside,LOW);
- digitalWrite(yside,LOW);
- digitalWrite(rside,HIGH);
- walkmode=0;
- delay (500);
- ButtonCheck();
- digitalWrite(rside,LOW);//red to green
- digitalWrite(gside,HIGH);
- delay(1500);
- ButtonCheck();
- digitalWrite(gside,LOW);//green to yellow
- digitalWrite(yside,HIGH);
- delay(700);
- goto main;
- cross:
- digitalWrite(gmain,LOW);//all red lights
- digitalWrite(ymain,LOW);
- digitalWrite(rmain,HIGH);
- digitalWrite(gside,LOW);
- digitalWrite(yside,LOW);
- digitalWrite(rside,HIGH);
- //walkmode=0;
- delay (500);
- digitalWrite(rside,LOW);//red to green
- digitalWrite(gside,HIGH);
- int (walkmode=1);
- //walkmode=0;
- digitalWrite(lwalk,HIGH);
- delay(3000);
- digitalWrite(gside,LOW);//green to yellow
- digitalWrite(yside,HIGH);
- //int (walkmode=2);
- delay(1000);
- digitalWrite(lwalk,LOW);
- walk = 0;
- val = LOW;
- delay (10);
- goto main;
- }
- void ButtonCheck()
- {
- val = digitalRead (bwalk);
- while (val == HIGH){
- walk = 1;
- break;
- }
- }
- /*
- void walksignal(){
- //different walk modes
- if (walkmode=0){
- digitalWrite(lwalk,LOW);
- }
- else if (walkmode=1){
- digitalWrite(lwalk,HIGH);
- }
- else if (walkmode=2){
- digitalWrite(lwalk,HIGH);
- delay (100);
- digitalWrite(lwalk,LOW);
- delay (100);
- }
- else{
- digitalWrite(gmain,HIGH);//all red lights
- digitalWrite(ymain,HIGH);
- digitalWrite(rmain,HIGH);
- digitalWrite(gside,HIGH);
- digitalWrite(yside,HIGH);
- digitalWrite(rside,HIGH);
- }
- }
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement