Arduino коды және HC-SR04 ультрадыбыстық қашықтық сенсорына арналған бейне
Бұл оқулықта біз Arduino-мен HC-SR04 ультрадыбыстық қашықтық сенсорын қалай пайдалану керектігін қарастырамыз. HC-SR04 ультрадыбыстық толқындарды қолданып қашықтықты өлшеудің үнемді және тиімді тәсілі болып табылады. Сигнал жіберіп, жаңғырықтың қайту уақытын өлшеу арқылы біз нысанға дейінгі қашықтықты дәл есептей аламыз.

Бұл жоба сенсорды Arduino-мен орнатуды және қашықтық өлшемдерін оқу мен көрсетуге арналған қарапайым бағдарлама жазуды қамтиды. Бағдарлама сенсормен байланысты жеңілдету үшін NewPing кітапханасын пайдаланады. Егер сізге визуалды анықтама немесе қандай да бір қадамдар бойынша қосымша түсініктеме қажет болса, бейнені міндетті түрде қараңыз (бейнеде 00:00).
Аппараттық құрал түсіндірмесі
HC-SR04 ультрадыбыстық сенсоры екі негізгі компоненттен тұрады: таратқыш және қабылдағыш. Таратқыш адам есту қабілетінен жоғары жиілікте ультрадыбыстық импульстарды шығарады, ал қабылдағыш осы импульстардың нысаннан шағылысқаннан кейінгі жаңғырығын тыңдайды. Импульсті жіберу мен жаңғырықты қабылдау арасындағы уақытты есептеу арқылы біз нысанға дейінгі қашықтықты анықтай аламыз.
Сенсордың екі маңызды түйреуіші бар: триггер түйреуіші және жаңғырық түйреуіші. Триггер түйреуіші қысқа жоғары сигнал жіберу арқылы өлшеуді бастау үшін қолданылады, ал жаңғырық түйреуіші шағылысқан сигналды қабылдап, жаңғырықтың қайту уақытын өлшейді.
Деректер парағының мәліметтері
| Өндіруші | HC-SR04 |
|---|---|
| Бөлшек нөмірі | HC-SR04 |
| Логика/IO кернеуі | 5 В |
| Қоректендіру кернеуі | 5 В |
| Шығыс тогы (арнаға) | 15 мА |
| Ең жоғары ток (арнаға) | 20 мА |
| ШИМ жиілігі бойынша нұсқаулық | Жоқ |
| Кіріс логикалық шектері | 0.3 В (төмен), 0.7 В (жоғары) |
| Кернеудің төмендеуі / RDS(on) / қанығу | Жоқ |
| Жылулық шектеулер | 0°C - 70°C |
| Қаптама | Модуль |
| Ескертулер / нұсқалар | Максималды қашықтық 400 см |
- Тиісті қоректендіруді қамтамасыз етіңіз (5 В).
- Дәл көрсеткіштер үшін сенсорды таза ұстаңыз.
- Өлшеуді бастау үшін триггер түйреуішін пайдаланыңыз.
- Сенімді нәтижелер үшін максималды қашықтықтан аспаңыз.
- Ультрадыбыстық толқындардың шағылысуы үшін ашық жолды сақтаңыз.
- Қоректендіру түйреуіштерінің жанында разрядтау конденсаторларын пайдаланыңыз.
- Көрсеткіштерге кедергі келтіруі мүмкін қоршаған орта шуына абай болыңыз.
- Сенсормен танысу үшін әртүрлі қашықтықтарды сынап көріңіз.
Сымды қосу нұсқаулары


