Arduino və Ultrasonik Sensor HC-SR04
Bu yazımda Ultrasonik Sensor HC-SR04’ü Arduino ilə necə birləşdirəcəyinizi öyrənəcəksiniz. Ultrasonik – Məsafə Sensoru kimi və ya hər hansı bir başqa məqsəd üçün istifadə edilə bilər.
Komponentlər və ləvazimatlar
- Arduino UNO (Arduino-nun istənilən versiyasından istifadə edə bilərsiniz, amma mən burada Arduino UNO R3-dən istifadə edəcəyəm)
- Ultrasonic Sensor – HC-SR04 (Generic)
- Adafruit RGB Backlight LCD – 16×2 (Sərbəstdir. Sizdə yoxdursa, ekranı göstərmək üçün Arduino Serial Monitor istifadə edə bilərsiniz.)
- Jumper wires (generic) (10 sm və ya daha uzun erkək- erkək Jumper Telləri)
- Solderless Breadboard Full Size (Əlinizdə olan hər cür breadboarddan istifadə edə bilərsiniz.)
Lazımi alətlər və maşınlar
- Metrə, Təlimat Kitabçası
İstənilən ölçmə vasitələrindən istifadə edə bilərsiniz, xətkeşdən də istifadə edə bilərsiniz.
Tətbiqlər və onlayn xidmətlər
- Arduino IDE (Bu tətbiqi https://www.arduino.cc/en/main/software-dən pulsuz yükləyə bilərsiniz)
BU LAYİHƏ HAQQINDA
Ultrasonik Sensor HC-SR04 məsafəni ölçə bilən bir sensordur. Havadan keçən 40 000 Hz (40kHz) ultrasəs yayır və yolunda bir cisim və ya maneə varsa səs modula geri dönür. Səsin gedib-gəlmə vaxtını və səsin sürətini nəzərə alaraq məsafəni hesablaya bilərsiniz.
HC-SR04 konfiqurasiya pini VCC (1), TRIG (2), ECHO (3) və GND (4) dir. VCC-nin qida gərginliyi + 5V-dir və Arduino Kartınızdakı hər hansı bir Rəqəmsal I / O-nu TRIG və ECHO pini kimi təyin edə bilərsiniz.
Bu layihəni hazırlamaq üçün lazım olan materiallar:
- Arduino UNO R3 CH340 (istənilən Arduino lövhəsindən istifadə edə bilərsiniz)
- Ultrasonik Sensor HC-SR04
- Male – Male tellər
- Breadboard
Arduino və Ultrasonik Sensor HC-SR04 bağlantısı
The connection of Arduino and Ultrasonic Sensor HC-SR04
Ultrasonik səs yaratmaq üçün Trigger Pini 10 µs yüksək bir vəziyyətə qurmalıyıq. Bu, səs sürət ilə gedəcək 8 dövr sonik partlayış göndərəcəkdir və Echo Pin-də qəbul ediləcək . Echo Pin, səs dalğasının keçdiyi vaxtı mikrosaniyələrlə çıxaracaqdır.
Məsələn, cisim sensordan 20 sm məsafədədirsə və səsin sürəti 340 m / s və ya 0,034 sm / s-dirsə, səs dalğasının təxminən 588 mikrosaniyəni keçməsi lazımdır. Echo pinindən əldə edəcəkləriniz bu rəqəmdən iki dəfə çox olacaq, çünki səs dalğasının irəli getməsi və geriyə sıçrayması lazımdır. Beləliklə sm məsafəni əldə etmək üçün echo pinindən alınan səyahət vaxtı dəyərini 0,034-ə vuraraq 2-yə bölməliyik.
Proqramlaşdırma kodu üçün əvvəlcə Arduino lövhəsinə qoşulmuş Trig Pini və Echo Pini təyin etməliyik. Bu layihədə EchoPin D2-yə, TrigPin D3-ə birləşdirilib. Sonra məsafə (int) və müddət (long) üçün dəyişənləri təyin edirik.
Əvvəlcə döngüdə trigPin-in təmiz olduğundan əmin olmalısınız, beləliklə bu pini yalnız 2 µs üçün DÜŞÜK bir vəziyyətə qoymalıyıq. İndi ultrasəs dalğasını yaratmaq üçün trigpin’i YÜKSƏK vəziyyətə 10 µs qoymalıyıq. PulseIn () funksiyasından istifadə edərək səsin səyahət müddətini oxumalı və bu dəyəri “duration” dəyişəninə qoymalısınız. Bu funksiyanın 2 parametri var, birincisi echo pininin adıdır, ikincisi üçün YÜKSƏK və ya LOW yaza bilərsiniz. Bu vəziyyətdə, YÜKSƏK, pulsin () funksiyasının sıçrayan səs dalğasının səbəb olduğu pinin YÜKSƏK getməsini gözləyəcəyi və zamanlamaya başlayacağı, səs dalğası bitəcək zaman pinin DÜŞÜK düşməsini gözləyəcəyi deməkdir. Sonda funksiya impulsun uzunluğunu mikrosaniyələrdə qaytaracaqdır. Məsafəni əldə etmək üçün müddəti 0.034-ə vuracağıq və əvvəllər bu tənliyi izah etdiyimiz kimi 2-yə böləcəyik. Sonda məsafənin dəyərini Serial Monitor-a yazdıracağıq.
Addımlar:
- Əvvəlcə şəkildə göstərildiyi kimi məftil birləşdirin
- Arduino IDE Software açın və kodunuzu yazın və ya aşağıdakı kodu yükləyin və açın
- Tools> Board> Arduino / Geniuno Uno seçərək öz Arduino lövhənizi seçin (bu halda Arduino Uno).
- COM Portunuzu seçin (ümumiyyətlə yalnız bir mövcud port görünür), Tools> Port> COM .. (Birdən çox port varsa, bir-bir sınayın)
- Ctrl + U və ya Sketch> Upload düymələrini basaraq kodunuzu yükləyin
- Ölçmə məlumatlarını göstərmək üçün Ctrl + Shift + M düymələrini basaraq Serial Monitor istifadə edə bilərsiniz (baud rate sürətinin 9600 olduğuna əmin olun)
Nəticələr:
Kodu yüklədikdən sonra məlumatları Serial Monitor ilə göstəririk. İndi sensorun qarşısında bir obyekt verməyə çalışırıq və ölçüyə baxırıq.
Göz önündə tutmaq üçün məsafəni ölçmək və Serial Monitordakı məsafə ilə müqayisə etmək üçün metrə istifadə edə bilərsiniz. LCD-də göstərmək istəyirsinizsə, ikinci qoşulma diaqramını izləyə və aşağıdakı kodu yükləyə bilərsiniz.
// ---------------------------------------------------------------- //
// Arduino Ultrasoninc Sensor HC-SR04
// Re-writed by Arbi Abdul Jabbaar
// Using Arduino IDE 1.8.7
// Using HC-SR04 Module
// Tested on 17 September 2019
// ---------------------------------------------------------------- //
#define echoPin 2 // attach pin D2 Arduino to pin Echo of HC-SR04
#define trigPin 3 //attach pin D3 Arduino to pin Trig of HC-SR04
// defines variables
long duration; // variable for the duration of sound wave travel
int distance; // variable for the distance measurement
void setup() {
pinMode(trigPin, OUTPUT); // Sets the trigPin as an OUTPUT
pinMode(echoPin, INPUT); // Sets the echoPin as an INPUT
Serial.begin(9600); // // Serial Communication is starting with 9600 of baudrate speed
Serial.println("Ultrasonic Sensor HC-SR04 Test"); // print some text in Serial Monitor
Serial.println("with Arduino UNO R3");
}
void loop() {
// Clears the trigPin condition
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
// Sets the trigPin HIGH (ACTIVE) for 10 microseconds
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Reads the echoPin, returns the sound wave travel time in microseconds
duration = pulseIn(echoPin, HIGH);
// Calculating the distance
distance = duration * 0.034 / 2; // Speed of sound wave divided by 2 (go and back)
// Displays the distance on the Serial Monitor
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
}
Sxem
Arduino və Ultrasonik Sensor HC-SR04-un qoşulma diaqramı
Arduino LCD və Ultrasonik Sensor HC-SR04-un qoşulma diaqramı