Tartalomjegyzék:

A motor fordulatszámának mérése Arduino használatával: 6 lépés
A motor fordulatszámának mérése Arduino használatával: 6 lépés

Videó: A motor fordulatszámának mérése Arduino használatával: 6 lépés

Videó: A motor fordulatszámának mérése Arduino használatával: 6 lépés
Videó: Как измерить любое напряжение постоянного тока с Arduino ARDVC-01 2024, November
Anonim
Motor fordulatszám mérés Arduino használatával
Motor fordulatszám mérés Arduino használatával
Motor fordulatszám mérés Arduino használatával
Motor fordulatszám mérés Arduino használatával
Motor fordulatszám mérés Arduino használatával
Motor fordulatszám mérés Arduino használatával

Nehéz mérni a motor fordulatszámát ??? Nem hiszem. Íme egy egyszerű megoldás.

A készletben csak egy infravörös érzékelő és Arduino képes erre.

Ebben a bejegyzésben egy egyszerű oktatóanyagot adok, amely elmagyarázza, hogyan mérhető bármely motor fordulatszáma infravörös érzékelő és Arduino UNO/nano használatával

Kellékek:

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

2. IR érzékelő (Amazon)

3. DC motor bármilyen (Amazon)

4. LCD 16*2 (Amazon)

Használt eszközök

1. Forrasztópáka (Amazon)

2. Drótcsíkoló (Amazon)

1. lépés: 1. lépés: Ellenőrizze az érzékelők és eszközök működési állapotát

Mi az infravörös érzékelő? Az infravörös érzékelő egy elektronikus eszköz, amely fényt bocsát ki, hogy érzékelje a környezet bizonyos tárgyait. Az infravörös érzékelő képes mérni a tárgy hőjét, valamint érzékeli a mozgást. Általában az infravörös spektrumban az összes tárgy valamilyen hősugárzást sugároz. Az ilyen típusú sugárzások láthatatlanok a szemünk számára, de az infravörös érzékelő képes észlelni ezeket a sugárzásokat.

Mi az egyenáramú motor? Az egyenáramú (DC) motor egy olyan elektromos gép, amely az elektromos energiát mechanikai energiává alakítja. Az egyenáramú motorok egyenáramon keresztül veszik az elektromos energiát, és ezt az energiát mechanikai forgássá alakítják át.

Az egyenáramú motorok mágneses mezőket használnak, amelyek a generált elektromos áramokból származnak, és amelyek a kimenő tengelyen rögzített rotor mozgását hajtják végre. A kimeneti nyomaték és fordulatszám mind az elektromos bemenet, mind a motor kialakításától függ.

Mi az Arduino?

Az Arduino egy nyílt forráskódú elektronikai platform, amely könnyen használható hardverre és szoftverre épül. Az Arduino táblák képesek olvasni a bemeneteket - fényt egy érzékelőn, egy ujjat a gombon vagy egy Twitter üzenetet - és kimenetké alakítani - aktiválni egy motort, bekapcsolni egy LED -et, vagy közzétenni valamit az interneten. Elmondhatja a táblának, hogy mit kell tennie, ha utasításokat küld a táblán lévő mikrokontrollernek. Ehhez használja az Arduino programozási nyelvet (Wiring -en alapuló) és az Arduino Software -t (IDE), amely a Processing -en alapul.

Töltse le az ARDUINO IDE -t

2. lépés: Hogyan működik?

Akkor mi ennek a logikája ??

A kódolóhoz hasonlóan működik. A kódolókat kezdőknek nehéz megérteni. Csak annyit kell tudnia, hogy az infravörös érzékelő impulzust generál, és megtudjuk az egyes impulzusok közötti időintervallumot.

Ebben az esetben az infravörös érzékelő impulzust küld az Arduino -nak, amikor az infravörös sugarat elfogják a motor propellerei. Általában két lapáttal ellátott propellereket használunk, de én három lapáttal ellátott propellert használtam, ahogy az ábrán látható. a légcsavar lapátok számától függően néhány értéket módosítanunk kell az RPM számításakor.

tegyük fel, hogy van egy propellerünk, amelynek két lapátja van. Minden fordulatos motor esetében a penge kétszer elfogja az infravörös sugarat. Így az infravörös érzékelő impulzusokat állít elő, amikor valaha elkapja.

