Obsah:

Meranie rýchlosti motora pomocou Arduina: 6 krokov
Meranie rýchlosti motora pomocou Arduina: 6 krokov

Video: Meranie rýchlosti motora pomocou Arduina: 6 krokov

Video: Meranie rýchlosti motora pomocou Arduina: 6 krokov
Video: Control Position and Speed of Stepper motor with L298N module using Arduino 2024, November
Anonim
Meranie rýchlosti motora pomocou Arduina
Meranie rýchlosti motora pomocou Arduina
Meranie rýchlosti motora pomocou Arduina
Meranie rýchlosti motora pomocou Arduina
Meranie rýchlosti motora pomocou Arduina
Meranie rýchlosti motora pomocou Arduina

Je ťažké merať otáčky motora ??? Nemyslím si to. Tu je jedno jednoduché riešenie.

Dokáže to iba jeden IR senzor a Arduino vo vašej súprave.

V tomto príspevku poskytnem jednoduchý návod, ktorý vysvetľuje, ako merať otáčky akéhokoľvek motora pomocou infračerveného senzora a Arduino UNO/nano

Zásoby:

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

2. IR senzor (Amazon)

3. DC motor ľubovoľný (Amazon)

4. LCD 16*2 (Amazon)

Použité nástroje

1. Spájkovačka (Amazon)

2. Stripper (Amazon)

Krok 1: Krok: 1 Zaistite funkčný stav senzorov a zariadení

Čo je to IR senzor? IR senzor je elektronické zariadenie, ktoré vyžaruje svetlo a sníma tak nejaký predmet v okolí. IR senzor môže merať teplo objektu a tiež detegovať pohyb. V infračervenom spektre zvyčajne všetky objekty vyžarujú nejakú formu tepelného žiarenia. Tieto typy žiarenia sú pre naše oči neviditeľné, ale infračervený senzor dokáže tieto žiarenia detekovať.

Čo je to jednosmerný motor? Jednosmerný motor (DC) je typ elektrického stroja, ktorý premieňa elektrickú energiu na mechanickú energiu. Jednosmerné motory odoberajú elektrickú energiu jednosmerným prúdom a premieňajú ju na mechanickú rotáciu.

Jednosmerné motory používajú magnetické polia, ktoré vznikajú z generovaných elektrických prúdov, ktoré poháňajú pohyb rotora upevneného vo výstupnom hriadeli. Výstupný krútiaci moment a otáčky závisia od elektrického vstupu a konštrukcie motora.

Čo je Arduino?

Arduino je elektronická platforma s otvoreným zdrojovým kódom založená na ľahko použiteľnom hardvéri a softvéri. Dosky Arduino sú schopné čítať vstupy - svetlo na senzore, prst na tlačidle alebo správu z Twitteru - a premeniť ho na výstup - aktivácia motora, zapnutie LED diódy, zverejnenie niečoho online. Svojej doske môžete povedať, čo má urobiť, a to tak, že pošlete sadu inštrukcií mikrokontroléru na doske. Na to použijete programovací jazyk Arduino (na základe zapojenia) a softvér Arduino (IDE) na základe spracovania.

Stiahnite si ARDUINO IDE

Krok 2: Ako to funguje?

Aká je teda logika tohto ??

Funguje to veľmi podobne ako kodér. Kodéry sú pre začiatočníkov ťažko pochopiteľné. Všetko, čo potrebujete vedieť, je to, že infračervený senzor generuje impulz a zisťujeme časový interval medzi každým impulzom.

V tomto prípade IR senzor vyšle impulz do Arduina, kedykoľvek bude jeho IR lúč zachytený vrtuľami motora. Bežne používame vrtule s dvoma lopatkami, ale ja som použil vrtuľu s tromi lopatkami, ako je znázornené na obrázku. v závislosti od počtu listov vrtule musíme pri výpočte otáčok upraviť niektoré hodnoty.

Uvažujme, že máme vrtuľu, ktorá má dve lopatky. Pri každom revolučnom motore čepeľ zachytí infračervený lúč dvakrát. Infračervený snímač bude teda vytvárať impulzy vždy, keď zachytí.

