#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

Arduino (C++)
1// ─────────────────────────────────────────
2//   BlueGrays · bluegrays.com
3//   ESP32 Traffic Light
4// ─────────────────────────────────────────
5// A traffic light cycle with red, yellow and green LEDs: red 3 s, red +
6// yellow 0.8 s, green 3 s, yellow 0.8 s.
7//
8// Pins:
9//   GPIO 5  -> Red LED
10//   GPIO 18 -> Yellow LED
11//   GPIO 19 -> Green LED
12//   Each LED with a 220 ohm resistor, cathodes to GND
13
14const int RED = 5;      // Red LED pin
15const int YELLOW = 18;  // Yellow LED pin
16const int GREEN = 19;   // Green LED pin
17
18void setup() {
19  pinMode(RED, OUTPUT);
20  pinMode(YELLOW, OUTPUT);
21  pinMode(GREEN, OUTPUT);
22}
23
24void loop() {
25  // Red
26  digitalWrite(RED, HIGH);
27  digitalWrite(YELLOW, LOW);
28  digitalWrite(GREEN, LOW);
29  delay(3000);
30
31  // Red + Yellow
32  digitalWrite(YELLOW, HIGH);
33  delay(800);
34
35  // Green
36  digitalWrite(RED, LOW);
37  digitalWrite(YELLOW, LOW);
38  digitalWrite(GREEN, HIGH);
39  delay(3000);
40
41  // Yellow
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.