Mündəricat:
- Addım 1: Addım: 1 Sensorların və cihazların iş şəraitini təmin edin
- Addım 2: Necə işləyir?
- Addım 3: Arduino IDE istifadə edərək Arduino proqramlaşdırın
- Addım 4: Proteus istifadə edərək simulyasiya
- Addım 5: Avadanlıq İcra
Video: Arduino istifadə edərək motor sürətinin ölçülməsi: 6 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:42
Motorun rpmini ölçmək çətindir ??? Məncə belə deyil. Budur sadə bir həll.
Kitinizdəki yalnız bir IR sensoru və Arduino bunu edə bilər.
Bu yazıda, IR sensoru və Arduino UNO/nano istifadə edərək hər hansı bir motorun RPM -ni necə ölçəcəyini izah edən sadə bir dərs verəcəyəm.
Təchizat:
1. Arduion uno (Amazon) / Arduion nano (Amazon)
2. IR Sensor (Amazon)
3. Hər hansı bir DC mühərriki (Amazon)
4. LCD 16*2 (Amazon)
İstifadə olunan alətlər
1. Lehimləmə Dəmiri (Amazon)
2. Tel çıxarıcı (Amazon)
Addım 1: Addım: 1 Sensorların və cihazların iş şəraitini təmin edin
IR sensoru, ətrafdakı bəzi obyektləri hiss etmək üçün işığı yayan elektron bir cihazdır. Bir IR sensoru bir cismin istiliyini ölçə bilər, həm də hərəkəti təyin edə bilər. Ümumiyyətlə, infraqırmızı spektrdə bütün cisimlər bir növ termal radiasiya yayır. Bu tip şüalar gözlərimizə görünmür, ancaq infraqırmızı sensorlar bu şüaları aşkar edə bilir.
Bir DC Motor nədir? Birbaşa cərəyan (DC) mühərriki elektrik enerjisini mexaniki enerjiyə çevirən bir elektrik maşın növüdür. DC mühərrikləri elektrik enerjisini birbaşa cərəyandan alır və bu enerjini mexaniki fırlanmaya çevirir.
DC mühərrikləri, çıxış şaftı içərisində sabitlənmiş bir rotorun hərəkətini təmin edən elektrik cərəyanlarından yaranan maqnit sahələrindən istifadə edir. Çıxış torku və sürəti həm elektrik girişinə, həm də motorun dizaynına bağlıdır.
Arduino nədir?
Arduino, istifadəsi asan olan hardware və proqram təminatına əsaslanan açıq mənbəli elektronika platformasıdır. Arduino lövhələri girişləri oxuya bilir - sensora işıq, düyməyə barmaq və ya Twitter mesajı - və onu çıxışa çevirə bilər - motoru işə salır, LED yandırır, internetdə nəsə nəşr edir. Lövhədəki mikro nəzarətçiyə bir sıra təlimatlar göndərərək nə edəcəyinizi lövhənizə deyə bilərsiniz. Bunu etmək üçün Arduino proqramlaşdırma dilini (Kablolama əsasında) və İşlənməyə əsaslanan Arduino Proqramını (IDE) istifadə edirsiniz.
ARDUINO IDE yükləyin
Addım 2: Necə işləyir?
Bəs bunun arxasında hansı məntiq dayanır?
Kodlayıcıya çox bənzəyir. Yeni başlayanlar üçün kodlayıcıları başa düşmək çətindir. Bilməyiniz lazım olan bütün IR sensoru nəbz yaradır və hər nəbz arasındakı vaxt aralığını öyrənirik.
Bu vəziyyətdə, IR sensoru, IR şüası mühərriklərin pervaneleri ilə tutulduqda Arduinoya bir nəbz göndərəcəkdir. Normalda iki bıçaqlı pervanelərdən istifadə edirik, amma şəkildəki kimi üç bıçaqlı pervane istifadə etmişəm. pervane bıçaqlarının sayından asılı olaraq RPM hesablayarkən bəzi dəyərləri dəyişdirməliyik.
iki bıçağı olan bir pervanemiz olduğunu düşünək. Hər bir inqilab mühərriki üçün bıçaq iki dəfə IR şüasını tutacaq. Beləliklə, İQ sensoru kəsildikdə zərbələr çıxaracaq.
İndi müəyyən bir zaman aralığında İQ sensoru tərəfindən istehsal olunan pulsları ölçə biləcək bir proqram yazmalıyıq.
Bir problemi həll etməyin birdən çox yolu var, amma bu kodlarda hansının daha yaxşı olduğunu seçməliyəm ki, fasilələr arasındakı müddəti ölçün (IR sensoru) Mikro () funksiyalarından istifadə edərək pulsların müddətini mikro saniyələrdə ölçək.
RPMRPM = ((1/müddəti)*1000*1000*60)/bıçaqları ölçmək üçün bu Formuldan istifadə edə bilərsiniz.
burada, müddəti - impulslar arasındakı vaxt intervalı.
60 saniyədən dəqiqəyə qədər
1000 - saniyədən milədək
1000 - mikrondan dəyirmana
bıçaqlar - pervanədə qanad yoxdur.
LCD Ekran - Arduino, LCD ekranın əmr və məlumat qeydlərini yeniləyir. LCD ekranda ASCII simvollarını göstərən.
Addım 3: Arduino IDE istifadə edərək Arduino proqramlaşdırın
#daxil edin
LiquidCrystal lcd (9, 8, 7, 6, 5, 4); const int IR_IN = 2; // IR sensoru INPUT işarəsiz uzun prevmicros; // İmzasız uzun müddət saxlamaq üçün; // Zaman fərqini saxlamaq üçün imzasız uzun lcdrefresh; // int rpm yeniləmək üçün lcd üçün vaxt saxlamaq üçün; // RPM dəyəri boolean cari vəziyyət; // IR giriş taramasının mövcud vəziyyəti boolean əvvəlki vəziyyət; // Əvvəlki tarama boşluq quruluşunda IR sensoru vəziyyəti () {pinMode (IR_IN, INPUT); lcd.begin (16, 2); prevmicros = 0; prevstate = LOW; } boşluq döngəsi () {//////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////, // IR sensoru vəziyyətini oxuyun, əgər (prevstate! = Currentstate) // Girişdə dəyişiklik olarsa {if (currentstate == LOW) // Giriş yalnız HIGH -dan LOW -a dəyişərsə {duration = (micros () - prevmicros); // Mikrosaniyə rpm -də inqilab arasındakı vaxt fərqi = ((60000000/müddəti)/3); // rpm = (1/ zaman millisi)*1000*1000*60; prevmicros = micros (); // nect inqilabının hesablanması üçün mağaza vaxtı}} prevstate = currentstate; // növbəti tarama üçün bu tarama (əvvəlki tarama) məlumatlarını saxla ///////////////////////////////////// LCD ekran, əgər // ((millis ()-lcdrefresh)> = 100) {lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Motor Sürəti"); lcd.setCursor (0, 1); lcd.print ("RPM ="); lcd çap (rpm); lcdrefresh = millis (); }}
Addım 4: Proteus istifadə edərək simulyasiya
Proteusun köməyi ilə bunu simulyasiya etməyə çalışdığım zaman bu layihə mükəmməl işləyib.
İQ sensoru istifadə etmək əvəzinə, İK şüaları pervane bıçaqlarına çırpıldıqda meydana gələnə bənzər İK nəbzini simulyasiya edən DC nəbz generatorundan istifadə etdim.
istifadə etdiyiniz sensordan asılı olaraq proqramınızda dəyişiklik etməlisiniz
LM358 ilə IR sensoru bu əmri istifadə etməlidir.
if (currentstate == HIGH) // Giriş yalnız LOW -dan HIGH -a dəyişərsə
LM359 ilə IR sensoru bu əmri istifadə etməlidir.
if (currentstate == LOW) // Giriş yalnız HIGH -dan LOW -a dəyişərsə
Addım 5: Avadanlıq İcra
Şematik olaraq simulyasiya şəkillərindən istifadə edin və ya proqram kodlarına baxın və əlaqələri buna uyğun olaraq qurun. Proqram kodunu Arduinoya yükləyin və hər hansı bir motorun RPM -ni ölçün. Növbəti yazımı izləməyə davam edin və YouTube kanalımı izləyin.
Tövsiyə:
Arduino istifadə edərək Güc Təchizatı Tezliyi və Gərginlik Ölçülməsi: 6 addım
Arduino istifadə edərək enerji təchizatı tezliyi və gərginlik ölçülməsi: Giriş: Bu layihənin məqsədi Hindistanda 220 ilə 240 volt və 50Hz arasında olan təchizat tezliyini və gərginliyini ölçməkdir. Siqnal çəkmək, tezliyi və gərginliyi hesablamaq üçün bir Arduino istifadə etdim, başqa mikrokontlardan istifadə edə bilərsiniz
HMC5883 və Arduino Nano istifadə edərək Maqnit Sahəsinin Ölçülməsi: 4 addım
HMC5883 və Arduino Nano istifadə edərək Maqnit Sahəsinin Ölçülməsi: HMC5883, aşağı sahə maqnit algılaması üçün hazırlanmış rəqəmsal bir kompasdır. Bu cihaz +/- 8 Oe geniş bir maqnit sahəsinə və 160 Hz çıxış sürətinə malikdir. HMC5883 sensoru avtomatik degaussing kəmər sürücüləri, ofset ləğvi və
CPS120 və Arduino Nano istifadə edərək təzyiq ölçülməsi: 4 addım
CPS120 və Arduino Nano istifadə edərək təzyiq ölçülməsi: CPS120, tam kompensasiya edilmiş çıxışı olan yüksək keyfiyyətli və aşağı qiymətli kapasitiv mütləq təzyiq sensoru. Çox az enerji sərf edir və təzyiqin ölçülməsi üçün ultra kiçik Mikroelektromekanik Sensordan (MEMS) ibarətdir. Sigma-delta əsaslı
STS21 və Arduino Nano istifadə edərək temperatur ölçülməsi: 4 addım
STS21 və Arduino Nano istifadə edərək İstilik Ölçmə: STS21 Rəqəmsal Temperatur Sensoru üstün performans və yer qənaət edən ayaq izi təqdim edir. Rəqəmsal, I2C formatında kalibrlənmiş, xətti siqnallar verir. Bu sensorun istehsalı CMOSens texnologiyasına əsaslanaraq üstün xüsusiyyətlərə malikdir
Arduino istifadə edərək DC gərginliyinin ölçülməsi: 5 addım
Arduino istifadə edərək DC gərginliyinin ölçülməsi: Bu layihədə sizə arduino istifadə edərək 50 V -a qədər DC gərginliyini necə ölçəcəyinizi və OLED ekran modulu hissəsində arduino UNOoled ekran 10k ohm müqavimətçi 1k ohm müqavimətçi kabeli lazım olduğunu göstərəcəyəm