Teraz musíme napísať program, ktorý by mohol merať počet impulzov produkovaných IR senzorom v konkrétnom časovom intervale.

Existuje viac ako jeden spôsob riešenia problému, ale musíme si vybrať, ktorý z nich je v týchto kódoch najlepší. Zmeral som trvanie medzi prerušeniami (infračervený snímač) Na meranie trvania impulzov v mikro sekundách som použil funkcie micro ().

tento vzorec môžete použiť na meranie otáčok za minútu = ((1/trvanie)*1 000*1 000*60)/čepelí

kde, trvanie - časový interval medzi impulzmi.

60 - sekúnd až minút

1000 - mlyn za sek

1000 - mikro na mletie

lopatky - počet krídel vo vrtuli.

LCD displej - Arduino aktualizuje príkazové a dátové registre LCD displeja. Na displeji sa zobrazujú znaky ASCII.

Krok 3: Programujte svoje Arduino pomocou Arduino IDE

#zahrnúť

LiquidCrystal lcd (9, 8, 7, 6, 5, 4); const int IR_IN = 2; // IR snímač VSTUP bez znamienka dlhé prevmicros; // Uloženie času bez znamienka, dlhé trvanie; // Na uloženie časového rozdielu nepodpísané dlhé lcdrefresh; // Na uloženie času pre lcd na obnovenie int rpm; // hodnota otáčok boolean currentstate; // Aktuálny stav skenovania IR vstupu boolean prevstate; // Stav IR senzora v predchádzajúcom skenovaní neplatné nastavenie () {pinMode (IR_IN, INPUT); lcd.begin (16, 2); prevmicros = 0; predchádzajúci stav = NÍZKY; } prázdna slučka () {//////////////////////////////////////////////////////// /////////////////////////////////////////// RPM Meranie aktuálny stav = digitalRead (IR_IN); // Prečítajte stav infračerveného senzora if (prevstate! = Currentstate) // Ak dôjde k zmene vstupu {if (currentstate == LOW) // Ak sa vstup zmení iba z HIGH na LOW {duration = (micros () - prevmicros); // Časový rozdiel medzi otáčkami v mikrosekundách ot/min = ((60000000/trvanie)/3); // ot/ min = (1/ čas v milisekundách)*1000*1000*60; prevmicros = mikro (); // uloženie času na výpočet revolúcie nektu}} prevstate = currentstate; // uložte údaje tohto skenovania (predchádzajúce skenovanie) pre ďalšie skenovanie /////////////////////////////////////////// ///////////////////////////////////////////////////// LCD displej ak ((milis ()-lcdrefresh)> = 100) {lcd.clear (); lcd.setCursor (0, 0); lcd.print („rýchlosť motora“); lcd.setCursor (0, 1); lcd.print ("RPM ="); lcd.print (ot / min); lcdrefresh = milis (); }}

Krok 4: Simulácia pomocou Proteus

Simulácia pomocou Proteus
Simulácia pomocou Proteus

Tento projekt fungoval úplne dobre, keď som sa to pokúsil simulovať pomocou proteusu.

Namiesto použitia infračerveného senzora som použil generátor jednosmerných impulzov, ktorý bude simulovať infračervený impulz podobný tomu, ktorý sa generuje, keď infračervené lúče dopadnú na lopatky vrtúľ.

v závislosti od použitého senzora musíte vo svojom programe vykonať zmeny

IR senzor s LM358 musí použiť tento príkaz.

if (currentstate == HIGH) // Ak sa vstup zmení iba z LOW na HIGH

IR senzor s LM359 musí použiť tento príkaz.

if (currentstate == LOW) // Ak sa vstup zmení iba z HIGH na LOW

Krok 5: Vykonanie hardvéru

Hardvérové prevedenie
Hardvérové prevedenie
Hardvérové prevedenie
Hardvérové prevedenie
Hardvérové prevedenie
Hardvérové prevedenie

Na schematický účel použite simulačné obrázky alebo kódy programov a podľa toho vytvorte spojenia. Nahrajte kód programu do Arduina a zmerajte otáčky akéhokoľvek motora. Sledujte môj ďalší príspevok a sledujte môj kanál YouTube.

Odporúča: