← До всіх проєктів
Основи Початковий

Blink на ESP32: перший скетч і вбудований світлодіод

Найперша програма для будь-якої плати: блимаємо світлодіодом на GPIO2. Розбираємо setup() і loop(), pinMode, digitalWrite, delay і монітор порту — фундамент для всіх наступних проєктів.

Складність
Початковий
Час
15 min
Категорія
Основи
Оновлено

Про проєкт

«Blink» — це «Hello, world!» мікроконтролерів. Скетч вмикає й вимикає світлодіод раз на секунду. Звучить просто, але саме на ньому видно, як влаштована будь-яка програма Arduino, як плата керує виводами і як бачити, що відбувається всередині, через монітор порту.

На більшості плат ESP32 DevKit уже є синій світлодіод, підключений до GPIO2, тож нічого паяти не потрібно.

Що знадобиться

  • ESP32 DevKit (DOIT DevKit V1, ESP32-DevKitC тощо)
  • USB-кабель із передачею даних (не лише для заряджання)
  • Arduino IDE з пакетом плат esp32 від Espressif

Схема

Зовнішніх деталей немає: світлодіод і резистор уже стоять на платі між GPIO2 і GND.

Якщо на вашій платі світлодіод не блимає, він може висіти на іншому виводі або його немає зовсім. Тоді підключіть зовнішній світлодіод через резистор 220 Ом — як у статті про макетну плату.

Як це працює

Кожна програма Arduino має дві обов'язкові функції:

  • setup() виконується один раз після ввімкнення або перезавантаження. Тут налаштовують виводи, послідовний порт, датчики.
  • loop() викликається знову і знову, поки на плату подано живлення.

Три функції, які знадобляться майже в кожному проєкті:

  • pinMode(pin, OUTPUT) — робить вивід виходом. Без цього digitalWrite() нічого не вмикає.
  • digitalWrite(pin, HIGH / LOW) — подає на вивід 3.3 В або 0 В.
  • delay(ms) — чекає задану кількість мілісекунд.

Serial.begin(115200) відкриває зв'язок із комп'ютером. У моніторі порту (швидкість теж 115200) ви побачите повідомлення з Serial.println(). Це головний інструмент налагодження.

Код

// Blink: вбудований світлодіод підключений до GPIO2
const int LED_PIN = 2;

void setup() {
  Serial.begin(115200);
  pinMode(LED_PIN, OUTPUT);
  Serial.println("Blink запущено");
}

void loop() {
  digitalWrite(LED_PIN, HIGH);
  Serial.println("Світлодіод увімкнено");
  delay(500);
  digitalWrite(LED_PIN, LOW);
  Serial.println("Світлодіод вимкнено");
  delay(500);
}

Типові помилки

  • Не завантажується скетч («Failed to connect»). Затисніть кнопку BOOT на платі, поки в IDE не з'явиться «Connecting…», потім відпустіть.
  • Кракозябри в моніторі порту. Швидкість у моніторі не збігається з Serial.begin(). Виставте 115200.
  • Забули pinMode(). Вивід залишається входом, і світлодіод ледь жевріє або не світиться зовсім. Симулятор про це попередить.

Що далі

  • Змініть затримки, щоб світлодіод коротко блимав раз на дві секунди, як індикатор роботи.
  • Замініть delay() на перевірку millis(): тоді loop() зможе робити ще щось, поки світлодіод чекає. Цей прийом використовується в кнопці з антидребезгом.