#107Iniciante

Semáforo com ESP32

Simulação de um semáforo real com 3 LEDs: vermelho, amarelo e verde. Os tempos se aproximam da lógica real: vermelho longo, amarelo curto e verde longo. Um exemplo clássico de controle sequencial de GPIOs.

4.4(21)
44 concluído
Semáforo com ESP32
Uma pequena cópia do semáforo da sua rua: o vermelho fica aceso por três segundos; depois, vermelho e amarelo acendem juntos para avisar que o verde está chegando. Após três segundos de verde, vem um breve amarelo, e o ciclo volta ao vermelho. Basta conectar três LEDs e três resistores ao ESP32.

Vídeo

Esquema do circuito

Semáforo com ESP32 - Circuit

Código-fonte

C++ (Arduino IDE)
1// ─────────────────────────────────────────
2//   BlueGrays · bluegrays.com
3//   Semáforo com ESP32
4// ─────────────────────────────────────────
5// Ciclo de semáforo com LEDs vermelho, amarelo e verde: vermelho 3 s,
6// vermelho + amarelo 0.8 s, verde 3 s, amarelo 0.8 s.
7//
8// Pinos:
9//   GPIO 5  -> LED vermelho
10//   GPIO 18 -> LED amarelo
11//   GPIO 19 -> LED verde
12//   Cada LED com resistor de 220 ohm, catodos no GND
13
14const int RED = 5;      // Pino do LED vermelho
15const int YELLOW = 18;  // Pino do LED amarelo
16const int GREEN = 19;   // Pino do LED verde
17
18void setup() {
19  pinMode(RED, OUTPUT);
20  pinMode(YELLOW, OUTPUT);
21  pinMode(GREEN, OUTPUT);
22}
23
24void loop() {
25  // Vermelho
26  digitalWrite(RED, HIGH);
27  digitalWrite(YELLOW, LOW);
28  digitalWrite(GREEN, LOW);
29  delay(3000);
30
31  // Vermelho + amarelo
32  digitalWrite(YELLOW, HIGH);
33  delay(800);
34
35  // Verde
36  digitalWrite(RED, LOW);
37  digitalWrite(YELLOW, LOW);
38  digitalWrite(GREEN, HIGH);
39  delay(3000);
40
41  // Amarelo
42  digitalWrite(GREEN, LOW);
43  digitalWrite(YELLOW, HIGH);
44  delay(800);
45  digitalWrite(YELLOW, LOW);
46}
47

Perguntas frequentes

Qual é a diferença em relação ao código de semáforo no Arduino?

A lógica é a mesma; apenas os números dos pinos mudam para o ESP32. Por causa da saída de 3,3 V, os LEDs podem brilhar um pouco menos; para mais brilho, você pode usar um resistor de 100–150 Ω.

Posso controlar o semáforo pelo celular?

Sim, com o Wi-Fi do ESP32, você pode criar um pequeno servidor web e controlar as luzes pelo navegador. Esse é o principal recurso que diferencia o ESP32 do Arduino.

Como deixar os tempos realistas?

Em cruzamentos reais, as luzes verde e vermelha ficam acesas por 20–60 segundos, e a amarela por 3–4 segundos. Nos testes, você pode reduzir os tempos de espera e depois usar os valores reais na apresentação.

Quais pinos devo escolher?

Escolha pinos como GPIO 25, 26 e 27, que não têm função especial na inicialização. Como GPIO 0, 2, 12 e 15 afetam o modo de inicialização, circuitos conectados a eles podem impedir que a placa inicie.