#107Новичок

Светофор на ESP32

Реалистичная симуляция светофора на 3 светодиодах — красном, жёлтом и зелёном. Тайминги близки к реальной логике движения: красный долго, жёлтый коротко, зелёный долго. Классический пример последовательного управления GPIO.

4.4(21)
44 собрано
Светофор на ESP32
Маленькая копия светофора на твоей улице: красный горит три секунды, затем красный и жёлтый загораются вместе, сообщая, что сейчас будет зелёный. После трёх секунд зелёного идёт короткий жёлтый, и цикл возвращается к красному. Нужны всего три светодиода и три резистора, подключённые к ESP32.

Видео

Схема

Светофор на ESP32 - Circuit

Исходный код

C++ (Arduino IDE)
1// ─────────────────────────────────────────
2//   BlueGrays · bluegrays.com
3//   Светофор на ESP32
4// ─────────────────────────────────────────
5// Цикл светофора на красном, жёлтом и зелёном светодиодах: красный 3 с,
6// красный + жёлтый 0,8 с, зелёный 3 с, жёлтый 0,8 с.
7//
8// Пины:
9//   GPIO 5  -> Красный светодиод
10//   GPIO 18 -> Жёлтый светодиод
11//   GPIO 19 -> Зелёный светодиод
12//   Каждый светодиод с резистором 220 ohm, катоды к GND
13
14const int RED = 5;      // Пин красного светодиода
15const int YELLOW = 18;  // Пин жёлтого светодиода
16const int GREEN = 19;   // Пин зелёного светодиода
17
18void setup() {
19  pinMode(RED, OUTPUT);
20  pinMode(YELLOW, OUTPUT);
21  pinMode(GREEN, OUTPUT);
22}
23
24void loop() {
25  // Красный
26  digitalWrite(RED, HIGH);
27  digitalWrite(YELLOW, LOW);
28  digitalWrite(GREEN, LOW);
29  delay(3000);
30
31  // Красный + жёлтый
32  digitalWrite(YELLOW, HIGH);
33  delay(800);
34
35  // Зелёный
36  digitalWrite(RED, LOW);
37  digitalWrite(YELLOW, LOW);
38  digitalWrite(GREEN, HIGH);
39  delay(3000);
40
41  // Жёлтый
42  digitalWrite(GREEN, LOW);
43  digitalWrite(YELLOW, HIGH);
44  delay(800);
45  digitalWrite(YELLOW, LOW);
46}
47

Частые вопросы

Чем он отличается от кода светофора на Arduino?

Логика та же, отличаются только номера пинов на ESP32. Из-за выхода 3,3 V светодиоды могут светиться чуть тусклее; для более яркого света можно взять резистор 100–150 Ω.

Можно ли управлять светофором с телефона?

Да, используя Wi-Fi у ESP32, можно поднять маленький веб-сервер и управлять огнями из браузера. Это главное, что отличает ESP32 от Arduino.

Как сделать длительности реалистичными?

На настоящих перекрёстках зелёный и красный горят 20–60 секунд, а жёлтый — 3–4 секунды. Во время проверки можно сократить ожидания, а для презентации выставить реальные значения.

Какие пины выбрать?

Выбирай пины вроде GPIO 25, 26 и 27, у которых нет особой функции при запуске. GPIO 0, 2, 12 и 15 влияют на режим загрузки, и подключённые к ним схемы могут мешать плате запуститься.