Mundarija:

Arduino yordamida vosita tezligini o'lchash: 6 qadam
Arduino yordamida vosita tezligini o'lchash: 6 qadam

Video: Arduino yordamida vosita tezligini o'lchash: 6 qadam

Video: Arduino yordamida vosita tezligini o'lchash: 6 qadam
Video: O'zgaruvchan To'k Bu juda Oson 2024, Noyabr
Anonim
Arduino yordamida vosita tezligini o'lchash
Arduino yordamida vosita tezligini o'lchash
Arduino yordamida vosita tezligini o'lchash
Arduino yordamida vosita tezligini o'lchash
Arduino yordamida vosita tezligini o'lchash
Arduino yordamida vosita tezligini o'lchash

Dvigatelning aylanish tezligini o'lchash qiyinmi ??? Menimcha bunday emas. Mana bitta oddiy yechim.

Sizning to'plamingizda faqat bitta IQ sensori va Arduino buni qila oladi.

Bu postda men IQ sensori va Arduino UNO/nano yordamida har qanday dvigatelning aylanish tezligini o'lchashni tushuntiradigan oddiy qo'llanmani beraman.

Ta'minot:

1. Arduion uno (Amazon) / Arduion nano (Amazon)

2. IQ sensori (Amazon)

3. Har qanday shahar dvigateli (Amazon)

4. LCD 16*2 (Amazon)

Ishlatilgan asboblar

1. Lehimlash temir (Amazon)

2. Tel -stripper (Amazon)

1 -qadam: 1 -qadam: 1 Sensorlar va qurilmalarning ish holatini ta'minlang

IQ sensori - bu elektron qurilma bo'lib, u atrofdagi narsalarni sezish uchun yorug'lik chiqaradi. IQ sensori ob'ektning issiqligini o'lchaydi, shuningdek harakatni aniqlaydi. Odatda infraqizil spektrda hamma jismlar qandaydir termal nurlanishni tarqatadi. Bu turdagi nurlanishlar ko'zimizga ko'rinmas, lekin infraqizil sensor bu nurlanishni aniqlay oladi.

Doimiy motor (DC) - bu elektr energiyasini mexanik energiyaga aylantiradigan elektr mashinasi. Shahar motorlari elektr energiyasini to'g'ridan -to'g'ri oqim orqali oladi va bu energiyani mexanik aylanishga aylantiradi.

DC dvigatellari ishlab chiqarilgan elektr tokidan kelib chiqadigan magnit maydonlardan foydalanadilar, bu esa chiqish milining ichida joylashgan rotorning harakatlanishini ta'minlaydi. Chiqish momenti va tezligi elektr kirishiga ham, dvigatel dizayniga ham bog'liq.

Arduino nima?

Arduino-bu ochiq manbali elektronika platformasi, uni ishlatish uchun qulay bo'lgan apparat va dasturiy ta'minotga asoslangan. Arduino taxtasi kirishni o'qishi mumkin - sensordagi yorug'lik, tugmachadagi barmoq yoki Twitter -dagi xabar - va uni chiqishga aylantirish - dvigatelni yoqish, LEDni yoqish, Internetda biror narsani chop etish. Siz doskadagi mikrokontrollerga ko'rsatmalar to'plamini yuborib, nima qilish kerakligini taxtangizga ayta olasiz. Buning uchun siz Arduino dasturlash tili (simli aloqa) va ishlov berish asosida Arduino dasturiy ta'minotidan (IDE) foydalanasiz.

ARDUINO IDE -ni yuklab oling

2 -qadam: Bu qanday ishlaydi?

Xo'sh, buning ortida qanday mantiq bor?

U kodlovchiga juda o'xshash ishlaydi. Yangi boshlanuvchilar uchun kodlovchilarni tushunish qiyin. Siz bilishingiz kerak bo'lgan yagona narsa - IQ sensori puls hosil qiladi va biz har bir puls orasidagi vaqt oralig'ini aniqlaymiz.

Bu holda IQ sensori Arduino -ga impuls yuboradi, chunki uning IQ nurlari dvigatel pervanellari bilan kesilganda. Odatda biz ikkita pichoqli pervanellardan foydalanamiz, lekin men rasmda ko'rsatilgandek uch pichoqli pervanelni ishlatganman. pervanel pichoqlar soniga qarab, RPMni hisoblashda biz ba'zi qiymatlarni o'zgartirishimiz kerak.

