- Використовувані компоненти
- Ультразвуковий модуль датчика
- Схема та пояснення ультразвукового датчика Arduino
- Код ультразвукового датчика Arduino для вимірювання відстані
Ультразвукові датчики - чудові інструменти для вимірювання відстані та виявлення предметів без реального контакту з фізичним світом. Застосовується у кількох додатках, наприклад, для вимірювання рівня рідини, перевірки близькості та ще більш популярно в автомобілях для допомоги в системах самостійного паркування або проти зіткнення. Раніше ми також будували багато проектів ультразвукових датчиків, таких як виявлення рівня води, ультразвуковий радар тощо. Це ефективний спосіб точного вимірювання невеликих відстаней. У цьому проекті ми використовували ультразвуковий датчик HC-SR04 з Arduino для визначення відстані перешкоди від датчика. Основний принцип ультразвукового вимірювання відстані базується на ECHO. Коли звукові хвилі передаються в навколишньому середовищі, хвилі повертаються назад до початку, як ECHO, після удару по перешкоді. Отже, нам потрібно лише розрахувати час подорожі обох звуків, що означає вихідний час і час повернення до місця початку після нанесення удару по перешкоді. Оскільки швидкість звуку нам відома, після певного розрахунку ми можемо розрахувати відстань. Ми будемо використовувати цю саму техніку для цього проекту вимірювання відстані Arduino, тож давайте почнемо.
Використовувані компоненти
- Arduino Uno або Pro Mini
- Модуль ультразвукового датчика
- РК-дисплей 16x2
- Шкала
- Хлібна дошка
- 9-вольтовий акумулятор
- Підключення проводів
Ультразвуковий модуль датчика
Існує багато типів датчиків відстані Arduino, але в цьому проекті ми використовували HC-SR04 для вимірювання відстані в діапазоні 2 см-400 см з точністю до 3 мм. Модуль датчика складається з ультразвукового передавача, приймача та схеми управління. Принцип роботи ультразвукового датчика такий:
- Сигнал високого рівня надсилається на 10us за допомогою Trigger.
- Модуль автоматично передає вісім сигналів 40 кГц, а потім визначає, чи імпульс приймається чи ні.
- Якщо сигнал прийнятий, то це через високий рівень. Час високої тривалості - це розрив у часі між відправленням та прийомом сигналу.
Відстань = (Час х Швидкість звуку в повітрі (340 м / с)) / 2
Часова діаграма
Модуль працює над природним явищем ECHO звуку. Імпульс надсилається протягом приблизно 10us для спрацьовування модуля. Після чого модуль автоматично посилає 8 циклів ультразвукового сигналу 40 кГц і перевіряє його відлуння. Сигнал після удару перешкодою повертається назад і приймається приймачем. Таким чином, відстань перешкоди від датчика просто обчислюється за формулою, поданою як
Відстань = (час х швидкість) / 2.
Тут ми поділили добуток швидкості та часу на 2, оскільки час - це загальний час, який потрібно було дістатися до перешкоди та повернутися назад. Таким чином, час досягнення перешкоди становить лише половину від усього часу, який потрібно.
Схема та пояснення ультразвукового датчика Arduino
Для вимірювання відстані вище наведена принципова схема ардуїно та ультразвукового датчика. У ланцюгових підключеннях штифти тригера та ехо-сигналу модуля ультразвукового датчика безпосередньо підключені до контактів 18 (A4) та 19 (A5) arduino. РК-дисплей 16x2 підключений до arduino в 4-розрядному режимі. Керуючий штифт RS, RW та En безпосередньо підключені до pin 2, GND та 3. Arduino. А контакт D4-D7 підключений до 4, 5, 6 та 7 Arduino.
Перш за все нам потрібно запустити модуль ультразвукового датчика для передачі сигналу за допомогою arduino, а потім дочекатися отримання ECHO. Arduino зчитує час між спрацьовуванням та отриманим ECHO. Ми знаємо, що швидкість звуку становить близько 340 м / с. так що ми можемо розрахувати відстань за наведеною формулою:
Відстань = (час у дорозі / 2) * швидкість звуку
Де швидкість звуку близько 340 м в секунду.
Для відображення відстані використовується РК-дисплей 16х2.
Дізнайтеся більше про роботу проекту вимірювання відстані в цьому посібнику: Вимірювання відстані за допомогою ультразвукового датчика та мікроконтролера AVR.
Код ультразвукового датчика Arduino для вимірювання відстані
Повний код цього ультразвукового проекту вимірювання відстані наведено внизу цієї сторінки. У коді ми зчитуємо час за допомогою pulseIn (pin). А потім виконайте обчислення та відображайте результат на РК-дисплеї 16x2 за допомогою відповідних функцій.