Плеко / Робототехніка
Урок 05-01 · Крок 1 / 10

Автоматичний світлофор

Три світлодіоди по черзі показують сигнали світлофора. Послідовність повторюється сама.

  • Arduino Uno, USB-кабель і макетна плата.
  • Червоний, жовтий і зелений LED; три резистори по 220 Ом.
  • Дроти «тато–тато».

Керуємо кольорами через digitalWrite() і задаємо паузи через delay().

Перед зміною схеми від’єднай живлення. У Wokwi зупини симуляцію. Справжню схему перевір разом з учителем перед підключенням USB.

Повний код і файли проєкту

Зелений 5 с → три блимання → жовтий 2 с → червоний 5 с → червоний і жовтий 1 с.

#include <Arduino.h> // Команди Arduino.

const byte RED_PIN = 8; // Червоний світлодіод на D8.
const byte YELLOW_PIN = 9; // Жовтий світлодіод на D9.
const byte GREEN_PIN = 10; // Зелений світлодіод на D10.

void setup() { // Виконується один раз після запуску.
  pinMode(RED_PIN, OUTPUT); // Налаштовуємо вихід червоного LED.
  pinMode(YELLOW_PIN, OUTPUT); // Налаштовуємо вихід жовтого LED.
  pinMode(GREEN_PIN, OUTPUT); // Налаштовуємо вихід зеленого LED.
}

void loop() { // Повторюємо весь цикл світлофора.
  digitalWrite(RED_PIN, LOW); // Червоний вимкнений.
  digitalWrite(YELLOW_PIN, LOW); // Жовтий вимкнений.
  digitalWrite(GREEN_PIN, HIGH); // Вмикаємо зелений.
  delay(5000); // Зелений світиться 5 секунд.

  digitalWrite(GREEN_PIN, LOW); // Блимання 1: гасимо зелений.
  delay(500); // Пів секунди без світла.
  digitalWrite(GREEN_PIN, HIGH); // Знову вмикаємо зелений.
  delay(500); // Пів секунди світла.

  digitalWrite(GREEN_PIN, LOW); // Блимання 2: гасимо зелений.
  delay(500); // Пів секунди без світла.
  digitalWrite(GREEN_PIN, HIGH); // Знову вмикаємо зелений.
  delay(500); // Пів секунди світла.

  digitalWrite(GREEN_PIN, LOW); // Блимання 3: гасимо зелений.
  delay(500); // Пів секунди без світла.
  digitalWrite(GREEN_PIN, HIGH); // Знову вмикаємо зелений.
  delay(500); // Пів секунди світла.

  digitalWrite(GREEN_PIN, LOW); // Вимикаємо зелений.
  digitalWrite(YELLOW_PIN, HIGH); // Вмикаємо жовтий.
  delay(2000); // Жовтий світиться 2 секунди.

  digitalWrite(YELLOW_PIN, LOW); // Вимикаємо жовтий.
  digitalWrite(RED_PIN, HIGH); // Вмикаємо червоний.
  delay(5000); // Червоний світиться 5 секунд.

  digitalWrite(YELLOW_PIN, HIGH); // Додаємо жовтий; червоний залишається ввімкненим.
  delay(1000); // Обидва кольори світяться 1 секунду.
} // Наступний оберт loop знову ввімкне лише зелений.

Wokwi потребує інтернету. Завантажений HTML-урок працює офлайн.