Dastur kodi
#PIN_TRIG 12-ni aniqlang
#PIN_ECHO 11 ni aniqlang
uzoq muddat, sm;
bekor o'rnatish() {
// Seriyali portda aloqani ishga tushiring
Serial.begin(9600);
//Kirish va chiqishlarni aniqlang
pinMode (PIN_TRIG, OUTPUT);
pinMode (PIN_ECHO, INPUT);
}
void loop() {
// Birinchidan, biz 2-5 mikrosekund davom etadigan qisqa puls hosil qilamiz.
digitalWrite (PIN_TRIG, LOW);
delayMicroseconds(5);
digitalWrite (PIN_TRIG, YUQORI);
// Signal yuqori bo'lsa, taxminan 10 mikrosoniya kuting. Ushbu nuqtada Datchik
40 kHz chastotada signallarni yuboradi.
delayMicroseconds(10);
digitalWrite (PIN_TRIG, LOW);
// Echo sounderdagi akustik signalning kechikish vaqti.
davomiyligi = pulseIn(PIN_ECHO, HIGH);
// Endi vaqtni masofaga aylantirish qoladi
sm = (davomiyligi / 2) / 29,1;
Serial.print("Ob'ektgacha bo'lgan masofa: ");
Seriyali chop etish (sm);
Serial.println("qarang.");
// Eskiz to'g'ri ishlashi uchun o'lchovlar orasidagi kechikish
kechikish (250);
}
HC SR04 ultratovushli masofa o'lchagichni bitta pin bilan ulash misoli
HC-SR04-ni Arduinoga ulash bitta pin yordamida amalga oshirilishi umkin. Agar
siz katta loyiha ustida ishlayotgan bo'lsangiz va sizda etarli bo'sh pinlar bo'lmasa,
ushbu parametr foydalidir. Ulanish uchun siz TRIG va ECHO pinlari orasiga 2,2K
rezistorni o'rnatishingiz va TRIG pinini arduinoga ulashingiz kifoya.
#include
#define PIN_PING 12 // Arduino pinlari masofa Datchik idagi tetik va echo
pinlariga ulangan.
#define MAX_DISTANCE 200 // Biz nazorat qila oladigan maksimal masofa
(400-500 sm).
NewPing sonar(PIN_PING, PIN_PING, MAX_DISTANCE); // Pinlar va
maksimal masofani sozlang
bekor o'rnatish() {
Serial.begin(9600); // Ma'lumotlar va uzatish tezligi 115200 bps bo'lgan
protokolni ochadi.
}
void loop() {
kechikish (50); // Yaratilgan to'lqinlar orasidagi kechikish 50ms. 29 ms - minimal
ruxsat etilgan qiymat
unsigned int distanceSm = sonar.ping(); // Signal yaratish, uning davomiyligi
parametrini µs (uS) da olish.
Serial.print("ping: ");
Serial.print(distanceSm / US_ROUNDTRIP_CM); // Vaqt parametrini masofa
qiymatiga aylantirish va natijani chiqarish (0 ruxsat etilgan chegaradan oshib
ketishga to'g'ri keladi)
Serial.println("sm");
}
Qisqacha xulosalar
Ultrasonik masofa datchik lari ko'p qirrali va ko'plab sevimli
mashg'ulotlariga
mo'ljallangan
loyihalarda
foydalanish
uchun
etarlicha
aniqdir. Maqolada juda mashhur HC SR04 Datchik i muhokama qilinadi, u arduino
platasiga osongina ulanadi (buning uchun ikkita bepul pinni darhol ta'minlash
kerak, ammo bitta pin bilan ulanish imkoniyati ham mavjud). Datchik bilan
ishlash uchun bir nechta bepul kutubxonalar mavjud (ulardan faqat bittasi,
NewPing, maqolada ko'rib chiqiladi), lekin siz ularsiz qilishingiz mumkin -
Datchik ning ichki boshqaruvchisi bilan o'zaro ishlash algoritmi juda oddiy, biz
buni ko'rsatdik. Bu maqola.
O'z tajribamga asoslanib, HC-SR04 datchik i 10 sm dan 2 m gacha bo'lgan
masofada bir santimetrgacha aniqlik qiladi.Qisqaroq va uzoqroq masofalarda
kuchli shovqin paydo bo'lishi mumkin, bu ko'p jihatdan atrofdagi narsalarga va
undan qanday foydalanishingizga bog'liq. Ammo ko'pincha HC-SR04 ishni yaxshi
bajardi.
Nazorat savollari
1.
Ultratavush masofa datchikini Arduino platasiga ulanish sxemasi tushuntirib
bering.
2.
TRIG va ECHO pinlar vazifasini tushuntirib bering
3.
HC-SR04 afzalligi va kamchiliklari haqida tushuntirb bering.
Dostları ilə paylaş: |