Пример 31. Симуляция парковки
Примеры
ПРИМЕРЫ
- Пример 1. Светодиоды
- Пример 2. Подключение кнопки
- Пример 3. Переключатель
- Пример 4. Активный зуммер
- Пример 5. Пассивный зуммер
- Пример 6. Фоторезистор
- Пример 7. RGB-светодиод
- Пример 8. Семисегментный индикатор и 74HC595N
- Пример 9. Четырехразрядный 7-сегментный индикатор
- Пример 10. Светодиодная матрица
- Пример 11. Светодиодная шкала
- Пример 12. ЖК-дисплей
- Пример 13. Джойстик
- Пример 14. Вольтметр
- Пример 15. Термистор
- Пример 16. Модуль DHT11
- Пример 17. Модуль HC-SR04
- Пример 18. Датчик движения HC-SR501
- Пример 19. Матричная клавиатура
- Пример 20. ИК датчик и пульт
- Пример 21. Модуль часов DS-1302
- Пример 22. RFID-модуль RC522
- Пример 23. Сервопривод
- Пример 24. Модуль реле
- Пример 25. Двигатель постоянного тока
- Пример 26. Шаговый двигатель и драйвер ULN2003
- Пример 27. Драйвер двигателей на L298N
- Пример 28. MP3-плеер DFPlayer Mini
- Пример 29. Датчик уровня воды
- Пример 30. Serial Port
- Пример 31. Симуляция парковки
- Пример 32. Датчик температуры DS18B20
- Пример 33. Bluetooth-модуль HC-06
- Пример 34. Плата расширения с дисплеем и кнопками
- Пример 35. Плата расширения для двигателей на L293D
- Пример 36. Ethernet шилд W5100
- Пример 37. GSM/GPRS шилд SIM900
- Пример 38. GPS модуль Ublox NEO-6M
- Пример 39. Модуль считывания отпечатков пальцев
- Пример 40. Шаговый двигатель NEMA17 и драйвер TB6600
В данном примере мы будем использовать уже рассмотренные ранее компоненты: зуммер в примере 4, ЖК-дисплей в примере 12 и ультразвуковой модуль измерения расстояния HC-SR04 в примере 17.
Описание:
В данном примере смоделируем процесс парковки автомобиля с помощью дальномера HC-SR04. Когда расстояние между датчиком расстояния и препятствием больше 5 см и меньше 15 см, зуммер издает звук в средней частоте. Если расстояние меньше 5 см, зуммер будет издавать звук в высокой частоте. Если больше 15 см – в низкой частоте. Между тем, текущая дистанция до препятствия будет отображаться на ЖК-дисплее.
Компоненты:
Схема:
Скетч:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
#include <Wire.h> // библиотека для управления устройствами по I2C #include <LiquidCrystal_I2C.h> // подключаем библиотеку для LCD 1602 const int TrigPin = 2; // Trig подключаем к 2 выводу const int EchoPin = 3; // Echo подключаем к 3 выводу const int buzzer = 6; // Зуммер подключаем к 6 выводу float cm; // расстояние до препятствия в см LiquidCrystal_I2C lcd(0x27,16,2); // присваиваем имя lcd для дисплея 16х2 void setup() { lcd.init(); // инициализация LCD дисплея lcd.backlight(); // включение подсветки дисплея Serial.begin(9600); pinMode(TrigPin, OUTPUT); pinMode(EchoPin, INPUT); pinMode(buzzer, OUTPUT); lcd.begin(16,2); // инициализация lcd lcd.print("AM: Example 31"); // вывод на дисплей надписи delay(2000); // ожидание 2с lcd.clear(); // очистка экрана } void loop() { digitalWrite(TrigPin,LOW); delayMicroseconds(2); digitalWrite(TrigPin,HIGH); delayMicroseconds(10); digitalWrite(TrigPin,LOW); cm = pulseIn(EchoPin,HIGH)/58.0; cm = (int(cm * 100.0))/100.0; if(cm < 0) { cm = 0; } lcd.setCursor(0,0); lcd.print("Distance:"); lcd.setCursor(0,1); lcd.print(" "); lcd.setCursor(3,1); lcd.print(cm); lcd.setCursor(9,1); lcd.print("cm"); delay(100); // если расстояние от 5 до 15 см if(cm < 15 & cm >= 5) { digitalWrite(buzzer, HIGH); delay(100); digitalWrite(buzzer, LOW); } // если расстояние от 0 до 5 см else if(cm < 5 & cm >= 0) { digitalWrite(buzzer, HIGH); } // если расстояние больше 15 см else { digitalWrite(buzzer, HIGH); delay(100); digitalWrite(buzzer, LOW); delay(1000); } } |