Нам понадобится:
Ссылочка на датчик HC-SR04: http://ali.ski/EhZA7x
Cсылочка на макетную плату: http://ali.ski/rq8wz8
Ссылочка на контактные провода: http://ali.ski/Exjr3
Ссылочка на диоды и резисторы: http://fas.st/KK7DwjyF
Cсылочка на пьезоизлучатель: http://ali.ski/9mNnRi
Ссылочка на Arduino uno: http://ali.ski/gC_mOa
Sensor Shield: http://ali.ski/aDWTuB
Прежде чем приступить к материалу, я Вас попрошу, если нравится то, что я делаю и хотите следить за моей деятельностью, то рекомендую подписаться на мой телеграмм канал: https://t.me/ypavla
Там я публикую новости о вышедших видео, статьях и разные устройства для умного дома и не только показываю.
Спасибо за внимание, теперь продолжим.
В данном примере мы посмотрим как сделать примитивный парктроник.
Принцип работы будет заключаться в следующем:
За дальномер взят датчик HC-SR04 он довольно точный и измеряет на расстоянии до 6 метров, что для наших нужд за глаза.
Так как у нас нет камеры, будем ориентироваться по звуку зумера и по диодам разного цвета, которые будут сигнализировать нам расстояние до объекта.
Датчик HC-SR04 мы будем подключать к 12 и 13 пинам ардуино. Диодов возьмем 6 шт. и подключим их с 2 по 7 пины ардуино. А буззер подключим к 11 пину ардуино.
После подключения всех компонентов необходимо скопировать программный код приведенный ниже и вставить его в программу Arduino IDE и загрузить этот программный код в саму плату Arduino.
#define trigPin 12 // объявление #define echoPin 13 // переменных #define led 2 #define led2 3 #define led3 4 #define led4 5 #define led5 6 #define led6 7 #define buzzer 11 int sound = 250; void setup() { Serial.begin (9600); // настройка pinMode(trigPin, OUTPUT); // портов pinMode(echoPin, INPUT); pinMode(led, OUTPUT); pinMode(led2, OUTPUT); pinMode(led3, OUTPUT); pinMode(led4, OUTPUT); pinMode(led5, OUTPUT); pinMode(led6, OUTPUT); pinMode(buzzer, OUTPUT); } void loop() { long duration, distance; digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); // чтобы начать измерения, delayMicroseconds(10); // необходимо на вход trigPin подать высокий сигнал 5В на 10мкс digitalWrite(trigPin, LOW); duration = pulseIn(echoPin, HIGH); // с выхода echoPin считывается как долго был открыт порт distance = (duration/2) / 29.1; // преобразование полученного параметра в дистанцию if (distance <= 30) { // первое условие, если расстояние меньше либо равно 30, digitalWrite(led, HIGH); // тогда включить первый светодиод sound = 250; } else { digitalWrite(led,LOW); // если условие не выполняется, выключить светодиод } if (distance < 25) { digitalWrite(led2, HIGH); sound = 260; } else { digitalWrite(led2, LOW); } if (distance < 20) { digitalWrite(led3, HIGH); sound = 270; } else { digitalWrite(led3, LOW); } if (distance < 15) { digitalWrite(led4, HIGH); sound = 280; } else { digitalWrite(led4,LOW); } if (distance < 10) { digitalWrite(led5, HIGH); sound = 290; } else { digitalWrite(led5,LOW); } if (distance < 5) { digitalWrite(led6, HIGH); sound = 300; } else { digitalWrite(led6,LOW); } if (distance > 30 || distance <= 0){ Serial.println("***"); noTone(buzzer); } else { Serial.print(distance); // выводит расстояние в сантиметрах Serial.println(" cm"); // в мониторе последовательного порта tone(buzzer, sound); // задает соответствующий тон пьезодинамика } delay(500); // задержка пол сикунды }
Скетч: https://yadi.sk/d/-gc7ifdsvrVRL
Демонстрация работы данной программы можно увидеть в видео приведенном в конце статьи.