Obsah:
Video: Měření rychlosti motoru pomocí Arduina: 6 kroků
2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-13 06:57
Je obtížné měřit otáčky motoru ??? Myslím, že ne. Zde je jedno jednoduché řešení.
Dokáže to pouze jeden IR senzor a Arduino ve vaší sadě.
V tomto příspěvku poskytnu jednoduchý návod vysvětlující, jak měřit otáčky jakéhokoli motoru pomocí IR senzoru a Arduino UNO/nano
Zásoby:
1. Arduion uno (Amazon) / Arduion nano (Amazon)
2. IR senzor (Amazon)
3. Stejnosměrný motor (Amazon)
4. LCD 16*2 (Amazon)
Použité nástroje
1. Páječka (Amazon)
2. Stripper (Amazon)
Krok 1: Krok: 1 Zajistěte funkční stav senzorů a zařízení
Co je to IR senzor? IR senzor je elektronické zařízení, které vyzařuje světlo, aby zachytilo nějaký předmět v okolí. IR senzor může měřit teplo objektu a také detekovat pohyb. V infračerveném spektru obvykle všechny objekty vyzařují nějakou formu tepelného záření. Tyto typy záření jsou pro naše oči neviditelné, ale infračervený senzor dokáže toto záření detekovat.
Co je to stejnosměrný motor? Stejnosměrný motor (DC) je typ elektrického stroje, který převádí elektrickou energii na mechanickou energii. Stejnosměrné motory odebírají elektrickou energii stejnosměrným proudem a převádějí tuto energii na mechanické otáčení.
Stejnosměrné motory využívají magnetická pole vznikající z generovaných elektrických proudů, které pohání pohyb rotoru upevněného ve výstupním hřídeli. Výstupní točivý moment a otáčky závisí na elektrickém příkonu a konstrukci motoru.
Co je Arduino?
Arduino je open-source elektronická platforma založená na snadno použitelném hardwaru a softwaru. Desky Arduino jsou schopné číst vstupy - světlo na senzoru, prst na tlačítku nebo zprávu na Twitteru - a proměnit je na výstup - aktivace motoru, rozsvícení LED, zveřejnění něčeho online. Můžete své desce sdělit, co má dělat, a to zasláním sady pokynů mikrokontroléru na desce. K tomu použijete programovací jazyk Arduino (na základě zapojení) a software Arduino (IDE) na základě zpracování.
Stáhněte si ARDUINO IDE
Krok 2: Jak to funguje?
Jaká je tedy logika toho ??
Funguje to velmi podobně jako kodér. Kodéry jsou pro začátečníky těžko pochopitelné. Vše, co potřebujete vědět, je, že IR senzor generuje puls a zjišťujeme časový interval mezi jednotlivými impulsy.
V tomto případě IR senzor vyšle impuls do Arduina, kdykoli bude jeho IR paprsek zachycen pomocí vrtulí motorů. Obvykle používáme vrtule se dvěma listy, ale já jsem použil vrtuli se třemi listy, jak je znázorněno na obrázku. v závislosti na počtu listů vrtule musíme při výpočtu otáček upravit některé hodnoty.
uvažujme, že máme vrtuli, která má dva listy. U každého otáčkového motoru čepel zachytí infračervený paprsek dvakrát. Infračervený senzor tedy bude při každém zachycení generovat impulsy.
Nyní musíme napsat program, který by mohl měřit počet impulzů produkovaných IR senzorem v určitém časovém intervalu.
Existuje více než jeden způsob, jak vyřešit problém, ale musíme si vybrat, který z nich je v těchto kódech nejlepší. Změřil jsem dobu mezi přerušeními (IR senzor) Použil jsem funkce micro () k měření doby trvání pulzů v mikrosekundách.
tento vzorec můžete použít k měření RPMRPM = ((1/doba trvání)*1000*1000*60)/čepelí
kde, doba trvání - časový interval mezi impulsy.
60 - sekund až minut
1000 - mlýn na sek
1000 - mikro na mlýn
listy - počet křídel ve vrtuli.
LCD displej - Arduino aktualizuje příkazové a datové registry LCD displeje. Který zobrazuje znaky ASCII na LCD displeji.
Krok 3: Naprogramujte si Arduino pomocí Arduino IDE
#zahrnout
LiquidCrystal lcd (9, 8, 7, 6, 5, 4); const int IR_IN = 2; // IR senzor VSTUP bez znaménka dlouhé prevmicros; // Pro uložení času bez znaménka dlouhé trvání; // Uložení časového rozdílu bez znaménka long lcdrefresh; // Uložení času pro aktualizaci lcd int rpm; // hodnota RPM boolean currentstate; // Aktuální stav IR vstupu skenování boolean prevstate; // Stav IR senzoru v předchozím skenování neplatné nastavení () {pinMode (IR_IN, INPUT); lcd.begin (16, 2); prevmicros = 0; prevstate = LOW; } prázdná smyčka () {//////////////////////////////////////////////////////// /////////////////////////////////////////// RPM Měření aktuální stav = digitalRead (IR_IN); // Přečíst stav infračerveného senzoru if (předchozí stav! = Aktuální stav) // Pokud dojde ke změně na vstupu {if (aktuální stav == NÍZKÝ) // Pokud se vstup změní pouze z VYSOKÉ na NÍZKOU {doba = (mikro () - předchozí mikro); // Časový rozdíl mezi otáčkami v mikrosekundách rpm = ((60000000/doba trvání)/3); // rpm = (1/ čas milis)*1000*1000*60; prevmicros = micros (); // uložení času pro výpočet nektové revoluce}} prevstate = currentstate; // uložte data tohoto skenování (předchozí skenování) pro další skenování ///////////////////////////////////////////// ///////////////////////////////////////////////////// LCD displej pokud ((milis ()-lcdrefresh)> = 100) {lcd.clear (); lcd.setCursor (0, 0); lcd.print („Rychlost motoru“); lcd.setCursor (0, 1); lcd.print ("RPM ="); lcd.print (ot / min); lcdrefresh = milis (); }}
Krok 4: Simulace pomocí Proteus
Tento projekt fungoval naprosto v pořádku, když jsem to zkoušel simulovat pomocí proteus.
Místo použití IR senzoru jsem použil DC pulzní generátor, který bude simulovat IR puls podobný tomu, který se generuje, když IR paprsky dopadnou na listy vrtulí.
v závislosti na použitém senzoru musíte provést změny ve svém programu
IR senzor s LM358 musí použít tento příkaz.
if (currentstate == HIGH) // Pokud se vstup změní pouze z LOW na HIGH
IR senzor s LM359 musí použít tento příkaz.
if (currentstate == LOW) // Pokud se vstup změní pouze z HIGH na LOW
Krok 5: Provedení hardwaru
Pro schematická použití použijte simulační obrázky nebo kódy programů a proveďte odpovídající připojení. Nahrajte kód programu do Arduina a změřte otáčky jakéhokoli motoru. Zůstaňte naladěni na můj další příspěvek a sledujte můj kanál YouTube.