Підключимо у цій статті ультразвукової далекомір-ехолокатор HC-SR04 до Arduino.

Ультразвуковой датчик HC-SR04

Вам знадобиться

  • – Arduino;
  • – ультразвуковий датчик HC-SR04;
  • – з’єднувальні дроти.

Інструкція

1. Дія ультразвукового далекоміра HC-SR04 засноване на принципі ехолокації. Він випромінює звукові імпульси в простір і приймає відбитий від перешкоди сигнал. З часу поширення звукової хвилі до перешкоди і назад визначається відстань до об’єкта.Запуск звукової хвилі починається з подачі позитивного імпульсу тривалістю не менше 10 мікросекунд на ніжку TRIG далекоміра. Як тільки імпульс закінчується, далекомір випромінює у простір перед собою пачку звукових імпульсів частотою 40 кГц. В цей же час запускається алгоритм визначення часу затримки відображеного сигналу, а на ніжці ECHO далекоміра з’являється логічна одиниця. Як тільки датчик уловлює відбитий сигнал, на виведенні ECHO з’являється логічний нуль. По тривалості цього сигналу (“Затримка ехо” на малюнку) визначається відстань до об’єкта.Діапазон вимірювання відстані далекоміра HC-SR04 – до 4 метрів з роздільною здатністю 0,3 див. Кут спостереження – 30 градусів, ефективний кут – 15 градусів. Струм споживання в режимі очікування 2 мА, при роботі – 15 мА.

Принцип действия ультразвукового дальномера HC-SR04

2. Харчування ультразвукового далекоміра здійснюється напругою +5 Ст. Два інших виводу підключаються до будь-яких цифрових портів Arduino, ми підключимо до 11 і 12.

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

3. Тепер напишемо скетч, що визначає відстань до перешкоди і виводить його в послідовний порт. Спочатку задаємо номера висновків TRIG і ECHO – це 12 і 11 піни. Потім оголошуємо тригер як вихід, а ехо – як вхід. Ініціалізуємо послідовний порт на швидкості 9600 бод. У кожному повторенні циклу loop() зчитуємо дистанцію і виводимо в порт.Функція getEchoTiming() генерує імпульс запуску. Вона якраз створює струм 10 мксек імпульс, який є тригером для початку випромінювання далекоміром звукового пакету в простір. Далі вона запам’ятовує час від початку передачі звукової хвилі до приходу луни.Функція getDistance() розраховує дистанцію до об’єкта. Зі шкільного курсу фізики ми пам’ятаємо, що відстань дорівнює швидкість помножити на час: S = V*t. Швидкість звуку в повітрі 340 м/с, час у мікросекундах ми знаємо, це “duratuion”. Щоб отримати час в секундах, потрібно розділити на 1.000.000. Так як звук проходить подвійну відстань до об’єкта і назад – потрібно розділити відстань навпіл. Ось і виходить, що відстань до об’єкта S = 34000 см/сек * duration / 1.000.000 сек / 2 = 1,7 см/с / 100, що ми і написали в скетчі. Операцію множення мікроконтролер виконує швидше, ніж ділення, тому “/ 100” я замінив на еквівалентне “* 0,01”.

Скетч для работы с ультразвуковым эхолокатором HC-SR04

4. Також для роботи з ультразвуковим далекоміром написано безліч бібліотек. Наприклад, ось ця: http://robocraft.ru/files/sensors/Ultrasonic/HC-SR04/ultrasonic-HC-SR04.zip. Установка бібліотеки відбувається стандартно: завантажити, розпакувати в теку libraries, яка знаходиться в папці з Arduino IDE. Після цього можна користуватися бібліотекою.Встановивши бібліотеку, напишемо новий скетч. Результат його роботи той же – в моніторі послідовного порту виводиться відстань до об’єкта в сантиметрах. Якщо у скетчі написати float dist_cm = ultrasonic.Ranging(INC);, то дистанція буде відображатися в дюймах.

Скетч для работы с ультразвуковым эхолокатором, использующий библиотеку

5. Отже, ми з вами підключили до Arduino ультразвукової далекомір HC-SR04 і отримали з нього дані двома різними способами: з використанням спеціальної бібліотеки і без.Перевага використання бібліотеки в тому, що кількість коду значно скорочується і поліпшується читаність програми, вам не доводиться вникати у тонкощі роботи пристрою і ви відразу ж можете його використовувати. Але в цьому криється і недолік: ви гірше розумієте, як працює пристрій і які в ньому відбуваються процеси. У будь-якому випадку, яким способом користуватися – вирішувати тільки вам.

Arduino с подключённым ультразвуковым дальномером HC-SR04

НАПИСАТИ ВІДПОВІДЬ

Please enter your comment!
Please enter your name here