Pull to refresh

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

Reading time 2 min
Views 27K
В этой публикации пойдёт речь о создании простого парктроника на базе 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 я получил с этого сайта
Tags:
Hubs:
+6
Comments 21
Comments Comments 21

Articles