Uy jihozlarini ovoz bilan boshqarish tizimini yaratish MaxBotix mb1240 ultratovush masofa sensori Arduino qo'llanma
MB1240 va HC-SR04 taqqoslash jadvali
Download 451.92 Kb.
|
Oqil. KURS ISHI
- Bu sahifa navigatsiya:
- Elektr tarmogi-Arduino UNO uchun MaxBotix MB1240 ulash
- MB1240 ulanishlar-Analog kuchlanish
- MB1240 ulanishlari-puls kengligi
- MaxBotix MB1240 Arduino misol kodi-Analog kuchlanish
- Kod qanday ishlaydi
MB1240 va HC-SR04 taqqoslash jadvali
* Siz bilmasligingiz mumkin bo'lgan narsa shundaki, tovush tezligi havoning harorati va namligiga bog'liq. Havodagi tovush tezligi santigrat daraja uchun sekundiga taxminan 0,6 metrga oshadi. Elektr tarmog'i-Arduino UNO uchun MaxBotix MB1240 ulashKirishda aytib o'tilganidek, MaxBotix sensorlari turli rejimlarda ishlashi mumkin. Quyidagi ulanish sxemalari analog kuchlanish yoki impuls kengligi ishlashi uchun MB1240 sensorini Arduino-ga qanday ulashingiz mumkinligini ko'rsatadi. Siz sensori bevosita simlar lehim mumkin, yoki ba'zi header mayoqlardan o'rnatish (men qildim nima) yoki ulagichi. Ulanishlar quyidagi jadvalda keltirilgan: MB1240 ulanishlar-Analog kuchlanish
MB1240 ulanishlari-puls kengligi
MaxBotix MB1240 Arduino misol kodi-Analog kuchlanishQuyidagi misol bilan siz o'lchangan masofani o'qib chiqishingiz va uni ketma-ket monitorga ko'rsatishingiz mumkin. Ko'rib turganingizdek, kod juda oddiy, ammo quyida uning qanday ishlashi haqida ba'zi tushuntirishlarni topishingiz mumkin. /* Arduino example code for MaxBotix MB1240 XL-MaxSonar-EZ4 ultrasonic distance sensor: analog voltage output. More info: www.www.makerguides.com */ #define sensorPin A0 int distance = 0; void setup() { Serial.begin(9600); } void read_sensor() { distance = analogRead(sensorPin) * 1; } void print_data() { Serial.print("distance = "); Serial.print(distance); Serial.println(" cm"); } void loop() { read_sensor(); print_data(); delay(1000); } Serial monitorda quyidagi chiqishni ko'rishingiz kerak (Ctrl + Shift + M). Kod qanday ishlaydiBirinchi qadam ulanish pinini aniqlashdir. Bayonot #define doimiy qiymatga nom berish uchun ishlatiladi. Dastur tuzilganda, kompilyator ushbu doimiyga har qanday havolalarni belgilangan qiymat bilan almashtiradi. Shunday qilib, siz hamma joyda eslaysiz sensorPin, kompilyator uni almashtiradi A0 dastur tuzilganda. #define sensorPin A0 Keyin o'lchangan masofani saqlash uchun o'zgaruvchini yaratishimiz kerak. int distance = 0; O'rnatish, biz bir bod kursi serial muloqot boshlash 9600. Keyinchalik biz o'lchangan masofani seriyali monitorda namoyish etamiz, unga Ctrl + Shift + M yoki Asboblar > Serial Monitor yordamida kirish mumkin. Ketma-ket monitorda bod tezligi ham 9600 ga o'rnatilganligiga ishonch hosil qiling. void setup() { Serial.begin(9600); } Shundan so'ng men ikkita funktsiyani yaratdim: read_sensorvaprint_data. Read_sensor funktsiyasida biz shunchaki funktsiya bilan analog kuchlanish sensori chiqishini o'qiymiz analogRead(pin) Arduino platalarida ko'p kanalli, raqamli konvertorga 10 bitli analog mavjud. Bu shuni anglatadiki, u kirish kuchlanishini 0 va ish kuchlanishini 0 dan 1023 gacha bo'lgan butun qiymatlarga moslashtiradi. Arduino Uno-da bu 5 volt / 1024 birlik yoki birlik uchun 4,9 mV ga olib keladi. MB1240 1024 V quvvat manbaidan foydalanganda sm uchun (Vcc/4.9) yoki 5 mV/sm o'lchov omilidan foydalanadi. Bu analogRead qiymatini santimetrga aylantirishni juda oson qiladi, natijani shunchaki 1 ga ko'paytirishingiz mumkin (analogRead(sensorPin) = santimetrdagi masofa). void read_sensor() { distance = analogRead(sensorPin) * 1; } Print_data funktsiyasida biz o'lchangan masofani seriyali monitorga chop etamiz. void print_data() { Serial.print("distance = "); Serial.print(distance); Serial.println(" cm"); } Loopda biz avval masofani olish uchun read_sensor funktsiyasini chaqiramiz va keyin uni ketma-ket monitorga yuborish uchun print_data funktsiyasini chaqiramiz. Men bir kechikish qo'shiladi 1000 millisekundlarda, lekin siz bu kamaytirish mumkin 100 agar istasangiz,. MB1240 ning o'qish chastotasi 10 Gts ni tashkil qiladi, shuning uchun siz soniyada 10 ta o'qishni olishingiz mumkin. void loop() { read_sensor(); print_data(); delay(1000); } Download 451.92 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling