Простой проект для начинающих: «Пешеходный светофор» на Arduino

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

Пешеходный светофор на Arduino

Проект отлично подходит для обучения основам цифрового ввода/вывода, работе с кнопками, светодиодами и звуковым сигналом (зуммером), а также для первых экспериментов с кодом в Arduino IDE.

Что понадобится для проекта

  • Плата Arduino Uno (или аналогичная)
  • Макетная плата (breadboard)
  • 3 светодиода (зелёный, жёлтый, красный)
  • Резистор 330 Ом
  • Кнопка
  • Зуммер (Piezo Buzzer)
  • 10 джампер-проводов

Назначение выводов Arduino

Компонент Пин Arduino Назначение
Зелёный светодиод 8 Показывает «идти»
Жёлтый светодиод 9 Промежуточный свет
Красный светодиод 10 Показывает «стоп»
Кнопка A1 Запрос пешехода
Зуммер 2 Звуковой сигнал при красном
Пешеходный светофор на Arduino

Принцип работы

  1. По умолчанию загорается зелёный свет.
  2. При нажатии кнопки фиксируется запрос на смену сигнала.
  3. Через задержку зелёный гаснет, зажигается жёлтый.
  4. Затем включается красный и активируется зуммер.
  5. После паузы красный гаснет, снова зажигается жёлтый, а затем возвращается зелёный.

Скетч Arduino

int green = 8;
int yellow = 9;
int red = 10;
int push = A1;
int buttonState = 1;
int buzzer = 2;

void setup() {
  pinMode(green, OUTPUT);
  pinMode(yellow, OUTPUT);
  pinMode(red, OUTPUT);
  pinMode(push, INPUT);
  pinMode(buzzer, OUTPUT);
}

void loop() {
  digitalWrite(green, HIGH);
  buttonState = digitalRead(push);

  if (buttonState == 0) {
    delay(500);
    digitalWrite(green, LOW);
    digitalWrite(yellow, HIGH);
    delay(2000);
    digitalWrite(yellow, LOW);
    digitalWrite(red, HIGH);

    for (int i = 0; i < 8; i++) {
      digitalWrite(buzzer, HIGH);
      delay(500);
      digitalWrite(buzzer, LOW);
      delay(500);
    }

    delay(500);
    digitalWrite(red, LOW);
    digitalWrite(yellow, HIGH);
    delay(2000);
    digitalWrite(yellow, LOW);
  }
}

Этот код постоянно проверяет состояние кнопки. При нажатии он выполняет последовательность смены светодиодов и включает зуммер для сигнализации во время "стоп". Задержки используются для создания видимых пауз между состояниями.

FAQ — Простой проект пешеходного светофора

Зачем нужен резистор для светодиодов?

Резистор ограничивает ток, чтобы не повредить светодиоды и не перегрузить выводы Arduino.

Почему кнопка подключена к аналоговому входу A1?

Это допустимо, потому что аналоговый вход может использоваться как цифровой пин. Он считывает HIGH/LOW, как обычный цифровой вход.

Как работает зуммер в этом проекте?

Зуммер подключён к цифровому пину и включается/выключается с определённой частотой, создавая звуковой сигнал.

Можно ли использовать другие светодиоды?

Да. Главное — добавлять резисторы подходящего сопротивления, чтобы защитить компоненты.

Как изменить длительность сигналов?

Задержки в коде (`delay(...)`) определяют длительность каждого этапа. Можно менять эти значения под свои задачи.

Что делать, если светофор не реагирует на кнопку?

Проверь правильность подключения кнопки и убедись, что она замыкается на землю при нажатии.

Заключение

Этот проект — отличный старт для новичков. Он учит базовым навыкам работы с Arduino, светодиодами, кнопками и зуммером, а также помогает понять, как строится логика управления устройствами.