Кодты іздеу

Arduino коды және HC-SR04 ультрадыбыстық қашықтық сенсорына арналған бейне

Arduino коды және HC-SR04 ультрадыбыстық қашықтық сенсорына арналған бейне

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

How HC-SR04 ulrasonic sensor work

Бұл жоба сенсорды 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 В).
  • Дәл көрсеткіштер үшін сенсорды таза ұстаңыз.
  • Өлшеуді бастау үшін триггер түйреуішін пайдаланыңыз.
  • Сенімді нәтижелер үшін максималды қашықтықтан аспаңыз.
  • Ультрадыбыстық толқындардың шағылысуы үшін ашық жолды сақтаңыз.
  • Қоректендіру түйреуіштерінің жанында разрядтау конденсаторларын пайдаланыңыз.
  • Көрсеткіштерге кедергі келтіруі мүмкін қоршаған орта шуына абай болыңыз.
  • Сенсормен танысу үшін әртүрлі қашықтықтарды сынап көріңіз.

Сымды қосу нұсқаулары

Arduino Wiring for HC-SR04 ulrasonic sensor
Arduino Wiring for HC-SR04 ulrasonic sensor
Arduino Wiring for HC-SR04 ulrasonic sensor
Arduino Wiring for HC-SR04 ulrasonic sensor

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 - Қашықтықтарды өлшеу

Суреттер

Arduino Wiring for HC-SR04 ulrasonic sensor
Arduino Wiring for HC-SR04 ulrasonic sensor
Arduino Wiring for HC-SR04 ulrasonic sensor
Arduino Wiring for HC-SR04 ulrasonic sensor
HC-SR04 ulrasonic sensor
HC-SR04 ulrasonic sensor
How HC-SR04 ulrasonic sensor work
How HC-SR04 ulrasonic sensor work
42-This is the Arduino code for the HC-SR04 ultrasonic distance sensor.
Тіл: C++
/*
 * 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");
  }
}

Сізге қажет болуы мүмкін нәрселер

Ресурстар мен сілтемелер

Файлдар📁

Файлдар жоқ.