Урок 1 Начинающий 30 минут

Основы работы со светодиодами

Изучите принципы работы светодиодов, научитесь подключать их к ESP32 и создавать эффект мигания.

1

Подготовка оборудования

Компоненты для урока

ESP32 DevKit

Любая версия (30/38 пинов)

💡

Светодиод

5мм Красный/Зеленый/Синий

⚙️

Резистор

220–330 Ом (защита)

🔌

Breadboard

400 или 800 точек

2

Как работает светодиод

Полярность

Устройство светодиода

Светодиод пропускает ток только в одном направлении. Важно правильно определить полярность перед подключением.

Анод (+)

Длинная ножка

Катод (-)

Короткая ножка

Защитный резистор

⚠️

ВНИМАНИЕ

ESP32 работает от 3.3В. Без резистора ток будет слишком большим и светодиод сгорит.

Формула расчета:

// Закон Ома:
R = (Uпитания - Uled) / Iled
R = (3.3В - 2В) / 0.015А ≈ 220 Ом
3

Схема подключения

Схема подключения светодиода к ESP32
1

ESP32 Установите модуль на макетную плату

2

GND Соедините пин с синей шиной минуса

3

LED Вставьте светодиод, соблюдая полярность

4

GPIO 18 Подключите резистор к цифровому пину

4

Программирование

Настройка Arduino IDE

⚙️

Откройте Файл → Настройки

🔗

Добавьте ссылку на пакет в поле Additional Boards Manager URLs

📦

Установите esp32 через Менеджер плат

https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
Blink_Simple.ino
01
02
03
04
05
06
07
08
09
void setup() {
  pinMode(18, OUTPUT); // Пин 18 на выход
}
void loop() {
  digitalWrite(18, HIGH); // ВКЛ
  delay(1000); // Ждем 1 сек
  digitalWrite(18, LOW); // ВЫКЛ
  delay(1000);
}

Вид в Arduino IDE

Код программы в Arduino IDE
5

Возможные проблемы

Светодиод не горит вообще

Проверьте полярность. Скорее всего, вы перепутали анод (+) и катод (-). Вытащите светодиод, переверните на 180° и вставьте обратно.

Ошибка "Failed to connect to ESP32"

При загрузке кода, когда появится надпись "Connecting...", нажмите и удерживайте кнопку BOOT на плате ESP32 до начала записи.

Светодиод горит очень тускло

Возможно, вы использовали слишком мощный резистор (например, 10 кОм). Используйте резистор 220 Ом (Кр-Кр-Кор) или 330 Ом.

6

Цех Испытаний

Отточите мастерство на реальных кейсах. Каждая карта — это шаг к полному пониманию физических вычислений.

Время прохождения
~90 минут суммарно
🌓
Уровень: Start 5m

Инвертор

Основа параллельной работы. Учимся управлять состояниями двух пинов.

Цель

Два светодиода мигают строго по очереди: когда первый горит — второй выключен, и наоборот.

Что собираем
ESP32 DevKit 2 × LED 5мм 2 × резистор 220 Ом Breadboard Провода
Подключение

LED1 → GPIO 18, LED2 → GPIO 19. Катоды обоих светодиодов через резисторы к GND.

Шаги
  1. 1 Объяви две переменные с номерами пинов: int led1 = 18; int led2 = 19;
  2. 2 В setup() настрой оба пина как выходы: pinMode(led1, OUTPUT); pinMode(led2, OUTPUT);
  3. 3 В loop() включи led1 и выключи led2: digitalWrite(led1, HIGH); digitalWrite(led2, LOW);
  4. 4 Подожди 500 миллисекунд: delay(500);
  5. 5 Поменяй состояния местами: digitalWrite(led1, LOW); digitalWrite(led2, HIGH); delay(500);

Как проверить

Светодиоды никогда не горят одновременно. Момент переключения плавный, без «темноты» между фазами.

01
🚨
Уровень: Easy 10m

Маяк

Работа с паттернами задержек. Создаем узнаваемый сигнал.

Цель

Двойная вспышка: две быстрые вспышки подряд, потом длинная пауза, и снова две вспышки.

Что собираем
ESP32 DevKit 1 × LED 5мм 1 × резистор 220 Ом Breadboard Провода
Подключение

LED → GPIO 18. Катод через резистор 220 Ом к GND.

Шаги
  1. 1 Объяви пин: int led = 18; и настрой pinMode(led, OUTPUT) в setup().
  2. 2 В loop() включи светодиод: digitalWrite(led, HIGH); delay(100);
  3. 3 Выключи: digitalWrite(led, LOW); delay(200); — получилась первая вспышка.
  4. 4 Повтори включение-выключение ещё раз: digitalWrite(HIGH) → delay(100) → digitalWrite(LOW).
  5. 5 В конце loop() добавь длинную паузу: delay(2000); — чтобы двойная вспышка повторялась каждые 2 секунды.

