Парктроник на Arduino

от автора

В этой публикации пойдёт речь о создании простого парктроника на базе Arduino.

Немного теории. Парктроник или Парковочный радар это устройство предназначенное для отслеживания расстояния между автомобилем и каким — то объектом, как правило парктроники устанавливают с задней части машины.

Даже несмотря на цену ~1936 рублей я решил смастерить свой вариант этого устройства. Начать я решил с малого, и создал наверное самый простой парктроник из всех возможных.

И так от теории к практике, для сборки устройства нам понадобится, 3 светодиода (я взял разных цветов, так проще и нагляднее); Пьезоизлучатель с генератором*; Ультразвуковой дальномер HC-SR04; Резистор на 220 ом и мощностью 0.25 ватта (хотя уместны и другие, большая мощность тут не к чему) и Arduino любой модели.

Сборка.

  1. GND (-) светодиодов и пьезоизлучателя соеденяем вместе и подключаем в пин GND через резистор.
  2. VCC (+) у дальномера соеденяем с пином +5V Arduino, Trig в 10, Echo в 11, а куда GND думаю уже ясно.

Хорошо, схему мы собрали, что дальше? А дальше пишем программу, для тех кто не знает Arduino программируется на ЯП Wiring, это упрощённый C++, в качестве IDE проще всего использовать Arduino IDE.

Вот программа:

int trigPin = 10; // номер пина Trig int echoPin = 11; // номер пина Echo int rLed = 12; // номер пина к которому подключён красный LED int yLed = 8; // номер пина к которому подключён жёлтый LED int bLed = 9; // номер пина к которому подключён синий LED int buzz = 7; // номер пина к которому подключён пьезоизлучатель  void setup() {   // Настраиваем пины   pinMode(trigPin, OUTPUT);    pinMode(echoPin, INPUT);   pinMode(bLed, OUTPUT);    pinMode(yLed, OUTPUT);    pinMode(rLed, OUTPUT);    pinMode(buzz, OUTPUT);  }  void loop() {   int duration, distance;   // для большей точности установим значение LOW на пине Trig    digitalWrite(trigPin, LOW);    delayMicroseconds(2);    // Теперь установим высокий уровень на пине Trig   digitalWrite(trigPin, HIGH);   // Подождем 10 μs    delayMicroseconds(10);    digitalWrite(trigPin, LOW);    // Узнаем длительность высокого сигнала на пине Echo   duration = pulseIn(echoPin, HIGH);    // Рассчитаем расстояние   distance = duration / 58;    if (distance > 20) { // Если расстояние > 20 см то     digitalWrite(bLed, HIGH); // Включаем только синий LED     digitalWrite(yLed, LOW);     digitalWrite(rLed, LOW);     digitalWrite(buzz, LOW);   }    else if (distance <= 20 && distance > 10) { // Расстояние от      // 20 до 10      digitalWrite(yLed, HIGH); // Включаем только жёлтый LED     digitalWrite(bLed, LOW);     digitalWrite(rLed, LOW);     digitalWrite(buzz, LOW);   }    else if (distance < 10) { // Расстояние < 10     digitalWrite(rLed, HIGH); // Включаем только красный LED     digitalWrite(yLed, LOW);     digitalWrite(bLed, LOW);     digitalWrite(buzz, HIGH); // И пьезоизлучатель   }      delay(100); // Ждём 100 милисекунд  } 

Я не собирал готовое устройство потому что сейчас работаю на новой моделью ПОН-2 с четырёхразрядным семисегментным индикатором.

Немного фото, видео, и картинок:

* Пьезозлучатель с генератором выглядит примерно так:

image

Шаг 1:

Шаг 1

Шаг 2:

Шаг 2

Работа устройства в картинках:

image

image

image

Кусок кода программы и информацию о дальномере HC-SR04 я получил с этого сайта


ссылка на оригинал статьи https://habr.com/post/421747/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *