Construindo um Semáforo de Trânsito com LEDs e Arduino
O Semáforo Inteligente — Programando Cores com Arduino
O que vamos conseguir fazer
Compreender como um semáforo controla o trânsito por meio de sequências programadas.
Identificar os componentes básicos de um circuito eletrônico (LEDs, resistores, jumpers, protoboard).
Programar um Arduino para acender LEDs vermelho, amarelo e verde respeitando tempos definidos.
Simular o circuito no Tinkercad antes da montagem física.
Reconhecer a importância dos semáforos para a segurança no trânsito e a cidadania.
Peças e materiais
Placa Arduino (Uno / Nano / Mega)
Cabo USB
Protoboard
LEDs (cores variadas)
Resistores
Jumpers (M/M e M/F)
Computador / Laptop
O mapa do nosso robô
cada fio colorido é uma ligação de verdade — o diagrama completo está na página da aula
Introdução
Inicie a aula projetando uma foto de um cruzamento de trânsito com semáforo. Pergunte:
"Quem controla o semáforo? Como ele sabe a hora certa de mudar de cor?"
Conduza os alunos à conclusão de que o semáforo segue uma SEQUÊNCIA programada (algoritmo) — exatamente como vamos programar nosso Arduino.
Introdução
Mostre o circuito montado e explique a função de cada componente (LED, resistor, protoboard, Arduino).
Montagem / Hardware
Em duplas, na protoboard:
1. Conecte o LED VERMELHO ao pino digital 11 com resistor de 220Ω.
2. Conecte o LED AMARELO ao pino digital 10 com resistor de 220Ω.
Montagem / Hardware
3. Conecte o LED VERDE ao pino digital 9 com resistor de 220Ω.
4. Ligue todos os GND ao trilho negativo da protoboard, que vai ao GND do Arduino.
5. Conecte o Arduino ao computador via cabo USB.
Montagem / Hardware
Antes de montar fisicamente, simule o circuito no Tinkercad para validar as ligações.
Programação
Abra a Arduino IDE. Explique cada parte do código:
• const int — guarda o número do pino (memória que não muda).
• setup() — roda 1 vez ao ligar; serve para configurar pinos como SAÍDA.
Programação
• loop() — roda PARA SEMPRE, repetindo a sequência do semáforo.
• digitalWrite(pino, HIGH) — manda 5V → o LED acende.
• delay(ms) — pausa em milissegundos (6000 = 6 segundos).
Programação
Mostre o código completo no datashow (bloco "Código da Aula" abaixo).
Teste e ajustes
Faça upload (botão →) para o Arduino. Observe a sequência:
VERMELHO (6s) → VERDE (6s) → AMARELO (2s) → repete.
Desafie cada dupla a alterar APENAS os valores de delay() para simular:
Teste e ajustes
• Semáforo de rodovia (verde mais longo, vermelho curto).
• Semáforo de escola (amarelo piscando lentamente).
Se não acender, peça pra checar: polaridade do LED (perna longa = +), resistor presente, fio no GND certo.
Encerramento
Cada dupla apresenta seu semáforo modificado em 1 minuto.
Pergunte:
• "Por que o amarelo dura menos que o verde e o vermelho?"
Encerramento
• "O que aconteceria se trocássemos a ordem das cores?"
• "Onde mais existem 'algoritmos' no nosso dia a dia?"
Encerre lembrando que programar é dar instruções claras e em ordem — exatamente o que fizemos hoje.
Como ele decide o que fazer
O código da aula
// === SEMÁFORO INTELIGENTE — Arduino ===
// Prof. Arthur de Oliveira Silva
// E.M. Paulo Renato Souza — 4º/5º ano
const int LED_VERMELHO = 11;
const int LED_AMARELO = 10;
const int LED_VERDE = 9;
void setup() {
pinMode(LED_VERMELHO, OUTPUT);
pinMode(LED_AMARELO, OUTPUT);
pinMode(LED_VERDE, OUTPUT);
}
void loop() {
// 🛑 VERMELHO — pare!
digitalWrite(LED_VERMELHO, HIGH);
delay(2000);
digitalWrite(LED_VERMELHO, LOW);
// ✅ VERDE — pode seguir
digitalWrite(LED_VERDE, HIGH);
delay(2000);
digitalWrite(LED_VERDE, LOW);
// ⚠️ AMARELO — atenção
digitalWrite(LED_AMARELO, HIGH);
delay(2000);
digitalWrite(LED_AMARELO, LOW);
}role dentro da caixa · o código completo está na página da aula
🥊
Bora construir!
dúvidas? a página completa da aula tem tudo: montagem, código e materiais.