Категория: Arduino - проекты |
Комментарии: 0
16 января 2016
Датчик расстояния HC-SR04 и Arduino. Готовое решение
Рассмотрим подключение датчика расстояния HC-SR04 к Ардуино. Для подключения использовалась Arduino Mega2556. Датчик HC-SR04 обошелся в 0.99 центов на Ebay. Доставка в Украину заняла всего ровно 2 недели.
Весьма и полноценно начитавшись статей про роботов которые используют данный дальномер HC-SR04 настало время его проверить. Что же в нем такого чудного что ни один робот не обходится без данного датчика? Проверим.
Общий вид дальномера.
С обратной стороны находится обвес сенсоров, детально можно узнать из датащита производителя.
Объяснить работу дальномера очень легко. Если постараться объяснить проще преподавателю из универа, то будет достаточно знать то что одна часть датчика излучает ультразвуковой сигнал в предмет и в этот момент происходит подсчет времени сигнала за которое сигнал будет получен от предмета на вторую часть датчика. Далее время в программе преобразовывается в расстояние. Умножаясь на скорость распространения звука в воздухе 0.034 и деленное на 2. Результат получается в сантиметрах.
Ниже приведен код программы и результат. Про то куда подключать выводы с дальномера HC-SR04 на ардуине описано в коде и не должно вызвать сомнений и трудностей. Если есть вопросы спрашивайте в комментариях. Регистрация не нужна.
- /*
- * Создано специально для сайта 1injener.ru
- * Только проверенные программы
- * Проверялось на MEGA2560, NANO v3
- */
- // Установка пинов для датчика
- const int trigPin = 9;
- const int echoPin = 10;
- // Переменные для данных
- long duration;
- int distance;
- void setup() {
- pinMode(trigPin, OUTPUT); // Установка trigPin как выход
- pinMode(echoPin, INPUT); // Установка echoPin как вход
- Serial.begin(9600); // Установка скрости Serial
- }
- void loop() {
- // Очистка trigPin
- digitalWrite(trigPin, LOW);
- delayMicroseconds(2);
- // Установка trigPin в уровень HIGH на 10 микросекунд
- digitalWrite(trigPin, HIGH);
- delayMicroseconds(10);
- digitalWrite(trigPin, LOW);
- // Читаем с echoPin, возвращаем микросеккунды во время которых считывали
- duration = pulseIn(echoPin, HIGH);
- // Расчитываем расстояние. Взято из мануала производителя датчика
- distance= duration*0.034/2;
- // Выводим расстояние в Serial
- Serial.print("Distanse: ");
- Serial.println(distance);
- delay(1000);
- }
И как обычно результат работы программы. Результат выводится в сантиметрах.
Точность измерения датчика составляет 1 см. Погрешности 1700 сантиметров по линейке не было обнаружено. Дальномер HC-SR04 зарекомендовал себя как точный инструмент.
Так все же. По сути данный датчик HC-SR04 представляет серьезный инструмент. На основе дальности можно составлять карту местности или лабиринта, если быть альтруистом то можно построить и 3д модель основываясь на этот датчик (На нашем ресурсе есть такие заготовки, но сломались сервоприводы, и мы их ожидаем с Ebay). Так же в другой статье, возможно, будет описано пятно измерения в дальности.
Датчик хороший, советуем пользоваться. Применять можно где угодно, и в роботе и в доме, и на машину ставить.
Бузер и Arduino. Звуковая пищалка [Проверенно]
Сервопривод SG90 + Arduino. Подключение [180 градусов]
Как я спал на датчике температуры DHT-11 для Arduino [Опыт 1]
Домашний веб сервер на Аrduino. Температура и Реле [Проверенно]
Новые изобретения инженеров и техников, дизайнеров и обычных людей, все то что может изменить наш мир к лучшему. Новая техника и оружие, спасателей и спецназа. Гаджеты и девайсы, устройства для отдыха и работы. Советы для экономии семейного состояния. Все гениальные изобретения в простом формате! Ведь "Все - Просто!"
Copyright © 2013–2024
Автоматизация и проектирование - 1injener.ru
Copyright © 2013–2024
Автоматизация и проектирование - 1injener.ru