HC-SR04 ультрадыбыстық сенсорын Arduino-ға қосу үшін мына қадамдарды орындаңыз:
- HC-SR04
VCCтүйреуішін Arduino-дағы 5V түйреуішіне қосыңыз. - HC-SR04
GNDтүйреуішін Arduino-дағы жер түйреуішіне қосыңыз. - HC-SR04
TRIGтүйреуішін (әдетте көк) Arduino-дағы 12 цифрлық түйреуішке қосыңыз. - HC-SR04
ECHOтүйреуішін (әдетте жасыл) Arduino-дағы 11 цифрлық түйреуішке қосыңыз.
Үзіліссіз көрсеткіштерді болдырмау үшін қосылымдардың сенімді екеніне көз жеткізіңіз. Егер сіз басқа құрылғыны пайдалансаңыз немесе баламалы сым қосу схемасы болса, қосымша нұсқаулар үшін бейнені қараңыз (бейнеде 00:00).
Код мысалдары мен түсіндірме
Келесі код NewPing кітапханасын инициализациялайды және HC-SR04 сенсоры үшін түйреуіштерді орнатады. Негізгі компоненттерге триггер мен жаңғырық түйреуіштерін, сондай-ақ максималды қашықтықты анықтау кіреді.
#define TRIGGER_PIN 12 // Триггер түйреуіші
#define ECHO_PIN 11 // Жаңғырық түйреуіші
#define MAX_DISTANCE 200 // Максималды қашықтық см-мен
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // NewPing орнату
Бұл үзіндіде TRIGGER_PIN және ECHO_PIN сәйкесінше 12 және 11 цифрлық түйреуіштерге орнатылған. MAX_DISTANCE 200 см ретінде анықталған, бұл сізді қызықтыратын максималды қашықтық.
Әрі қарай, нәтижелерді көрсету үшін сериялық монитор инициализацияланатын орнату функциясы берілген:
void setup() {
Serial.begin(115200); // Сериялық мониторды инициализациялау
}
Бұл код сериялық байланысты 115200 бод жылдамдығымен ашады, бұл бізге қашықтық өлшемдерін сериялық мониторда көруге мүмкіндік береді.
Соңында, цикл функциясы қашықтықты өлшейді және оның 12 см-ден аз немесе тең екенін тексереді:
void loop() {
delay(50); // Пингтер арасында күту
int distance = sonar.ping_cm(); // Қашықтықты өлшеу
if(distance <=12){ // Қашықтықты тексеру
Serial.println("Өте жақын"); // Өте жақын болса басып шығару
}
}
loop() функциясында өлшеу жиілігін бақылау үшін 50 миллисекундтық кідіріс енгіземіз. Қашықтық өлшенеді, және егер ол 12 см-ден кем немесе тең болса, сериялық мониторға "Өте жақын" деп басып шығарады.
Толық код үшін, мақаланың төменіндегі жүктеу бөліміне жүгініңіз.
Демонстрация / Не күтуге болады
Бағдарламаны іске қосқанда, Arduino ең жақын нысанға дейінгі қашықтықты үздіксіз өлшейді. Ол қашықтықты сантиметрмен басып шығарып, 12 см ішінде нысан анықталса, "Өте жақын" деп хабарлайды. Егер нысан тым жақын болса, бейнеде айтылғандай (бейнеде 10:00-де), дұрыс емес көрсеткіштер немесе мүлдем көрсеткіштер болмауы мүмкін.
Датчик дұрыс орналасқанына және ультрадыбыстық толқындарды бөгейтін кедергілер жоқтығына көз жеткізіңіз. Егер бәрі дұрыс орнатылса, сериялық мониторда тұрақты өлшеулерді көруіңіз керек.
Бейне уақыт белгілері
- 00:00 - HC-SR04-ке кіріспе
- 01:30 - Датчикті қосу
- 03:00 - Кодқа шолу
- 05:00 - Бағдарламаны іске қосу
- 07:30 - Қашықтықтарды өлшеу
/*
* This is the Arduino code for the HC-SR04 Ultrasonic Distance Sensor
* to measure the distance using Arduino for a robotic car and other applications
* Watch the video https://youtu.be/QI9541YQq7M
*
* Written by Ahmad Shamshiri for Robojax Video
* Date: December 21, 2017, in Ajax, Ontario, Canada
* Permission granted to share this code given that this
* note is kept with the code.
* Disclaimer: this code is "AS IS" and for educational purposes only.
*
*/
/* Original Code
// https://playground.arduino.cc/Code/NewPing
* Modified for Robojax video on December 21, 2017
*/
// ---------------------------------------------------------------------------
// Example NewPing library sketch that does a ping about 20 times per second.
// ---------------------------------------------------------------------------
#include <NewPing.h>
#define TRIGGER_PIN 12 // Arduino pin tied to trigger pin on the ultrasonic sensor.
#define ECHO_PIN 11 // Arduino pin tied to echo pin on the ultrasonic sensor.
#define MAX_DISTANCE 200 // Maximum distance we want to ping for (in centimeters). Maximum sensor distance is rated at 400-500cm.
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // NewPing setup of pins and maximum distance.
void setup() {
Serial.begin(115200); // Open serial monitor at 115200 baud to see ping results.
}
void loop() {
delay(50); // Wait 50ms between pings (about 20 pings/sec). 29ms should be the shortest delay between pings.
Serial.print("Ping: ");
Serial.print(sonar.ping_cm()); // Send ping, get distance in cm and print result (0 = outside set distance range)
Serial.println("cm");
int distance = sonar.ping_cm();// store the distance value in "distance" variable
if(distance <=12){ // if distance is less than 12, do something. For example, here just print "very close"
Serial.println("Very close");
}
}
Сізге қажет болуы мүмкін нәрселер
-
eBay
-
BanggoodPurchase HC-SR04 Ultrasonic Sensor from Banggoodbanggood.com
Ресурстар мен сілтемелер
-
СыртқыHC-SR04 Ultrasonic Library from the Arduino official websiteplayground.arduino.cc
Файлдар📁
Файлдар жоқ.