norr@manorshi.com         +86-519-89185720
1
Центр новин

Як використовувати ультразвуковий датчик з Arduino?

Перегляди: 164     Автор: Грейс Час публікації: 26.07.2021 Походження: Сайт

кнопка спільного доступу до Facebook
кнопка спільного доступу до Twitter
кнопка спільного доступу до лінії
кнопка спільного доступу до wechat
кнопка спільного доступу в Linkedin
кнопка спільного доступу на pinterest
кнопка спільного доступу до WhatsApp
кнопка обміну kakao
кнопка обміну snapchat
кнопка обміну телеграмою
поділитися цією кнопкою спільного доступу

Як використовувати ультразвуковий датчик з Arduino: посібник HC-SR04

The Ультразвуковий датчик HC-SR04 є одним з найпопулярніших модулів вимірювання відстані для проектів Arduino. Він широко використовується в роботах для уникнення перешкод, датчиках паркування, системі визначення рівня, розумних сміттєвих баках, вимірювачах відстані та інших програмах безконтактного вимірювання.

Модуль випромінює ультразвукові хвилі 40 кГц через передавач. Коли звукова хвиля зустрічається з предметом, вона відбивається назад до приймача. Вимірюючи час відлуння та використовуючи швидкість звуку, Arduino може обчислити відстань між датчиком і об’єктом.

Модуль ультразвукового датчика HC-SR04 для вимірювання відстані Arduino

Основні технічні параметри HC-SR04

Параметр Значення
Типова робоча напруга 5 В постійного струму
Статичний робочий струм Менше 5 мА на деяких версіях модуля
Робоча частота Ультразвукова хвиля 40 кГц
Відстань виявлення Загальний діапазон: від 2 см до 400 см; деякі версії з коригуванням посилення можуть підтримувати довший діапазон.
Кут виявлення Зазвичай в межах 15 градусів; деякі версії з вищим посиленням можуть досягати приблизно 30 градусів.
Точність Приблизно до 0,3 см за відповідних умов тестування
Сліпа зона Мінімальна відстань для вимірювання приблизно 2 см

Опис контакту HC-SR04

Ультразвуковий модуль HC-SR04 має чотири контакти: VCC, TRIG, ECHO і GND. Arduino надсилає короткий імпульс запуску на висновок TRIG, а потім зчитує зворотний імпульс із виводу ECHO.

Штифт HC-SR04 Підключення Arduino функція
VCC Блок живлення ультразвукового модуля.
ТРИГ Цифровий контакт 9 Тригерний вхід. Arduino застосовує імпульс 10 мкс, щоб почати визначення дальності.
ЛУНА Цифровий контакт 10 Ехо вихід. Arduino зчитує ширину імпульсу для розрахунку відстані.
GND GND Заземлення.

Цоколька ультразвукового датчика HC-SR04 VCC TRIG ECHO GND

Принцип роботи ультразвукового датчика HC-SR04

HC-SR04 працює за допомогою вимірювання часу прольоту. Arduino надсилає тригерний сигнал високого рівня тривалістю щонайменше 10 мікросекунд на висновок TRIG. Потім модуль автоматично надсилає вісім ультразвукових імпульсів із частотою 40 кГц і чекає відбитої луни.

Коли виявляється відбитий ультразвуковий сигнал, висновок ECHO видає імпульс високого рівня. Тривалість цього імпульсу є часом проходження ультразвукової хвилі туди й назад.

Відстань = час відлуння високого рівня × швидкість звуку / 2

У коді Arduino загальна спрощена формула така:

Відстань у см = тривалість × 0,0343 / 2

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

Часова діаграма ультразвукового модуля HC-SR04

Процес синхронізації простий: Arduino ненадовго підтримує низький рівень TRIG, надсилає високий імпульс 10 мкс, а потім повертає TRIG на низький рівень. HC-SR04 надсилає ультразвуковий сплеск і встановлює високий рівень ECHO, доки відбитий сигнал не повернеться або поки не закінчиться вимірювання.

Щоб уникнути нестабільності показань, залишайте невелику затримку між вимірюваннями. Зазвичай використовується цикл вимірювання приблизно 60 мс, щоб попереднє ультразвукове відлуння встигло зникнути до наступного запуску.

Основи програмування Arduino: функція pulseIn

Функція Arduino pulseIn() використовується для вимірювання того, як довго цифровий контакт залишається ВИСОКИМ або НИЗЬКИМ. Для HC-SR04 Arduino використовує pulseIn(echoPin, HIGH) для зчитування ширини імпульсу високого рівня з виводу ECHO.

Синтаксис Значення
pulseIn(пін, значення) Зчитує тривалість імпульсу HIGH або LOW.
pulseIn(pin, значення, тайм-аут) Зчитує імпульс із значенням тайм-ауту в мікросекундах.

Рекомендовано використовувати тайм-аут. Якщо відлуння не повертається, функція може припинити очікування та повернути 0 замість блокування програми на надто довгий час.

Плата Arduino використовується з ультразвуковим датчиком відстані HC-SR04

Як підключити ультразвуковий датчик HC-SR04 до Arduino

Електропроводка проста. Підключіть VCC до 5 В, GND до GND, TRIG до контакту цифрового виходу Arduino та ECHO до контакту цифрового входу Arduino. У наступному прикладі використовуються Arduino Uno, TRIG на контакті 9 і ECHO на контакті 10.

Схема підключення макетної плати Arduino Uno для ультразвукового датчика HC-SR04

Код ультразвукового датчика Arduino HC-SR04

Наступна типова програма Arduino надсилає імпульс запуску 10 мкс, зчитує ширину імпульсу ECHO, обчислює відстань у сантиметрах і друкує результат на моніторі послідовного порту.

