Codigo fonte
//declaración de variables
int roxo = 13;
int ambar = 12;
int verde = 11;
int peaton = 2;
int value = 0;
int peaton_verde = 8;
int peaton_roxo = 9;
// O setup só se recorre unha vez cando comeza o programa
void setup() {
// inicializamos as saídas
pinMode(roxo, OUTPUT);
pinMode(ambar, OUTPUT);
pinMode(verde, OUTPUT);
pinMode(peaton_verde, OUTPUT);
pinMode(peaton_roxo, OUTPUT);
//inicializamos a entrada
pinMode(peaton, INPUT);
}
// o loop() é recorrido continuamente mentras o arduino está aceso.
void loop()
{
digitalWrite(verde, HIGH);
digitalWrite(peaton_roxo, HIGH);
digitalWrite(peaton_verde, LOW);
entrada_activada();
espera();
digitalWrite(verde, LOW);
digitalWrite(ambar, HIGH);
entrada_activada();
espera();
digitalWrite(ambar, LOW);
digitalWrite(roxo, HIGH);
digitalWrite(peaton_verde, HIGH);
digitalWrite(peaton_roxo, LOW);
entrada_activada();
espera();
entrada_activada();
digitalWrite(roxo, LOW);
}
int entrada_activada()
{
value = digitalRead(peaton);
if (value == HIGH)
{
digitalWrite(peaton_roxo, LOW);
digitalWrite(peaton_verde, LOW);
digitalWrite(ambar, LOW);
digitalWrite(verde, LOW);
for (int i=0; i<5;)
{
i++;
ambar_inter();
delay(200);
}
digitalWrite(peaton_verde, LOW);
value = 0;
value = digitalRead(peaton);
}
}
int ambar_inter()
{
digitalWrite(peaton_verde, HIGH);
digitalWrite(ambar, HIGH);
delay(500);
digitalWrite(ambar, LOW);
delay(500);
}
int espera()
{
for (int i=0; i<100;)
{
i++;
entrada_activada();
delay(10);
}
}