Наши контакты: +380958663605

inhelp@i.ua

Подключение ультразвукового дальномера HC-SR04 к Arduino

Подключение HC-SR04

Ультразвуковой дальномер HC-SR04 предназначен для измерения расстояния от устройства до объекта. Сенсор дальномера работает по принципу сонара, а точнее — посылает ультразвуковой пучок и по задержке отражённого от объекта сигнала определяет расстояние до цели.

дальномер hc-sr04

hc-sr04 (фронт)

Поскольку в основе работы устройства используется ультразвук, сонар плохо подходит для определения расстояния до звукопоглощающих объектов. Поверхность объекта должна быть ровной и гладкой для идеального измерения расстояния.

Дальномер hc-sr04

hc-sr04 (тыл)

Ссылка для покупки дальномера HC-SR04

hc-sr04

Заказать ультразвуковой дальномер HC-SR04

 

Особенности ультразвукового дальномера HC-SR04

  • Простота в использовании и 4-контактное подключение.
  • Диапазон измерения: от 2 см до 400 см.
  • Точность измерения: ± 1 см (при максимальной дальности ± 3 см).
  • Угол измерения: 15º.
  • Ультразвуковой диапазон работы на частоте 40 кГц.
  • Рабочее напряжение 4,8 В до 5,5 В (± 0.2В макс).
  • Диапазон рабочих температур: 0 ° С до 60 ° С (± 10%).

Подключение ультразвукового дальномера HC-SR04

Схема подключения дальномера HC-SR04

Схема подключения HC-SR04

Vcc —–      +5v  (+5 вольт)
GND —–  GND (земля)
Trig —–   pin 8
Echo —–  pin 9

Ну а теперь после удачного подключения ультразвуковой дальномера HC-SR04 к Arduino разберемся с программной частью. Для начала мы используем простой скетч, который поможет нам определить расстояние до объекта в сантиметрах.

После загрузки данного скетча открываем Serial Monitor и любуемся результатом…

Измерение расстояния в см

Измерение расстояния в см

Слегка переделав этот скетч мы также можем измерить расстояние в дюймах и миллиметрах (код скетча представлен ниже).

Снова открываем монитор порта, и смотрим…

Измерение расстояния в см, дюймах и мм

Измерение расстояния в см, дюймах и мм

Все работает, но мы разобрались только с скетчем который работает без библиотеки, да и кода слегка многовато строчек. Есть пользователи которые любят пользоваться библиотеками и сейчас мы тоже воспользуемся библиотекой для ультразвуковых дальномеров 

Ultrasonic
Ultrasonic
Ultrasonic.rar
1.0 KiB
5847 Downloads
Детали

Arduino библиотека для работы с ультразвуковыми дальномерами HC-05

Категория:Arduino библиотеки
Лицензия:Freeware
Дата:02.04.2014

Для начала скачайте и установите библиотеку, а потом запустите простенький скетч

И откройте монитор порта

Измерение расстояния

Измерение расстояния

Как мы видим, дальномер по прежнему все измеряет идеально. Хочу заметить что скетчи с использованием библиотеки занимает 3586 байт а скетч без библиотеки занимает 3450 байт. Какими скетчами пользоваться Вам — это Ваше решение… Ну а теперь в качестве бонуса я немного переделаю скетч и отображу данные ультразвукового дальномера на OLED I2C дисплее в дюймах ( используется библиотека Ultrasonic).

Подключение hc-sr04 к ардуино

Подключение hc-sr04 к ардуино

Более подробно об подключении OLED I2C дисплея к ардуино читайте в статье Подключение OLED l2C дисплея к Arduino UNO

Ну а теперь загрузим скетч

Как видим все прекрасно работает

HC-SR 04 и OLED дисплей

HC-SR 04 и OLED дисплей

На этом все, до скорой встречи…

9 responses on “Подключение ультразвукового дальномера HC-SR04 к Arduino

  1. Слепому нужна звуковая индикация

    • гена:

      Как подключить выход локатора к шим портам ардуина для аудио генерации переменной частоты тона в завимимости от расстоянияг

    • Андрей:

      Я для тупого удар электрошокером?

  2. Антон:

    Здравствуйте. Подскажите пожалуйста, что делать, если сонар постоянно выводит 0 сантиметров?

  3. Maxym:

    A kak ismeryt skorost s pomoschyu etogo sensora?
    kak postschitat vremy mejdu izmereniyami?

  4. Необходим скетч! Есть два hc-sr04, реле, и сам ардуино мега. Необходимо что бы когда срабатывает один из датчиков, при расстоянии 80см реле замыкалось на 635(для теста исправлю на 3 сек =)) секунд, а датчики продолжали сканировать, если датчик срабатывает еще раз, а таймер в 635 секунд не закончился, то отсчет должен пойти заново. Очень нужно. Но не понимаю как сделать.
    пот пример скетча, не работающего((

    #include

    // Trig — first, Echo — second
    Ultrasonic us_2(13, 12);
    Ultrasonic us_1(11, 10);
    int rele = 8;
    int timer_rele = 2;
    int position = 0;

    void setup()
    {
    Serial.begin(9600); // start the serial port
    }

    void loop()
    {
    float d_1 = us_1.Ranging(CM); // get distance
    float d_2 = us_2.Ranging(CM); // get distance
    Serial.print(d_1);
    Serial.print(«cm, «);
    Serial.print(d_2);
    Serial.print(«cm, «);// print the distance
    if (d_2<15)
    {
    digitalWrite(rele, HIGH); // Светодиод горит
    }
    else
    {
    digitalWrite(rele, LOW); // иначе не горит
    }
    delay(500); // arbitrary wait time.
    }

  5. Александр:

    Добрый день. У звука с частотой 40 кГц время одной волны 25 мкс? Если так, то почему сигнал на trig подается всего на 10 мкс?

    • Артем Василенко:

      На trig подается запускающий импульс 10 мкс (для электроники, а не на УЗ-датчики), после чего дальномер выдает ультразвуковой импульс длительностью 200 мкс (8 периодов 40 кГц).

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

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

пять × один =