3.2-rasm. Yorug’lik diodini o`chirib yoqish Ishni bajarish tartibi 1.Talabalar o`qituvchi tomonidan berilgan ma`lumotlar asosida 1 ta “Arduino Uno”ga yorug’lik diodini ulab yig’adi.
2.Talaba bajargan ishlari bo`yicha o`qituvchiga yozma hisobot tayyorlab topshiradi.
Topshiriqlar: Arduino UNO kontrolleri yordamida ikkita yorug`lik diodini (+/-) bo`yicha knopka yordamida o`chirib yoqish mexatronik modulni yig`ing va ushbu yorug`lik diodini o`chib yonishini 7,8 – raqamli chiqish porti orqali amalga oshiring.
Arduino UNO kontrolleri yordamida ikkita yorug`lik diodini (+/-) bo`yicha knopka yordamida o`chirib yoqish mexatronik modulni yig`ing va ushbu yorug`lik diodini o`chib yonishini 4,2 – raqamli chiqish porti orqali amalga oshiring.
Arduino UNO kontrolleri yordamida ikkita yorug`lik diodini (+/-) bo`yicha knopka yordamida o`chirib yoqish mexatronik modulni yig`ing va ushbu yorug`lik diodini o`chib yonishini 12,13 – raqamli chiqish porti orqali amalga oshiring.
Arduino UNO kontrolleri yordamida ikkita yorug`lik diodini (+/-) bo`yicha knopka yordamida o`chirib yoqish mexatronik modulni yig`ing va ushbu yorug`lik diodini o`chib yonishini 5,6 – raqamli chiqish porti orqali amalga oshiring.
Laboratoriya ishi 4 Ovoz datchigini tekshirish Ishning maqsadi: HC SR04-ni Arduinoga ulash va ishlash prinsipini o’rganish.
Nazariy qism
Ultratavush masofa datchikini Arduino platasiga ulash juda oddiy. Ulanish quyidagi rasmda ko'rsatilgan. HC SR04 ni manba bilan taminlash uchun Arduino platasidagi GND piniga manfiy qutbini, quvvat chiqishi 5V ga ulangan. Biz Trig (12 pinga) va Echo(11 pinga) chiqishlarini arduinoga raqamli pinlarga ulaymiz. Breadboard ulanish sxemasi:
4.1-Rasm. Ultratavush masofa datchikini Arduino platasiga ulanish sxemasi
HC SR04 bilan ishlash uchun kutubxona Arduino-da HC SR04 masofa Datchik i bilan ishlashni osonlashtirish uchun siz NewPing kutubxonasidan foydalanishingiz mumkin. U ping bilan bog'liq muammolarga duch kelmaydi va ba'zi yangi xususiyatlarni qo'shadi. Kutubxonaning xususiyatlariga quyidagilar kiradi:
• Turli ultratovushli Datchik lar bilan ishlash qobiliyati;
• Faqat bitta pin bilan masofa Datchik i bilan ishlashi mumkin;
• Echo ping yo'q bo'lganda 1 soniya kechikish yo'q;
• Oddiy xatolarni tuzatish uchun o'rnatilgan raqamli filtr mavjud; • Eng aniq masofani hisoblash.
NewPing kutubxonasini bu yerdan yuklab olishingiz mumkin
HC SR04 Datchik i bilan masofani o'lchash aniqligi Datchik ning aniqligi bir necha omillarga bog'liq:
• havo harorati va namligi;
• ob'ektga masofa;
• Datchik ga nisbatan joylashuvi (radiatsiya diagrammasi bo'yicha); • Datchik moduli elementlarining ishlash sifati.
Har qanday ultratovush Datchik ining ishlash printsipi havoda tarqaladigan akustik to'lqinlarni aks ettirish fenomeniga asoslanadi. Ammo fizika kursidan ma'lumki, tovushning havoda tarqalish tezligi aynan shu havoning xususiyatlariga (birinchi navbatda haroratga) bog'liq. Datchik to'lqinlarni chiqaradigan va ularning qaytishigacha bo'lgan vaqtni o'lchagan holda, ular qaysi muhitda tarqalishini taxmin qilmaydi va hisob-kitoblar uchun o'rtacha qiymatni oladi. Haqiqiy sharoitda havo harorati omili tufayli HC-SR04 1 dan 3-5 sm gacha xatolikka ega bo'lishi mumkin. Ob'ektga masofa omili muhim, chunki qo'shni ob'ektlardan aks ettirish ehtimoli ortadi, bundan tashqari, signalning o'zi masofa bilan susayadi. Bundan tashqari, aniqlikni oshirish uchun datchik ni to'g'ri yo'naltirish kerak: ob'ekt radiatsiya naqshining konusi ichida ekanligiga ishonch hosil qiling. Oddiy qilib aytganda, HC-SR04 ning "ko'zlari" mavzuga to'g'ri qarashi kerak.
4.2-Rasm.Tovushni tarqalish diapazoni
Keling, Arduino Uno platasi va HC SR04 masofa Datchik i bilan oddiy loyiha misolini ko'rib chiqaylik. Eskizda biz ob'ektlargacha bo'lgan masofaning qiymatini olamiz va ularni Arduino IDE-dagi port monitoriga chiqaramiz. Eskizni va ulanish sxemasini osongina o'zgartirishingiz mumkin, shunda Datchik ob'ektning yaqinlashishi yoki masofasi haqida signal beradi.
HC SR04 ni Datchikga arduinoga ulash
Namuna dasturni yozish uchun datchikni ulash uchun quyidagi pinout opsiyasi ishlatilgan:
• VCC: +5V
• Trig - 12 pin
• Echo - 11 pin
• Ground (GND) - Ground (GND)
Keling, nisbatan murakkab variant bilan - tashqi kutubxonalardan foydalanmasdan darhol Datchik bilan ishlashni boshlaylik.
Ushbu namunada biz quyidagi harakatlar ketma-ketligini bajaramiz:
• Qisqa impuls (2-5 mikrosekund) bilan biz masofa Datchik ini echolocation rejimiga o'tkazamiz, bunda 40 kHz chastotali ultratovush to'lqinlari atrofdagi kosmosga yuboriladi.
• Biz Datchik ni aks ettirilgan signallarni tahlil qilishini va kechikish bo'yicha masofani aniqlashini kutamiz.
• Biz masofaning qiymatini olamiz. Buning uchun biz HC SR04 ECHO kirishidagi masofaga mutanosib impuls hosil qilguncha kutamiz. Biz impulsning davomiyligini pulseIn funktsiyasidan foydalanib aniqlaymiz, bu bizga signal darajasi o'zgarishidan oldin o'tgan vaqtni qaytaradi (bizning holatda, impulsning teskari qirrasi paydo bo'lguncha).
• Vaqtni olganimizdan so'ng, biz qiymatni doimiyga bo'lish orqali uni santimetrdagi masofaga aylantiramiz (SR04 Datchik i uchun bu "bor" signali uchun 29,1, "orqa" signali uchun bir xil, bu umumiy miqdorni beradi 58.2).
Agar masofa datchikgi signalni o'qimasa, u holda chiqish signalining konvertatsiyasi hech qachon qisqa pulsning qiymatini olmaydi - LOW. Ba'zi datchik lar uchun kechikish vaqti ishlab chiqaruvchiga qarab o'zgarganligi sababli, ushbu eskizlardan foydalanganda uning qiymatini qo'lda o'rnatish tavsiya etiladi (biz buni tsiklning boshida qilamiz).
Agar masofa 3 metrdan ortiq bo'lsa, HC SR04 yomon ishlay boshlasa, kechikish vaqtini 20 ms dan ortiqroqqa belgilash yaxshiroqdir, ya'ni. 25 yoki 30 ms.
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");
}