Keling, bizda ikkita pichoqli pervanel borligini ko'rib chiqaylik. Har bir inqilob dvigateli uchun pichoq IR nurini ikki marta ushlab turadi. Shunday qilib, IQ sensori kesishganda puls hosil qiladi.

Endi biz ma'lum vaqt oralig'ida IQ sensori ishlab chiqaradigan impuls sonini o'lchaydigan dastur yozishimiz kerak.

Muammoni hal qilishning bir necha yo'li bor, lekin biz bu kodlardan qaysi biri yaxshiroq ekanligini tanlashimiz kerak, men uzilishlar orasidagi vaqtni o'lchadim (IQ sensori), men mikro sekundlarda pulslarning davomiyligini o'lchash uchun micros () funktsiyalaridan foydalandim.

RPMRPM = ((1/muddati)*1000*1000*60)/pichoqlarni o'lchash uchun siz ushbu formuladan foydalanishingiz mumkin.

bu erda, davomiyligi - pulslar orasidagi vaqt oralig'i.

60 soniyadan daqiqalarga

1000 - sekundgacha

1000 - mikro dan tegirmongacha

pichoqlar - parvona qanotlari yo'q.

LCD displey - Arduino LCD displeyining buyruq va ma'lumotlar registrlarini yangilaydi. LCD displeyda ASCII belgilarini aks ettiradi.

3 -qadam: Arduino IDE yordamida Arduino -ni dasturlash

#qo'shing

LiquidCrystal lcd (9, 8, 7, 6, 5, 4); const int IR_IN = 2; // IR sensori INPUT belgisiz uzun prevmicros; // Vaqtni imzosiz uzoq vaqt saqlash uchun; // Vaqt farqini saqlash uchun imzosiz uzun lcdrefresh; // int rpmni yangilash uchun lcd vaqtini saqlash uchun; // RPM qiymati boolean joriy holat; // IQ kirishni tekshirishning hozirgi holati boolean oldingi holat; // IQ sensori holati oldingi skanerlash void sozlamalarida () {pinMode (IR_IN, INPUT); lcd.begin (16, 2); prevmikroslar = 0; oldingi holat = LOW; } void loop () {///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////// RPM Measurement currentstate = digitalRead (IR_IN); // IR sensori holatini o'qing, agar (prevstate! = Currentstate) // Agar kirishda o'zgarish bo'lsa {if (currentstate == LOW) // Agar kirish faqat HIGHdan LOWgacha o'zgarsa {muddati = (micros () - prevmicros); // Mikrosaniyadagi aylanish tezligi aylanish tezligi = ((60000000/davomiyligi)/3); // rpm = (1/ millis)*1000*1000*60; prevmikroslar = mikrosxemalar (); // nekt inqilobini hisoblash uchun saqlash vaqti}} prevstate = currentstate; // keyingi ko'rish uchun bu skanerlash (oldingi ko'rish) ma'lumotlarini saqlang ///////////////////////////////////// LCD displey, agar // ((millis ()-lcdrefresh)> = 100) {lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Dvigatel tezligi"); lcd.setCursor (0, 1); lcd.print ("RPM ="); lcd.print (rpm); lcdrefresh = millis (); }}

4 -qadam: Proteus yordamida simulyatsiya

Proteus yordamida simulyatsiya
Proteus yordamida simulyatsiya

Men buni proteus yordamida simulyatsiya qilishga urinib ko'rganimda, bu loyiha juda yaxshi ishladi.

IQ sensoridan foydalanish o'rniga, men shahar impuls generatorini ishlatardim.

Siz foydalanadigan sensorga qarab dasturingizga o'zgartirishlar kiritishingiz kerak

LM358 bilan IR sensori ushbu buyruqni ishlatishi kerak.

if (currentstate == HIGH) // Agar kiritish faqat LOWdan HIGHgacha o'zgarsa

LM359 bilan IR sensori ushbu buyruqni ishlatishi kerak.

if (currentstate == LOW) // Agar kiritish faqat HIGHdan LOWgacha o'zgarsa

5 -qadam: Uskuna bajarilishi

Uskuna bajarilishi
Uskuna bajarilishi
Uskuna bajarilishi
Uskuna bajarilishi
Uskuna bajarilishi
Uskuna bajarilishi

Sxematik tarzda simulyatsiya rasmlarini ishlating yoki dastur kodlariga murojaat qiling va shunga mos ravishda ulanishlarni amalga oshiring. Dastur kodini Arduino -ga yuklang va har qanday dvigatelning aylanish tezligini o'lchang. Keyingi postimni kuzatib boring va YouTube kanalimni tomosha qiling.

Tavsiya: