byte state = 0;
unsigned long m = 0;
int tlacitko =0;
void setup() {
pinMode(13, OUTPUT);
pinMode(12, OUTPUT);
pinMode(11, OUTPUT);
pinMode(9, OUTPUT);
pinMode(8, OUTPUT);
pinMode(7, OUTPUT);
pinMode(2, INPUT_PULLUP);
Serial.begin(9600);
attachInterrupt(0, zmena, FALLING);//prerušenie
digitalWrite(7,LOW);
}
void semafor(int red, int orange, int green) {
digitalWrite(13, red);
digitalWrite(12, orange);
digitalWrite(11, green);
}
void chodec(int red1, int green1) {
digitalWrite(9, red1);
digitalWrite(8, green1);
}
void zmena(){
tlacitko=1;
Serial.println("prerusenie");
digitalWrite(7,HIGH);
}
void loop() {
if (millis() - m >= 1000) {
switch (state) {
case 0:
Serial.println("RED");
semafor(1, 0, 0);
chodec(0, 1);
break;
case 1:
Serial.println("RED+ORANGE");
semafor(1, 1, 0);
chodec(1, 0);
break;
case 2:
Serial.println("GREEN");
semafor(0, 0, 1);
chodec(1, 0);
break;
case 3:
Serial.println("ORANGE");
semafor(0, 1, 0);
chodec(1, 0);
break;
}
state = state + 1;
if (state > 3) state = 0;
m = millis();
}
if (tlacitko==1)
{
tlacitko=0;
Serial.println("RED-prerusenie");
semafor(1, 0, 0);
delay(3000) ;
chodec(0, 1);
delay(3000) ;
state = 0;
digitalWrite(7,LOW);
}
}