Most olyan programot kell írnunk, amely meg tudja mérni az infravörös érzékelő által generált számimpulzusokat egy adott időközönként.

A probléma megoldásának több módja is van, de ki kell választanunk, hogy melyik a legjobb ebben a kódban. Megmértem a megszakítások közötti időtartamot (IR -érzékelő) A micros () függvényeket használtam az impulzusok időtartamának mérésére mikro másodpercben.

ezt a képletet használhatja az RPM RPM = ((1/időtartam)*1000*1000*60)/pengék mérésére

ahol, időtartam - az impulzusok közötti időintervallum.

60 másodperc - perc

1000 mill - másodperc

1000 - mikro malomig

lapátok - a szárnyak száma a légcsavarban.

LCD kijelző - Az Arduino frissíti az LCD kijelző parancs- és adatregisztereit. Amely az ASCII karaktereket jeleníti meg az LCD kijelzőn.

3. lépés: Programozza Arduino -ját az Arduino IDE használatával

#befoglalni

LiquidCrystal LCD (9, 8, 7, 6, 5, 4); const int IR_IN = 2; // IR érzékelő INPUT unsigned long prevmicros; // Az aláírás nélküli hosszú ideig történő tárolás; // Az időkülönbség tárolása unsigned long lcdrefresh; // Idő tárolása az LCD frissítéséhez int rpm; // RPM érték Boolean flowstream; // Az IR bemenet szkennelés aktuális állapota boolean prevstate; // Az infravörös érzékelő állapota az előző szkennelés üres beállításában () {pinMode (IR_IN, INPUT); lcd. kezdet (16, 2); prevmicros = 0; prevstate = LOW; } void loop () {///////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// RPM Measurement currentstate = digitalRead (IR_IN); // Olvassa el az infravörös érzékelő állapotát if (prevstate! = Currentstate) // Ha változás történik a bemenetben {if (currentstate == LOW) // Ha a bemenet csak HIGH -ról LOW -ra változik {duration = (micros () - prevmicros); // A fordulat közötti időkülönbség mikroszekundumos fordulatszámban = ((60000000/időtartam)/3); // rpm = (1/ időmillisz)*1000*1000*60; prevmicros = micros (); // tárolási idő a nekt forradalom kiszámításához}} prevstate = currentstate; // tárolja ezeket a szkennelési (előzetes vizsgálat) adatokat a következő vizsgálathoz ///////////////////////////////////// ///////////////////////////////////////////////////////////- ((millis ()-lcdrefresh)> = 100) {lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Motor sebessége"); lcd.setCursor (0, 1); lcd.print ("RPM ="); lcd.print (rpm); lcdrefresh = millis (); }}

4. lépés: Szimuláció Proteus használatával

Szimuláció a Proteus segítségével
Szimuláció a Proteus segítségével

Ez a projekt tökéletesen működött, amikor megpróbáltam ezt szimulálni a proteus segítségével.

Az IR érzékelő helyett egyenáramú impulzusgenerátort használtam, amely szimulálja az IR impulzust, mint amilyen akkor keletkezik, amikor az infravörös sugarak a légcsavarok lapátjaira ütköznek.

módosítania kell a programot a használt érzékelőtől függően

Az LM358 -as infravörös érzékelőnek ezt a parancsot kell használnia.

if (áramerősség == HIGH) // Ha a bemenet csak LOW -ról HIGH -ra változik

Az LM359 -es infravörös érzékelőnek ezt a parancsot kell használnia.

if (currentstate == LOW) // Ha a bemenet csak HIGH -ról LOW -ra változik

5. lépés: Hardver végrehajtása

Hardver végrehajtása
Hardver végrehajtása
Hardver végrehajtása
Hardver végrehajtása
Hardver végrehajtása
Hardver végrehajtása

Vázlatosan használja a szimulációs képeket vagy a programkódokat, és ennek megfelelően kösse össze a kapcsolatokat. Töltse fel a programkódot az Arduino -ba, és mérje meg bármely motor fordulatszámát. Figyelje a következő bejegyzésemet, és nézze meg YouTube -csatornámat.

Ajánlott: