Ардуїно використання двох ультразвукових hc sr04. Ардуїно: ультразвуковий далекомір HC-SR04

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

1. Принцип дії

На цей раз ми розберемо роботу одного з найпопулярніших датчиків – ультразвукового (УЗ) далекоміра. Існує багато різних модифікацій подібних пристроїв, але вони працюють за принципом вимірювання часу проходження відбитого звуку. Тобто датчик відправляє звуковий сигналу заданому напрямку, потім ловить відбите відлуння та обчислює час польоту звуку від датчика до перешкоди та назад. З шкільного курсуФізики ми знаємо, що швидкість звуку в деякому середовищі величина стала, але залежить від щільності середовища. Знаючи швидкість звуку повітря і час польоту звуку до мети, ми можемо розрахувати пройдене звуком відстань по формуле: s = v * tде v – швидкість звуку в м/с, а t – час у секундах. Швидкість звуку повітря, до речі, дорівнює 340.29 м/с. Щоб впоратися зі своїм завданням, далекомір має дві важливі конструктивні особливості. По-перше, щоб звук добре відбивався від перешкод, датчик випромінює ультразвук із частотою 40 кГц. Для цього датчик має п'єзокерамічний випромінювач, який здатний генерувати звук такої високої частоти. По-друге, випромінювач влаштований таким чином, що звук поширюється не на всі боки (як це буває у звичайних динаміків), а у вузькому напрямку. На малюнку представлена ​​діаграма спрямованості типового УЗ далекоміра. Як видно на діаграмі, кут огляду найпростішого УЗ далекоміра становить приблизно 50-60 градусів. Для типового варіанта використання, коли датчик детектує перешкоди перед собою такий кут огляду цілком придатний. Ультразвук може виявити навіть ніжку стільця, тоді як лазерний далекомір, наприклад, може її не помітити. Якщо ж ми вирішимо сканувати навколишній простір, обертаючи далекомір по колу як радар, УЗ далекомір дасть нам дуже неточну і галасливу картину. Для таких цілей краще використовувати якраз лазерний далекомір. Також слід відзначити два серйозні недоліки УЗ далекоміра. Перший полягає в тому, що поверхні, що мають пористу структуру, добре поглинають ультразвук, і датчик не може виміряти відстань до них. Наприклад, якщо ми задумаємо виміряти відстань від мультикоптера до поверхні поля з високою травою, То швидше за все отримаємо дуже нечіткі дані. Такі ж проблеми на нас чекають при вимірі дистанції до стіни покритої поролоном. Другий недолік пов'язаний зі швидкістю звукової хвилі. Ця швидкість недостатньо висока, щоб зробити процес вимірювання більш частим. Допустимо, перед роботом є перешкода на видаленні 4 метри. Щоб звук злітав туди й назад, потрібно цілих 24 мс. Слід 7 разів відміряти, перш ніж ставити УЗ далекомір на літаючих роботів.

2. Ультразвуковий далекомір HC-SR04

У цьому уроці ми будемо працювати з датчиком HC-SR04 та контролером Ардуїно Уно. Цей популярний далекомір вміє вимірювати відстань від 1-2 см до 4-6 метрів. При цьому, точність вимірювання становить 0.5 - 1 см. Зустрічаються різні версії одного і того ж HC-SR04. Одні працюють краще, інші гірші. Відрізнити їх можна за малюнком плати на зворотній стороні. Версія, яка працює добре виглядає так:

А ось версія, яка може давати збої:

3. Підключення HC-SR04

Датчик HC-SR04 має чотири виводи. Крім землі (Gnd) та живлення (Vcc) ще є Trig та Echo. Обидва ці висновки цифрові, так що підключаємо до будь-яких висновків Ардуїно Уно:
HC-SR04 GND VCC Trig Echo
Arduino Uno GND +5V 3 2
Принципова схема пристрою Зовнішній вигляд макету

4. Програма

Отже, спробуємо наказати датчику відправити ультразвуковий імпульс, що зондує, а потім зафіксуємо його повернення. Подивимося як виглядає часова діаграма роботи HC-SR04.
На діаграмі видно, що для початку виміру нам необхідно згенерувати на висновку Trigпозитивний імпульс завдовжки 10 мкс. Після цього датчик випустить серію з 8 імпульсів і підніме рівень на виведенні Echo, перейшовши у режим очікування відбитого сигналу. Як тільки далекомір відчує, що звук повернувся, він завершить позитивний імпульс на Echo. Виходить, що нам потрібно зробити лише дві речі: створити імпульс на Trig для початку вимірювання, і заміряти довжину імпульсу на Echo, щоб потім обчислити дистанцію за нехитрою формулою. Робимо. int echoPin = 2; int trigPin = 3; void setup() ( Serial.begin (9600); pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); ) void loop() ( int duration, cm; digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite (trigPin, HIGH);delayMicroseconds(10); (100); pulseInзаміряє довжину позитивного імпульсуна нозі echoPin у мікросекундах. У програмі записуємо час польоту звуку в змінну duration. Як ми вже з'ясували раніше, нам потрібно помножити час на швидкість звуку: s = тривалість * v = тривалість * 340 м/сПерекладаємо швидкість звуку з м/с см/мкс: s = тривалість * 0.034 м/мксДля зручності перетворюємо десятковий дрібу звичайну: s = тривалість * 1/29 = тривалість / 29А тепер пригадаємо, що звук пройшов дві шукані відстані: до мети і назад. Поділимо все на 2: s = тривалість / 58Тепер ми знаємо звідки взялося число 58 у програмі! Завантажуємо програму на Ардуїно Уно та відкриваємо монітор послідовного порту. Спробуємо тепер наводити датчик на різні предмети та дивитися в моніторі розраховану відстань.

Завдання

Тепер коли ми вміємо обчислювати відстань за допомогою далекоміра, зробимо кілька корисних пристроїв.
  1. Будівельний далекомір. Програма кожні 100мс вимірює відстань за допомогою далекоміра та виводить результат на символьний РК-дисплей. Для зручності отриманий пристрій можна помістити у невеликий корпус та запитати від батарейок.
  2. Ультразвукова тростина. Напишемо програму, яка «пищатиме» зумером з різною частотою, залежно від виміряної відстані. Наприклад, якщо відстань до перешкоди більше трьох метрів – зумер видає звук раз на пів секунди. На відстані 1 метр — раз на 100мс. Менш 10см - пищить постійно.

Висновок

Ультразвуковий далекомір - простий у використанні, дешевий і точний датчик, який відмінно виконує свою функцію на тисячах роботів. Як ми з'ясували з уроку, датчик має недоліки, які слід враховувати при будівництві робота. Хорошим рішеннямможе стати спільне використання ультразвукового далекоміра в парі з лазерним. У такому разі вони нівелюватимуть недоліки один одного.

терморегулятор W1209 DC, Релейний модуль, датчик руху HC-SR501, Модуль Wi-Fi ESP8266-12E, датчик руху HC-SR501, Блок живлення, Мікросхема контролера колекторного електродвигуна, ІЧ-пульт дистанційного керування, Радіомодуль NRF24L01, OKI 120A2, SD Card Module, Мікросхема контролера колекторного електродвигуна, Модем M590E GSM GPRS, Годинник реального часу DS 3231/DS 1307, Mini 360 на схемі LM2596, L2 Інфрачервоні датчикивідстані, Годинник реального часу, HC-SR501, блок живлення Mini 360 на схемі LM2596, Контролер L298N, HC-SR501, GSM GPRS, Модем M590E GSM GPRS, Годинник реального часу DS 3231/DS 1307, Модуль Wi-Fi ESP Card Module, Блок живлення, Mini 360, L293D, блок живлення Mini 360 на схемі LM2596, Радіомодуль, ІЧ-пульт дистанційного керування, ІЧ-пульт, Ethernet shield, Мікросхема контролера колекторного електродвигуна, Мікросхема контролера колекторного електродвигуна, SD Card Module, Радіомодуль NRF24L01, двигун OKI, L293D, Кроковий двигун, Блок живлення, L293D, блок живлення Mini 360 на схемі LM2596, Карта пам'яті SD, Ethernet shield, датчик руху HC-SR501, Модуль Wi-Fi ESP8266-12E, Кроковий двигун OKI 120A2, Кроковий двигун,

Ультразвукові далекоміри HC-SR04

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



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

Характеристики ультразвукового далекоміра HC-SR04:

Вимірюваний діапазон - від 2-х до 500 см;

Точність – 0,3 см;

Кут огляду -< 15 °;

Напруга живлення – 5 В.

Датчик має 4 виводи стандарту 2,54 мм:

VCC – харчування +5 В;

Trig(T) - виведення вхідного сигналу;

Echo (R) - виведення вихідного сигналу;

GND – земля.

Перевірка роботи датчика

Залити програму

Sketch code

/* Скетч з бібліотекою NewPing, яка може використовуватись і для датчика HC-SR04

наведеного тут SRF06 і дозволяє підключати ультразвукові датчики

за допомогою одного піна на Arduino. Можна додатково підключити конденсатор на 0.1 мкФ до пін Ехо та Тригер на датчику.*/

#include

#define TRIGGER_PIN 12 / / Arduino pin необхідний trigger pin на ultrasonic sensor.
#define ECHO_PIN 11 / / Arduino pin необхідний echo pin на ultrasonic sensor.
#define MAX_DISTANCE 200 // Максимальна відстань, яку ми контролюємо (в сантиметрах). Максимальна відстань подібних датчиківзнаходиться у діапазоні 400-500см.

NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // Налаштування пінів та максимальної відстані

void setup() (
Serial.begin(115200); // Відкриття серійного протоколу з частотою передачі 115200 біт/сек.
}

void loop() (
delay(500); // Затримка 500 мілісекунд між генерацією хвиль. 29 мілісекунд – мінімально допустима затримка.
unsigned int uS = sonar.ping(); // Генерація сигналу, отримання часу мікросекундах (uS).
Serial.print("Ping:");
Serial.print(us/US_ROUNDTRIP_CM); // Перетворення часу на відстань та відображення результату (0 відповідає виходу за допустимий діапазон)
Serial.println("cm");
}

Відкрити монітор порту

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

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

Послідовність дій така:

  1. Подаємо імпульс тривалістю 10 мкс на виведення Trig.
  2. Всередині далекоміра вхідний імпульс перетворюється на 8 імпульсів частотою 40 кГц і посилається вперед через випромінювач T .
  3. Дійшовши до перешкоди, надіслані імпульси відбиваються і приймаються приймачем R , в результаті отримуємо вихідний сигнал на виведенні Echo.
  4. Безпосередньо на стороні контролера переводимо отриманий сигнал у відстань за формулою:

Ширина імпульсу (мкс)/58 = дистанція (см);

Ширина імпульсу (мкс)/148 = дистанція (дюйм).

Бібліотека Ultrasonic

Для роботи Arduinoз датчиком HC-SR04 є готова бібліотека – Ultrasonic. Конструктор Ultrasonic приймає два параметри: номери пінів, до яких підключені висновки Trig та Echo відповідно:

Ultrasonic ultrasonic(12,13);

тут виведення датчика Trig підключений до 12-го піну Arduino, а Echo - до 13-го.

Бібліотека має один метод Ranging, як параметр якого задається, у що перераховувати відстань до об'єкта: сантиметри або дюйми:

#define CM 1

#define INC 0

Таким чином рядок ultrasonic.Randing (CM) поверне відстань до об'єкта (типу long) в сантиметрах.

Файли бібліотеки ви можете знайти в папці libraries/Ultrasonic електронного архіву, що супроводжує книгу. Для використання бібліотеки у своїх проектах помістимо її до папки libraries каталогу установки Arduino.

Скетч, що видає в послідовний порт відстань до об'єкта сантиметрах, представлений у прикладі.

Sketch code

#include "Ultrasonic.h"

// sensor connected to:

// Trig - 12, Echo - 13 Ultrasonic ultrasonic (12, 13);

Serial.begin(9600);

float dist_cm = ultrasonic.Ranging(CM); Serial.println(dist_cm);

Підключення датчика HC-SR04 до Arduino

Ультразвуковий датчик HC-SR04 визначає відстань і виводить отримані значення у вікно серійного монітора середовище Arduino IDE.

Невелика примітка: вільному доступііснує відмінна бібліотека NewPing, яка ще більше полегшує використання HC-SR04, приклад її використання також наведено нижче.// Генеруємо короткий LOW імпульс, щоб забезпечити чистий імпульс HIGH:

digitalWrite(trigPin, LOW);

delayMicroseconds(5);

digitalWrite(trigPin, HIGH);

delayMicroseconds(10);

digitalWrite(trigPin, LOW);

// Зчитуємо дані з ультразвукового датчика: значення HIGH, яке

// залежить від тривалості (у мікросекундах) між відправкою

// акустичної хвилі та її зворотному прийомі на ехолокаторі.

pinMode(echoPin, INPUT);

duration = pulseIn(echoPin, HIGH);

// Перетворення часу у відстань

cm = (duration/2)/29.1;

inches=(duration/2)/74;

Serial.print(inches);

Serial.print("in, ");

Serial.print(cm);

Serial.print("cm");

Serial.println();

Sketch code

#include

#define TRIGGER_PIN 12

#define ECHO_PIN 11

#define MAX_DISTANCE 200

NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // Налаштування пінів та максимальної відстані.

Serial.begin(9600);

unsigned int uS = sonar.ping_cm();

Serial.print(uS);

Serial.println("cm");

Якщо HC-SR04 не зчитує сигнал відлуння, вихідний сигнал ніколи не перетворюється на LOW. Датчики Devantec та Parallax забезпечують час затримки 36 мілісекунд 28 мілісекунд відповідно. Якщо ви використовуєте наведений вище скетч, програма «зависне» на 1 секунду. Тому бажано вказувати параметр затримки.

Датчик HC-SR04 погано працює при вимірі відстаней понад 10 футів. Час повернення імпульсу становить близько 20 мілісекунд, так що рекомендується в таких випадках виставляти час затримки більше 20, наприклад, 25 або 30 мілісекунд.

Можна підключити ультразвуковий датчиквідстані HC-SR04 лише до одного піну Arduino. Для цього необхідно між пінами Тригера та Відлуння встановити резистор на 2.2 кОм і підключити до Arduino тільки пін Тригера.

Ардуїно – унікальна система, що є пластиліном в руках інженера, з якого він може зліпити, що забажає. Можливо це завдяки великій різноманітності датчиків та модулів різних спрямованостей. Від простих чіпів, що вимірюють силу струму, до речей на кшталт Arduino hc hc sr04.

Це спеціальний датчик, що дозволяє за допомогою ультразвукових хвиль виміряти відстань до об'єкта, на який його направили. Неважко здогадатися, що найпростіше його застосувати для створення простого далекоміра. Розглянемо Arduino hc sr04 та які нюанси у роботі з ним варто враховувати, перш ніж почати збирати проект.

1. Основи складання далекоміра на Ардуїно за допомогою датчика HC SR04

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

Однак сьогодні ми розглянемо саме варіант з далекоміром на Arduino, оскільки він ідеально підійде для новачків у сфері, які ще не дуже добре розуміються на основах. Якщо ж ви захочете модифікувати свій винахід, то можна навчити його моделювати повноцінну тривимірну карту приміщення, що буде зручно для тих, хто займається дизайном і конструюванням меблів або будівель. Але спершу варто розглянути, як взагалі працює даний приладі які основи складання варто засвоїти, перш ніж створити лазерний далекомір на Ардуїно своїми руками.

Наш далекомір на Arduino буде заснований на сонарі, що використовується в природі дельфінами, для вимірювання відстані до об'єктів та спокійного обходження перешкод. Робиться це за допомогою фізичних властивостейультразвукових хвиль, які здатні відбиватися, зіштовхуючись із твердими об'єктами, і повертатися назад до датчиків.

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

Чому усереднене?

Справа в тому, що будь-який ультразвуковий датчик все одно помилятиметься на десяті частки метра, пов'язано це з тим, що різні матеріали, оточення та інші змінні можуть вплинути на швидкість руху та відбиття від поверхні звуку. А в даному проекті ми беремо ідеальну систему, яка в реальному світіпрацювати не може.

Можна постаратися врахувати всі ці фактори, але кожну змінну ви все одно не запрограмуєте, тому наше завдання отримати дані, максимально наближені до показань професійних приладів, адже далекомір Ардуїно все ще далекий від них за точністю.

Є ще один нюанс, який вам варто заздалегідь врахувати, збираючи ультразвуковий далекомір Arduino – не всі поверхні підходять для виміру. Справа в тому, що деякі матеріали здатні поглинати звук або надто сильно спотворювати його рух, подібно до того, як чорна сорочка поглинає електромагнітну світлову хвилю.

Відповідно, найкраще застосовувати прилад до гладких та плоских поверхонь, які не порушуватимуть руху УВ, що також обмежує його функціонал. Але завдяки низькому ціннику та зручності роботи датчик все ще залишається досить популярним.

2. Що буде в уроці?

Ми зберемо далекомір, який працюватиме по наступного принципу: при наближенні об'єкта на відстань менше 4 сантиметрів - спалахує червоний світлодіод, інакше горить зелений.

Досить простий приклад, у якому ми перевіримо точність виміру відстані далекоміром hc-sr04. Основа перевірки точності стане проста лінійка 🙂

3. Інструменти

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

  1. Паяльник. Гарним виборомстануть прилади з регульованою потужністю, їх можна пристосувати до будь-якої ситуації.
  2. Провідники. Звичайно, датчик необхідно буде під'єднувати до МК, і для цього не завжди підходять стандартні піни.
  3. Перехідник під USB-порт. Якщо на мікроконтролері немає вбудованого порту, потурбуйтеся про те, щоб його можна було підключити до ПК іншим способом. Адже вам необхідно буде підвантажувати додаткові бібліотеки та нову прошивку у ваш проект.
  4. Припій, каніфоль та інші дрібниці, у тому числі ізольований робочий простір.
  5. Сам чіп та МК, а також, при необхідності, корпус майбутнього пристрою. Найбільш досвідчені інженери вважають за краще роздруковувати оболонку для своїх проектів на 3Д принтері, однак, якщо ви живете в великому місті, Не обов'язково витрачатися. Можете пошукати компанії, що дають принтери в оренду.

Варто розуміти, що далекомір Arduinoвідноситься до приладів безконтактного типу та здатний забезпечувати точні виміри. Але все ж таки не варто забувати, що професійні пристрої використовують зовсім інші технології і проходять тривале калібрування під всі матеріали, а відповідно, у будь-якому випадку, виявляться краще. Також наш проект має обмежений діапазон вимірювання відстаней, від 0.03 до 4 метрів, що підійде не у всіх випадках.

Але, що добре, на роботу пристрою не впливає з боку ЕМ випромінювань і сонячної енергії. А в комплекті до датчика вже знаходяться потрібні ресивери та трансмітери, які стануть у нагоді, коли ви будете збирати ультразвуковий далекомір Ардуїно.

Важливо! У нашому уроці можна нічого не паяти, т.к. ми будемо використовувати макетну платута дроти-перемички. Але якщо ви захочете в результаті зібрати закінчений пристрій - вам знадобиться все, що ми вказали вище.

4. Комплектуючі

Тому що ми вирішили поки нічого не паяти - оптимальний набірдеталей буде наступним:

  • 1 - Arduino UNO R3 (або аналог)
  • 1 - Ультразвуковий датчик відстані HC-SR04
  • 1 – червоний світлодіод
  • 1 – зелений світлодіод
  • 2 – резистор 560 Ом
  • 1- макетна плата
  • 8 - проводів-перемичок (тато-тато)
  • 1 - лінійка для вимірювання відстані

5. Підключення датчика HC SR04

З підключенням датчика не повинно виникнути жодних проблем. Достатньо за допомогою провідників з'єднати пін на живлення з джерелом або МК, а введення та виведення, відповідно, приєднати безпосередньо до МК. Скористайтеся схемою нижче для збирання схеми:

У самого сенсора SR04 такі характеристики, від яких вам варто відштовхуватися:

  1. Напруга для живлення – 5В.
  2. Працює у ланцюгах із силою струму 15 мА.
  3. Якщо датчик не використовується, для підтримки його в пасивному стані все ще потрібно до 2 мА.
  4. Кут огляду у модуля невеликий, лише 15 градусів.
  5. Роздільна здатність сенсора – 3 десятих див.
  6. А ось кут для вимірів складає вже приємні 30 градусів.

Також на датчику є чотири виводи за стандартом 2.54 мм. У них входить контакт для живлення з позитивною напругою +5В, піни для введення та виведення сигналу та заземлення.

У кінцевому варіанті виглядати пристрій повинен приблизно таким чином:

6. Код

Код нашого пристрою нижче. Пам'ятайте, що червоний світлодіод повинен загорятися на відстані менше 4 см.

/* Arduino HC-SR04 ультразвуковий датчик відстані VCC підключається до 5v, GND до GND Echo до 13 пін на Arduino, Trig до 12 пін на Arduino Позитивна нога червоного світлодіода до 11 пін на Arduino Позитивна нога зеленого світлодіода до Ar #define trigPin 13 #define echoPin 12 #define led 11 #define led2 10 void setup() ( Serial.begin (9600); pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); (led2, OUTPUT); ) void loop() ( long duration, distance; digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); pulseIn(echoPin, HIGH); distance = (duration/2) / 29.1;< 4) { // На этом этапе происходит вкл/выкл светодиода digitalWrite(led,HIGH); // когда загорается красный, зеленый обязан выключится digitalWrite(led2,LOW); } else { digitalWrite(led,LOW); digitalWrite(led2,HIGH); } if (distance >= 200 | distance<= 0){ Serial.println("Out of range"); // Вне диапазона } else { Serial.print(distance); Serial.println(" cm"); // тут тоже можно указать " см" } delay(500); }

Єдине, що варто пам'ятати, – далеко не всі функції та бібліотеки написані професіоналами. Багато хто з них створюється такими новачками, як і ви, відповідно, намагайтеся переглядати код, перш ніж зробити висновок, що датчик не працює або видає неправильні дані.

Але значно краще буде вивчити основи програмування та С++, щоб надалі самостійно писати багато речей самому.

7. Запуск та налаштування

При першому запуску пристрою відбувається таке:

  1. Подається імпульс на вхід Trig.
  2. У самому датчику сигнал перетворюється на 8 імпульсів, у яких частота досягає 40 кГц, їх він, відповідно, і посилає вперед.
  3. Доходячи до перешкоди, імпульси відбиваються і повертаються на приймач, відбуваються моментальні розрахунки МК, і вся інформація подається на пристрій виведення. У нашому випадку це консоль ПК, але в майбутньому ми зробимо урок, де дані будуть виводитися на LED-екранчик.

При першому запуску ми використовуємо лінійку, яка дозволить порівняти точність вимірів. Запустивши пристрій, перевірте дані, які будуть виведені у консолі.

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

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

Ну що, почнемо! Почнемо ми з характеристики далекоміра.

Характеристики ультразвукового датчика HC-SR04

Великою перевагою такого ультразвукового датчика над інфрачервоними є те, що на ультразвукові датчики не впливають джерела світла або перешкода кольору. Можуть виникнути проблеми з вимірюванням відстані до тонких або пухнастих об'єктів. Хотілося б сказати, що швидкість звуку повітря залежить від температури. Отже, похибка вимірювання змінюватиметься від підвищення або зниження температури.

  • Робоча напруга 4,8 до 5,5 В (± 0.2В макс).
  • Діапазон виміру: від 2 см до 400 см.
  • Діапазон робочих температур: 0°С до 60°С (±10%).
  • Струм споживання в режимах очікування до 2 мА.
  • Струм споживання в режимах роботи 15 мА.
  • Ультразвуковий діапазон роботи на частоті 40 кГц.
  • Кут огляду 15 градусів.
  • Вимірюється відстань від 0,03 до 0,6 мс роздільною здатністю 3 мм.
  • Від 06 до 5 похибка збільшується.

Датчик має 4 висновки:

  • VCC: "+" харчування
  • TRIG (T): виведення вхідного сигналу
  • ECHO (R): вихід вихідного сигналу
  • GND: "-" харчування

Необхідні компоненти для підключення ультразвукового далекоміра

  • Arduino (у нашому випадку – UNO)
  • Breadboard (макетна плата для зручного підключення приладів Arduino)
  • Провід
  • Ультразвуковий датчик HC-SR04

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


  1. Подаємо імпульс тривалістю 10 мкс, на висновок Trig.
  2. Усередині далекоміра вхідний імпульс перетворюється на 8 імпульсів частотою 40 КГц і посилається вперед через "T око".
  3. Дійшовши до перешкоди, імпульси відбиваються і приймаються "R вічком". Отримуємо вихідний сигнал на виводі Echo.
  4. Безпосередньо на стороні контролера переводимо отриманий сигнал у відстань.

Схема підключення далекоміра до Arduino

Вам представлено схему підключення ультразвукового датчика до Ардуїно. Як ви можете помітити, вона дуже проста та дуже цікава. Але слід не забувати про правильне підключення. Моя порада: ніколи не поспішайте підключати прилад тому, що ви більше витратите часу на пошук помилки у підключенні.


Наступним етапом є вивчення скетчу програми

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

#define Trig 8 /* Позначаємо пін подачі імпульсу*/
#define Echo 9 /* Позначаємо пін прийому імпульсу*/
void setup() (
pinMode (Trig, OUTPUT); /* ініціюємо як вихід */
pinMode (Echo, INPUT); /* ініціюємо як вхід */
Serial.begin (9600); /* встановлюємо швидкість порту */
}
unsigned int impulseTime=0;
unsigned int distance_sm=0;
void loop() (
digitalWrite (Trig, HIGH); /* Подаємо імпульс на вхід trig далекоміра */
delayMicroseconds (10); /* Імпульс триває 10 мікросекунд */
digitalWrite (Trig, LOW); // Відключаємо подачу імпульсу
impulseTime=pulseIn (Echo, HIGH);
/*Приймаємо імпульс і підраховуємо його довжину*/
distance_sm =impulseTime/58; /* Перераховуємо його значення сантиметри */
Serial.println(distance_sm); /* Виводимо значення на порт програми */
delay (200);
}

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

Ось що має у вас вийти!



Сподіваюся, у вас все вийшло! Якщо у вас залишилися питання, можете написати нам у