🚦 Aplicação 12 – Semáforo em “Y” com Arduino

🎯 Objetivo

Controlar três conjuntos de LEDs simulando um cruzamento em “Y”, onde cada via tem seu próprio semáforo, mas todos funcionam em sincronismo para manter o fluxo seguro.


🛠 Materiais necessários

  • 1 Arduino Uno

  • 9 LEDs (3 vermelhos, 3 amarelos, 3 verdes)

  • 9 resistores de 220 Ω

  • Protoboard e jumpers


⚙️ Funcionamento

Cada semáforo terá três fases:

  1. Verde ativo: libera o tráfego de uma via enquanto as outras estão paradas.

  2. Amarelo de atenção: indica mudança iminente para o vermelho.

  3. Vermelho: bloqueia o tráfego da via.

O ciclo é repetido de forma coordenada para os três braços do “Y”.




📜 Código Arduino


// Definição dos pinos para cada cor de cada semáforo int led_red = 0; int led_yellow = 1; int led_green = 2; int led_red2 = 3; int led_yellow2 = 4; int led_green2 = 5; int led_red3 = 6; int led_yellow3 = 7; int led_green3 = 8; void setup() { // Configura todos os pinos como saída pinMode(led_red, OUTPUT); pinMode(led_yellow, OUTPUT); pinMode(led_green, OUTPUT); pinMode(led_red2, OUTPUT); pinMode(led_yellow2, OUTPUT); pinMode(led_green2, OUTPUT); pinMode(led_red3, OUTPUT); pinMode(led_yellow3, OUTPUT); pinMode(led_green3, OUTPUT); } void loop() { // Fase 1 delay(3000); digitalWrite(led_red, LOW); digitalWrite(led_yellow, LOW); digitalWrite(led_green, HIGH); digitalWrite(led_red2, LOW); digitalWrite(led_yellow2, HIGH); digitalWrite(led_green2, LOW); digitalWrite(led_red3, HIGH); digitalWrite(led_yellow3, LOW); digitalWrite(led_green3, LOW); // Fase 2 delay(3000); digitalWrite(led_red, LOW); digitalWrite(led_yellow, HIGH); digitalWrite(led_green, LOW); digitalWrite(led_red2, LOW); digitalWrite(led_yellow2, LOW); digitalWrite(led_green2, HIGH); digitalWrite(led_red3, HIGH); digitalWrite(led_yellow3, LOW); digitalWrite(led_green3, LOW); // Fase 3 delay(3000); digitalWrite(led_red, HIGH); digitalWrite(led_yellow, LOW); digitalWrite(led_green, LOW); digitalWrite(led_red2, LOW); digitalWrite(led_yellow2, LOW); digitalWrite(led_green2, HIGH); digitalWrite(led_red3, LOW); digitalWrite(led_yellow3, HIGH); digitalWrite(led_green3, LOW); }

🧠 Aprendizado

  • Como coordenar vários conjuntos de LEDs simultaneamente

  • Uso de tempo (delay) para criar sequências de tráfego

  • Organização de código para múltiplos dispositivos em paralelo


✨ Spoiler do próximo conteúdo

No próximo projeto, vamos mudar para um relogio digtal com alarme vai ser muito legal

Comentários