Система предупреждения о столкновении на Arduino: визуальные и звуковые сигналы
Компоненты и материалы
- Arduino UNO — 1 шт.
- Ультразвуковой датчик HC-SR04 (в описании HR SC-04) — 1 шт.
- Светодиоды: красный, синий — по 1 шт.
- Пьезоизлучатель (buzzer) — 1 шт.
- Резисторы 10 кОм — 2 шт. (для светодиодов)
- Провода-перемычки
Принцип работы
Система определяет расстояние до препятствия перед автомобилем и выдаёт предупреждение в трёх зонах:
- Зона 1 (>50 см): предупреждений нет.
- Зона 2 (20–50 см): визуальное — горит синий светодиод (водитель должен быть внимателен).
- Зона 3 (<20 см): визуальное + звуковое — мигает красный светодиод и пищит бузер (необходимо экстренное торможение).
Схема подключения
- HC-SR04: VCC→5V, GND→GND, Trig→D7, Echo→D4
- Buzzer: + → D10, − → GND
- Синий LED: анод → D13 через 10 кОм, катод → GND
- Красный LED: анод → D2 через 10 кОм, катод → GND
Код (C/C++)
const int trigPin = 7;
const int echoPin = 4;
const int buzzPin = 10;
const int blueLed = 13;
const int redLed = 2;
long duration;
int distance;
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(blueLed, OUTPUT);
pinMode(redLed, OUTPUT);
Serial.begin(9600);
}
void loop() {
// Запуск измерения
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = duration * 0.034 / 2; // см
Serial.print("Distance: "); Serial.println(distance);
// Зона 2: 20-50 см — синий LED
if (distance <= 50 && distance >= 20) {
digitalWrite(blueLed, HIGH);
} else {
digitalWrite(blueLed, LOW);
}
// Зона 3: <20 см — красный LED + звук
if (distance <= 20) {
digitalWrite(redLed, HIGH);
for (int i = 0; i < 4; i++) {
tone(buzzPin, 2000); delay(100);
noTone(buzzPin); delay(100);
}
} else {
digitalWrite(redLed, LOW);
}
delay(100);
}
Настройка и тестирование
- Собрать схему на макетной плате.
- Подключить Arduino к ПК, выбрать плату и порт в IDE.
- Загрузить скетч.
- Открыть Serial Monitor (9600) для контроля расстояний.
- Поднести руку/объект к датчику на разные расстояния — проверить срабатывание зон.
Возможные улучшения
- Добавить второй датчик зади для парковки.
- Выводить расстояние на LCD/OLED дисплей.
- Использовать более точный лидар (TF-Luna, VL53L0X) вместо HC-SR04.
- Интегрировать с CAN-шиной авто для автоматического торможения (требует сертификации).
- Логирование событий на SD-карту.
Образовательная ценность
Проект наглядно демонстрирует принцип работы систем ADAS (Advanced Driver Assistance Systems), работу с ультразвуковыми датчиками, таймерами, PWM (tone) и логикой зон безопасности.
Производственный процесс
- Системы обнаружения вторжений (IDS): защита сети с умными алертами
- Система сигнализации с детектором движения на Java и Reactive Blocks — Развертывание на Raspberry Pi и отправка SMS
- Надежная система учета рабочего времени на Arduino с RFID и Python
- Робот для поиска людей на базе Arduino Uno: пошаговая интеграция датчиков
- SERENA: Пользовательская система сигнализации на Arduino Mega 2560 с TFT Touchscreen
- Автоматическая система полива растений на Arduino — уходи в отпуск спокойно
- Система мониторинга лесных пожаров в реальном времени с SMS-уведомлениями
- Умная вентиляция подвала на Arduino: контроль влажности
- Система учёта рабочего времени на RFID, Arduino и Google Таблицах
- Продвинутая система обнаружения падений: Arduino + Windows IoT + Azure Cloud