Урок 3 · Крок 1 / 10
Маячок із двома спалахами LED двічі коротко спалахує, робить довгу паузу й повторює послідовність.
Arduino Uno, USB-кабель і макетна плата. Один червоний світлодіод. Один резистор 330 Ом. Два з’єднувальні дроти. Під’єднай LED до D8 за координатами з наступних кроків.
Для червоного LED можна використати наявний резистор 220 Ом замість 330 Ом; у готовій схемі Wokwi стоїть 330 Ом.
Перед зміною схеми від’єднай живлення. У Wokwi зупини симуляцію. Справжню схему перевір за схемою перед підключенням USB.
Урок 3 · Крок 2 / 10
З’єднання груп 10 та 16 Встав резистор 330 Ом між 10c та 16c.
Цього разу він лежить уздовж однієї половини макетної плати. Групи 10a–10e та 16a–16e окремі, тому струм між ними проходитиме через резистор.
Обидва кінці в одній групі, наприклад 10a та 10e, не підходять: внутрішній контакт плати обійде резистор.
9 10 11 12 13 14 15 16 a b c d e 330 Ω Отвори a–e одного номера з’єднані Урок 3 · Крок 3 / 10
Анод і катод Довгу ніжку LED, анод A, встав у 10a. Коротку ніжку, катод C, встав у 9a. Анод з’єднаний із резистором через групу 10. Катод стоїть у сусідній окремій групі 9.
Якщо ніжки обрізані, визнач катод за пласкою гранню корпусу або перевір LED за схемою.
9 10 11 12 13 14 15 16 a b c d e 330 Ω C A Отвори a–e одного номера з’єднані Урок 3 · Крок 4 / 10
D8 та GND З’єднай D8 Arduino з 16d зеленим дротом. З’єднай GND Arduino з 9c чорним дротом. D8 → 16d → 16c → резистор → 10c → 10a → LED → 9a → 9c → GND
Простеж цей шлях на своїй платі. Резистор має бути послідовно зі світлодіодом.
9 10 11 12 13 14 15 16 a b c d e 330 Ω C A D8 → 16d GND → 9c Отвори a–e одного номера з’єднані Урок 3 · Крок 5 / 10
Три тривалості const byte LED_PIN = 8 ;
const unsigned long FLASH_MS = 200 ;
const unsigned long SHORT_PAUSE_MS = 200 ;
const unsigned long LONG_PAUSE_MS = 1200 ; Усі значення часу задані в мілісекундах. 200 мс = 0,2 с; 1200 мс = 1,2 с. Закінчення _MS у назві нагадує одиницю вимірювання.
const означає, що значення не змінюється під час виконання. byte достатньо для номера піна. unsigned long зберігає невід’ємні цілі числа й підходить для тривалостей у мілісекундах.
Урок 3 · Крок 6 / 10
Описуємо один спалах void flashOnce() {
digitalWrite(LED_PIN, HIGH );
delay(FLASH_MS);
digitalWrite(LED_PIN, LOW );
}Функція — група команд із власним ім’ям. flashOnce() виконує три дії: увімкнути, зачекати, вимкнути.
Вона не містить паузи після вимкнення . Таку паузу задаємо окремо — вона буде короткою після першого спалаху та довгою після другого.
void означає, що функція не повертає значення. Її опис розміщуємо поза setup() і loop().
Урок 3 · Крок 7 / 10
Починаємо з вимкненого LED void setup() {
pinMode(LED_PIN, OUTPUT );
digitalWrite(LED_PIN, LOW );
}setup() готує вихід. Вона виконується один раз після подачі живлення або перезапуску.
Сам опис flashOnce() не запускає спалах. Потрібно викликати функцію — написати її ім’я з дужками та крапкою з комою.
Урок 3 · Крок 8 / 10
Два виклики та дві паузи void loop() {
flashOnce();
delay(SHORT_PAUSE_MS);
flashOnce();
delay(LONG_PAUSE_MS);
}Один цикл триває приблизно 1800 мс : 200 + 200 + 200 + 1200. Після останньої паузи виконання повертається до першого спалаху.
Обидва спалахи використовують ту саму функцію. Зміна FLASH_MS змінить тривалість обох.
delay() зупиняє виконання наступних команд цієї програми на заданий час. Поки триває пауза, світлодіод зберігає свій стан.
Урок 3 · Крок 9 / 10
Перевір ритм Запуск у Wokwi Відкрити у Wokwi ↗
Натисни кнопку запуску. Для самостійного завдання збережи власну копію проєкту.
Готовий проєкт: https://wokwi.com/projects/475796693291223041. Схему можна зібрати вручну за кроками уроку. Повний код — на останній сторінці.
Для справжньої плати розпакуй архів коду й відкрий sketch/sketch.ino в Arduino IDE, вибери Arduino Uno та порт. Перевір коло за схемою і завантаж код.
Знайди два близькі спалахи та довгу темну паузу. Порахуй п’ять повних циклів: це приблизно 9 секунд. Переконайся, що між спалахами LED гасне. Світлодіод не світиться Від’єднай живлення. Перевір D8–16d, GND–9c, резистор 10c–16c та полярність LED. У коді LED_PIN має дорівнювати 8.
Є лише один довгий спалах Перевір команду LOW наприкінці flashOnce() та SHORT_PAUSE_MS. Без темної паузи два спалахи візуально зливаються.
Урок 3 · Крок 10 / 10
Подовжи паузу між парами Зміни довгу паузу з 1200 на 2200 мс. Обидва спалахи й коротку паузу залиш незмінними.
Знайди одну константу, яку потрібно змінити. Перед запуском обчисли нову тривалість циклу. Запусти код і порівняй ритм із попереднім. Пояснення після спроби LONG_PAUSE_MS = 2200. Цикл: 200 + 200 + 200 + 2200 = 2800 мс , тобто 2,8 с. Змінювати flashOnce() не потрібно.
Поясни, чому функцію спалаху викликаємо двічі, а описуємо лише один раз.
← Назад Далі →
Повний код і файли проєкту Два спалахи по 200 мс, коротка пауза 200 мс і довга пауза 1200 мс.
Код для Arduino · ZIP
#include <Arduino.h>
const byte LED_PIN = 8 ;
const unsigned long FLASH_MS = 200 ;
const unsigned long SHORT_PAUSE_MS = 200 ;
const unsigned long LONG_PAUSE_MS = 1200 ;
void flashOnce() {
digitalWrite(LED_PIN, HIGH );
delay(FLASH_MS);
digitalWrite(LED_PIN, LOW );
}
void setup() {
pinMode(LED_PIN, OUTPUT );
digitalWrite(LED_PIN, LOW );
}
void loop() {
flashOnce();
delay(SHORT_PAUSE_MS);
flashOnce();
delay(LONG_PAUSE_MS);
}
Wokwi потребує інтернету. Завантажений HTML-урок працює офлайн.
Урок 3 · Повний код
Маячок Два спалахи по 200 мс, коротка пауза 200 мс і довга пауза 1200 мс.
#include <Arduino.h>
const byte LED_PIN = 8 ;
const unsigned long FLASH_MS = 200 ;
const unsigned long SHORT_PAUSE_MS = 200 ;
const unsigned long LONG_PAUSE_MS = 1200 ;
void flashOnce() {
digitalWrite(LED_PIN, HIGH );
delay(FLASH_MS);
digitalWrite(LED_PIN, LOW );
}
void setup() {
pinMode(LED_PIN, OUTPUT );
digitalWrite(LED_PIN, LOW );
}
void loop() {
flashOnce();
delay(SHORT_PAUSE_MS);
flashOnce();
delay(LONG_PAUSE_MS);
}