Простой проект для начинающих: «Пешеходный светофор» на Arduino
Этот проект предназначен для тех, кто только начинает знакомиться с Arduino и хочет научиться программировать простую электронную схему. Он реализует модель пешеходного светофора с кнопкой и звуковым сигналом, которую легко собрать на макетной плате.
Проект отлично подходит для обучения основам цифрового ввода/вывода, работе с кнопками, светодиодами и звуковым сигналом (зуммером), а также для первых экспериментов с кодом в Arduino IDE.
Что понадобится для проекта
- Плата Arduino Uno (или аналогичная)
- Макетная плата (breadboard)
- 3 светодиода (зелёный, жёлтый, красный)
- Резистор 330 Ом
- Кнопка
- Зуммер (Piezo Buzzer)
- 10 джампер-проводов
Назначение выводов Arduino
| Компонент | Пин Arduino | Назначение |
|---|---|---|
| Зелёный светодиод | 8 | Показывает «идти» |
| Жёлтый светодиод | 9 | Промежуточный свет |
| Красный светодиод | 10 | Показывает «стоп» |
| Кнопка | A1 | Запрос пешехода |
| Зуммер | 2 | Звуковой сигнал при красном |
Принцип работы
- По умолчанию загорается зелёный свет.
- При нажатии кнопки фиксируется запрос на смену сигнала.
- Через задержку зелёный гаснет, зажигается жёлтый.
- Затем включается красный и активируется зуммер.
- После паузы красный гаснет, снова зажигается жёлтый, а затем возвращается зелёный.
Скетч 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, светодиодами, кнопками и зуммером, а также помогает понять, как строится логика управления устройствами.