Как проверить

Виден ритм: «вспышка-вспышка → долгая пауза → вспышка-вспышка». Как у настоящего морского маяка.

02
🌊
Уровень: Normal 15m

Волна

Управление цепочкой устройств. Логика последовательности.

Цель

«Бегущий огонь»: диоды зажигаются по одному слева направо (1 → 2 → 3), потом короткая пауза и повтор.

Что собираем
ESP32 DevKit 3 × LED 5мм 3 × резистор 220 Ом Breadboard Провода
Подключение

LED1 → GPIO 18, LED2 → GPIO 19, LED3 → GPIO 21. Катоды всех трёх через свои резисторы к GND.

Шаги
  1. 1 Объяви три переменные: int led1 = 18; int led2 = 19; int led3 = 21;
  2. 2 В setup() сделай все три пина выходами через pinMode(..., OUTPUT).
  3. 3 В loop() зажги led1: digitalWrite(led1, HIGH); delay(200); digitalWrite(led1, LOW);
  4. 4 Сразу после этого повтори то же для led2, потом для led3.
  5. 5 В конце loop() добавь delay(400) — пауза перед новым кругом.

Как проверить

В каждый момент времени горит только один диод, и точка света «бежит» слева направо.

03
🚦
Уровень: Hard 20m

Светофор

Моделирование реальной системы. Сложные циклы.

Цель

Полный цикл светофора: зелёный → мигающий зелёный (4 раза) → жёлтый → красный → жёлто-красный → снова зелёный.

Что собираем
ESP32 DevKit LED красный, жёлтый, зелёный 3 × резистор 220 Ом Breadboard Провода
Подключение

Красный → GPIO 18, Жёлтый → GPIO 19, Зелёный → GPIO 21. Все катоды через резисторы к GND.

Шаги
  1. 1 Объяви три переменные: int red = 18; int yellow = 19; int green = 21; — и настрой pinMode для каждого.
  2. 2 В loop() включи зелёный на 3 секунды: digitalWrite(green, HIGH); delay(3000);
  3. 3 Помигай зелёным 4 раза через цикл for (int i = 0; i < 4; i++) { digitalWrite(green, HIGH); delay(500); digitalWrite(green, LOW); delay(500); }
  4. 4 Включи жёлтый на 1 секунду, потом выключи.
  5. 5 Включи красный на 3 секунды. Затем включи жёлтый ВМЕСТЕ с красным на 1 секунду (сигнал перед зелёным) и выключи оба.

Как проверить

Цикл напоминает настоящий светофор: зелёный гаснет постепенно через мигание, а перед зелёным горят красный+жёлтый.

04
Уровень: Expert 30m

Хаос

Работа с алгоритмами случайности (Random).

Цель

Эффект «мерцающих звёзд»: 3 светодиода независимо вспыхивают на случайное время со случайной паузой.

Что собираем
ESP32 DevKit 3 × LED 5мм 3 × резистор 220 Ом Breadboard Провода
Подключение

LED1 → GPIO 18, LED2 → GPIO 19, LED3 → GPIO 21. Катоды через резисторы к GND.

Шаги
  1. 1 Сложи пины в массив: int leds[3] = {18, 19, 21}; — в setup() пройди циклом и вызови pinMode для каждого.
  2. 2 В setup() добавь randomSeed(analogRead(0)); — чтобы числа были по-настоящему случайными.
  3. 3 В loop() выбери случайный диод: int idx = random(0, 3); — вернёт 0, 1 или 2.
  4. 4 Выбери случайную длительность вспышки: int dur = random(50, 500); — от 50 до 500 мс.
  5. 5 Зажги выбранный диод на dur миллисекунд: digitalWrite(leds[idx], HIGH); delay(dur); digitalWrite(leds[idx], LOW);
  6. 6 Добавь случайную паузу между вспышками: delay(random(50, 300));

Как проверить

Светодиоды вспыхивают непредсказуемо, разной длительности, без видимого ритма — как звёзды на ночном небе.

05
🚀

Свой Проект

Создайте свою уникальную модель в онлайн-симуляторе. Ограничений нет!

Открыть Симулятор →

Поздравляем! 🎉

Вы успешно завершили свой первый урок. Теперь вы знаете, как оживить железо с помощью кода. Попробуйте изменить задержку в коде, чтобы мигание стало быстрее!