Mündəricat:

Arduino istifadə edərək motor sürətinin ölçülməsi: 6 addım
Arduino istifadə edərək motor sürətinin ölçülməsi: 6 addım

Video: Arduino istifadə edərək motor sürətinin ölçülməsi: 6 addım

Video: Arduino istifadə edərək motor sürətinin ölçülməsi: 6 addım
Video: Control Position and Speed of Stepper motor with L298N module using Arduino 2024, Noyabr
Anonim
Arduino istifadə edərək motor sürətinin ölçülməsi
Arduino istifadə edərək motor sürətinin ölçülməsi
Arduino istifadə edərək motor sürətinin ölçülməsi
Arduino istifadə edərək motor sürətinin ölçülməsi
Arduino istifadə edərək motor sürətinin ölçülməsi
Arduino istifadə edərək motor sürətinin ölçülməsi

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

Proteusdan istifadə edərək simulyasiya
Proteusdan 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

Avadanlıq İcra
Avadanlıq İcra
Avadanlıq İcra
Avadanlıq İcra
Avadanlıq İcra
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ə: