Construindo um Semáforo de Trânsito com LEDs e Arduino
O Semáforo Inteligente — Programando Cores com Arduino
- • 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.
Introdução / Contextualizaçã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. Mostre o circuito montado e explique a função de cada componente (LED, resistor, protoboard, Arduino).
Montagem do Circuito / 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Ω. 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. Antes de montar fisicamente, simule o circuito no Tinkercad para validar as ligações.
Programação / Codificaçã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. • 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). Mostre o código completo no datashow (bloco "Código da Aula" abaixo).
Teste, Depuração 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: • 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 / Socialização
Cada dupla apresenta seu semáforo modificado em 1 minuto. Pergunte: • "Por que o amarelo dura menos que o verde e o vermelho?" • "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.
// === 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);
}
quando @greenFlag for clicado sempre acender LED vermelho esperar 2 seg apagar LED vermelho acender LED verde esperar 2 seg apagar LED verde acender LED amarelo esperar 2 seg apagar LED amarelo end
Toque para ver em 3D · gire com o dedo.
Você chegou ao fim! 🎉
O que foi mais difícil? O que você faria diferente? Conte pra turma!