const int trigPin = 9; const int echoPin = 10; велика тривалість; float distanceCm; void setup() { pinMode(trigPin, OUTPUT);   pinMode(echoPin, INPUT);   Serial.begin(9600); } void loop() { digitalWrite(trigPin, LOW);   delayMicroseconds(2);   digitalWrite(trigPin, HIGH);   delayMicroseconds(10);   digitalWrite(trigPin, LOW);   тривалість = pulseIn(echoPin, HIGH, 30000);   if (тривалість == 0) { Serial.println('Поза діапазоном');   } else { distanceCm = тривалість * 0,0343 / 2;     Serial.print('Відстань: ');     Serial.print(distanceCm);     Serial.println(' cm');   } затримка (60); }

Якщо ви бачите значення відстані на моніторі послідовного порту, ультразвуковий датчик HC-SR04 і проводка Arduino працюють правильно. Потім ви можете використовувати дані про відстань для виявлення перешкод, контролю руху робота, автоматичних дверей, нагадувань про паркування або проектів рівня рідини.

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

Як підвищити точність вимірювання HC-SR04

  • Тримайте вимірюваний об’єкт у рекомендованому діапазоні відстані та поза сліпою зоною 2 см.

  • Для кращого відбиття ультразвуку використовуйте плоску тверду поверхню мішені.

  • Уникайте вимірювання м’яких, кутових, пористих або звукопоглинальних матеріалів.

  • Використовуйте стабільне джерело живлення 5 В і тримайте проводку короткою та надійною.

  • Додайте тайм-аут до pulseIn(), щоб запобігти тривалому блокуванню, коли відлуння не повертається.

  • Усередніть або відфільтруйте медіану кількох показань, щоб зменшити шум.

  • Для більшої точності компенсуйте температуру, оскільки швидкість звуку змінюється залежно від температури повітря.

Загальні застосування проектів ультразвукових датчиків Arduino

застосування Як використовується HC-SR04
Робот для уникнення перешкод Виявляє предмети поблизу та допомагає роботу змінити напрямок.
Датчик дистанції паркування Вимірює відстань між транспортним засобом і перешкодою.
Виявлення рівня рідини Безконтактно вимірює відстань від датчика до поверхні рідини.
Розумний бак для сміття Виявляє руку або предмет поблизу та запускає автоматичне відкриття кришки.

Резюме

Щоб використовувати ультразвуковий датчик HC-SR04 з Arduino, підключіть VCC до 5 В, GND до GND, TRIG до контакту цифрового виходу та ECHO до контакту цифрового входу. Надішліть тригерний імпульс 10 мкс, зчитайте тривалість відлуння за допомогою pulseIn() і обчисліть відстань за формулою часу прольоту.

HC-SR04 недорогий, простий у використанні та підходить для багатьох проектів вимірювання відстані Arduino. Щоб отримати найкращі результати, зверніть увагу на цільову поверхню, кут вимірювання, сліпу зону, стабільну потужність, обробку тайм-ауту та вплив температури.

Поширені запитання про ультразвуковий датчик Arduino HC-SR04

Як ультразвуковий датчик HC-SR04 працює з Arduino?

Arduino надсилає імпульс 10 мкс на висновок TRIG. HC-SR04 випромінює вісім ультразвукових імпульсів з частотою 40 кГц і встановлює високий рівень ECHO, доки відбитий звук не повернеться. Arduino вимірює цей час імпульсу та обчислює відстань.

Яка формула відстані для проектів HC-SR04 Arduino?

Формула така: відстань = тривалість × швидкість звуку / 2. У сантиметрах поширеною формулою Arduino є відстань Cm = тривалість × 0,0343 / 2, де тривалість вимірюється в мікросекундах.

Чому ми ділимо результат ультразвукового датчика на 2?

Виміряний час відлуння – це час проходження від датчика до об’єкта та назад до датчика. Ділення на 2 дає односторонню відстань між датчиком і об’єктом.

Які контакти Arduino слід використовувати для TRIG і ECHO?

Ви можете використовувати більшість цифрових контактів Arduino. У багатьох прикладах TRIG підключається до цифрового контакту 9, а ECHO – до цифрового контакту 10. Код має збігатися з контактами, які використовуються у вашій проводці.

Чому мій ультразвуковий датчик HC-SR04 повертає нуль або випадкові значення?

Поширені причини включають ослаблену проводку, нестабільне живлення 5 В, неправильні номери контактів TRIG або ECHO, відсутність об’єктів у діапазоні, кутові поверхні цілей, м’які матеріали, заблоковані головки датчиків або відсутність часу очікування у функції pulseIn().

Що таке сліпа зона ультразвукового датчика HC-SR04?

Сліпа зона — це мінімальна відстань, на якій модуль не може надійно вимірювати. Для HC-SR04 сліпа зона зазвичай становить близько 2 см. Об’єкти ближче, ніж це, можуть давати нестабільні показання.

Чи може HC-SR04 вимірювати рівень води за допомогою Arduino?

Так, HC-SR04 можна використовувати для простих безконтактних проектів рівня води, якщо датчик захищений від вологи та встановлений над поверхнею рідини. Для вологих, зовнішніх або промислових резервуарів рекомендується водонепроникний ультразвуковий датчик.

Як я можу зробити показання ультразвукового датчика Arduino більш стабільними?

Використовуйте стабільне джерело живлення, тримайте датчик перпендикулярно до цілі, уникайте м’яких або кутових поверхонь, додайте тайм-аут pulseIn, зробіть кілька показань, використовуйте медіанну фільтрацію та дайте приблизно 60 мс між вимірюваннями.

Зміст