Усі значення часу задані в мілісекундах. 200 мс = 0,2 с; 1200 мс = 1,2 с. Закінчення _MS у назві нагадує одиницю вимірювання.
const означає, що значення не змінюється під час виконання. byte достатньо для номера піна. unsigned long зберігає невід’ємні цілі числа й підходить для тривалостей у мілісекундах.
Натисни кнопку запуску. Для самостійного завдання збережи власну копію проєкту.
Готовий проєкт: 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. Без темної паузи два спалахи візуально зливаються.
Урок 03 · Крок 10 / 10
Подовжи паузу між парами
Зміни довгу паузу з 1200 на 2200 мс. Обидва спалахи й коротку паузу залиш незмінними.
Знайди одну константу, яку потрібно змінити.
Перед запуском обчисли нову тривалість циклу.
Запусти код і порівняй ритм із попереднім.
Пояснення після спроби
LONG_PAUSE_MS = 2200. Цикл: 200 + 200 + 200 + 2200 = 2800 мс, тобто 2,8 с. Змінювати flashOnce() не потрібно.
Поясни вчителю, чому функцію спалаху викликаємо двічі, а описуємо лише один раз.
Повний код і файли проєкту
Два спалахи по 200 мс, коротка пауза 200 мс і довга пауза 1200 мс.
#include <Arduino.h> // Команди керування Arduino.
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); // Тримаємо світло протягом 200 мс.
digitalWrite(LED_PIN, LOW); // Вимикаємо світлодіод.
}
void setup() { // Виконується один раз після запуску.
pinMode(LED_PIN, OUTPUT); // Налаштовуємо пін 8 як вихід.
digitalWrite(LED_PIN, LOW); // Починаємо з вимкненого світлодіода.
}
void loop() { // Повторюємо пару спалахів та довгу паузу.
flashOnce(); // Перший спалах.
delay(SHORT_PAUSE_MS); // Коротка пауза без світла.
flashOnce(); // Другий спалах.
delay(LONG_PAUSE_MS); // Довга пауза перед наступною парою.
}