Este código controla um semáforo com três LEDs para veículos e dois LEDs para pedestres. Quando o botão táctil é pressionado, o LED verde para veículos é desligado e o LED amarelo para veículos é ligado. O LED vermelho para veículos é desligado e o LED verde para pedestres é desligado. O LED vermelho para pedestres é ligado e permanece assim durante 3 segundos. Em seguida, os LEDs são redefinidos para a condição inicial e o LED verde para pedestres pisca por 5 vezes. Por fim, o LED verde para veículos é ligado e o LED vermelho para pedestres é ligado e permanece assim durante 5 segundos. Se o botão táctil não for pressionado, o LED verde para veículos é ligado e o LED vermelho para pedestres é ligado.
//Inicio do código
//Declaração das variáveis
int ledVermelhoV = 2; // LED vermelho para veículos
int ledAmareloV = 3; // LED amarelo para veículos
int ledVerdeV = 4; // LED verde para veículos
int ledVermelhoP = 8; // LED vermelho para pedestres
int ledVerdeP = 9; // LED verde para pedestres
int botaoTactil = 6; // Botão táctil para pedestres
void setup() {
pinMode(ledVermelhoV, OUTPUT); // Configura o LED vermelho para veículos como saída
pinMode(ledAmareloV, OUTPUT); // Configura o LED amarelo para veículos como saída
pinMode(ledVerdeV, OUTPUT); // Configura o LED verde para veículos como saída
pinMode(ledVermelhoP, OUTPUT); // Configura o LED vermelho para pedestres como saída
pinMode(ledVerdeP, OUTPUT); // Configura o LED verde para pedestres como saída
pinMode(botaoTactil, INPUT); // Configura o botão táctil para pedestres como entrada
digitalWrite(ledVerdeV, HIGH); // Liga o LED verde para veículos
digitalWrite(ledAmareloV, LOW); // Desliga o LED amarelo para veículos
digitalWrite(ledVermelhoV, LOW); // Desliga o LED vermelho para veículos
digitalWrite(ledVermelhoP, HIGH); // Liga o LED vermelho para pedestres
digitalWrite(ledVerdeP, LOW); // Desliga o LED verde para pedestres
}
void loop() {
if (digitalRead(botaoTactil) == 1) { // Verifica se o botão táctil foi pressionado
digitalWrite(ledVerdeV, LOW); // Desliga o LED verde para veículos
digitalWrite(ledAmareloV, HIGH); // Liga o LED amarelo para veículos
digitalWrite(ledVermelhoV, LOW); // Desliga o LED vermelho para veículos
digitalWrite(ledVerdeP, LOW); // Desliga o LED verde para pedestres
digitalWrite(ledVermelhoP, HIGH); // Liga o LED vermelho para pedestres
delay(3000); // Espera 3 segundos
// Condição inicial dos LEDs
digitalWrite(ledVerdeV, LOW); // Desliga o LED verde para veículos
digitalWrite(ledAmareloV, LOW); // Desliga o LED amarelo para veículos
digitalWrite(ledVermelhoV, HIGH); // Liga o LED vermelho para veículos
digitalWrite(ledVerdeP, HIGH); // Liga o LED verde para pedestres
digitalWrite(ledVermelhoP, LOW); // Desliga o LED vermelho para pedestres
delay(10000); // Espera 10 segundos
// Alerta para o pedestre - Pisca 5x
// 1x
digitalWrite(ledVerdeP, HIGH); // Liga o LED verde para pedestres
delay(500); // Espera 0,5 segundos
digitalWrite(ledVerdeP, LOW); // Desliga o LED verde para pedestres
delay(500); // Espera 0,5 segundos
// 2x
digitalWrite(ledVerdeP, HIGH); // Liga o LED verde para pedestres
delay(500); // Espera 0,5 segundos
digitalWrite(ledVerdeP, LOW); // Desliga o LED verde para pedestres
delay(500); // Espera 0,5 segundos
// 3x
digitalWrite(ledVerdeP, HIGH); // Liga o LED verde para pedestres
delay(500); // Espera 0,5 segundos
digitalWrite(ledVerdeP, LOW); // Desliga o LED verde para pedestres
delay(500); // Espera 0,5 segundos
// 4x
digitalWrite(ledVerdeP, HIGH); // Liga o LED verde para pedestres
delay(500); // Espera 0,5 segundos
digitalWrite(ledVerdeP, LOW); // Desliga o LED verde para pedestres
delay(500); // Espera 0,5 segundos
// 5x
digitalWrite(ledVerdeP, HIGH); // Liga o LED verde para pedestres
delay(500); // Espera 0,5 segundos
digitalWrite(ledVerdeP, LOW); // Desliga o LED verde para pedestres
delay(500); // Espera 0,5 segundos
// Fecha semáforo para pedestre e abre para veículos
digitalWrite(ledVerdeV, HIGH); // Liga o LED verde para veículos
digitalWrite(ledAmareloV, LOW); // Desliga o LED amarelo para veículos
digitalWrite(ledVermelhoV, LOW); // Desliga o LED vermelho para veículos
digitalWrite(ledVermelhoP, HIGH); // Liga o LED vermelho para pedestres
digitalWrite(ledVerdeP, LOW); // Desliga o LED verde para pedestres
delay(5000); // Espera 5 segundos
}
if (digitalRead(botaoTactil) == 0) { // Se o botão táctil não foi pressionado
digitalWrite(ledVerdeV, HIGH); // Liga o LED verde para veículos
digitalWrite(ledAmareloV, LOW); // Desliga o LED amarelo para veículos
digitalWrite(ledVermelhoV, LOW); // Desliga o LED vermelho para veículos
digitalWrite(ledVerdeP, LOW); // Desliga o LED verde para pedestres
digitalWrite(ledVermelhoP, HIGH); // Liga o LED vermelho para pedestres
}
}
//Fim do código