int pinVermelho = 10; // declaração de variáveis
int pinAmarelo = 9;
int pinVerde = 8;
int pinBotao = 7;
int pinPedestreVermelho = 3;
int pinPedestreVerde = 2;
int faseSemaforo;
int estadoBotao;
int estadoAnteriorBotao;
void setup() {
pinMode(pinVerde, OUTPUT);
pinMode(pinAmarelo, OUTPUT);
pinMode(pinVermelho, OUTPUT);
pinMode(pinBotao, INPUT);
pinMode(pinPedestreVerde, OUTPUT);
pinMode(pinPedestreVermelho, OUTPUT);
faseSemaforo = 1; // estado inicial da variavel
estadoAnteriorBotao = digitalRead(pinBotao);
}
void loop() {
estadoBotao = digitalRead(pinBotao);
if ((estadoBotao == HIGH) && (estadoAnteriorBotao == LOW) ){
if (faseSemaforo < 3){
faseSemaforo = faseSemaforo + 1;
} else{
faseSemaforo = 1;
}
}
estadoAnteriorBotao = estadoBotao;
if(faseSemaforo == 1){ // semaforo aberto - verde
digitalWrite(pinVerde, HIGH);
digitalWrite(pinAmarelo, LOW);
digitalWrite(pinVermelho, LOW);
digitalWrite(pinPedestreVerde, LOW);
digitalWrite(pinPedestreVermelho, HIGH);
}
if(faseSemaforo == 2){ //semaforo amarelo
digitalWrite(pinVerde, LOW);
digitalWrite(pinAmarelo, HIGH);
digitalWrite(pinVermelho, LOW);
digitalWrite(pinPedestreVerde, LOW);
digitalWrite(pinPedestreVermelho, HIGH);
}
if(faseSemaforo == 3){ // semaforo fechado - vermelho
digitalWrite(pinVerde, LOW);
digitalWrite(pinAmarelo, LOW);
digitalWrite(pinVermelho, HIGH);
digitalWrite(pinPedestreVerde, HIGH);
digitalWrite(pinPedestreVermelho, LOW);
}
delay(100);
}
//continuar o video de 29:30