- Impulzus szélesség moduláció:
- Anyag szükséges
- Kördiagramm
- Kód és magyarázat
- A DC motor fordulatszám-szabályozása Arduino segítségével
Az egyenáramú motor a leggyakrabban használt motor a robotika és az elektronika projektjeiben. Az egyenáramú motor fordulatszámának szabályozására különféle módszerek vannak, például a sebesség a hőmérséklet alapján automatikusan szabályozható, de ebben a projektben a DC motor fordulatszámának szabályozására PWM módszert alkalmazunk. Ebben az Arduino Motor Speed Control projektben a fordulatszám a potenciométer gombjának forgatásával szabályozható.
Impulzus szélesség moduláció:
Mi az a PWM? A PWM egy olyan technika, amelynek segítségével szabályozhatjuk a feszültséget vagy a teljesítményt. Egyszerűbb megértése érdekében, ha 5 V-ot használ a motor vezetésére, akkor a motor bizonyos sebességgel mozog, ha most 2-szer csökkentjük az alkalmazott feszültséget, akkor 3 V-ot alkalmazunk a motorra, akkor a motor fordulatszáma is csökken. Ezt a koncepciót használják a projektben a feszültség PWM segítségével történő szabályozására. Ebben a cikkben részletesen ismertettük a PWM-et. Ellenőrizze ezt az áramkört is, ahol a PWM-et használják a LED fényerejének szabályozásához: 1 Wattos LED-szabályzó.
% Üzemi ciklus = (TON / (TON + TOFF)) * 100 Hol, T ON = a négyzethullám HIGH ideje T OFF = a négyzethullám LOW ideje
Ha az ábrán látható kapcsoló egy ideig folyamatosan zárva van, akkor a motor folyamatosan bekapcsol. Ha a kapcsolót 8 ms-ra zárják és 2 ms-ra nyitják 10 ms-os ciklus alatt, akkor a motor csak 8 ms-os idõ alatt áll BE. Most az átlagos terminál 10 ms alatt = bekapcsolási idő / (bekapcsolási idő + kikapcsolási idő), ezt hívják munkakörnek és 80% -os (8 / (8 + 2)), tehát az átlag a kimeneti feszültség az akkumulátor feszültségének 80% -a lesz. Most az emberi szem nem látja, hogy a motor 8 ms-ra be van kapcsolva, és 2 ms-ra ki van kapcsolva, ezért úgy fog kinézni, mintha az egyenáramú motor 80% -os sebességgel forogna.
A második esetben a kapcsolót 5 ms-ig zárták és 5 ms-ra nyitották 10 ms időtartam alatt, így a kimeneten az átlagos kapocsfeszültség az akkumulátor feszültségének 50% -a lesz. Mondja el, ha az akkumulátor feszültsége 5 V, és az üzemi ciklus 50%, és így az átlagos kapocsfeszültség 2,5 V lesz.
A harmadik esetben az üzemi ciklus 20%, az átlagos kapocsfeszültség pedig az akkumulátor feszültségének 20% -a.
Számos projektünkben használtuk a PWM-t az Arduinóval:
- Arduino alapú LED dimmer PWM használatával
- Hőmérséklet-szabályozású ventilátor Arduino segítségével
- DC motor vezérlés az Arduino segítségével
- AC ventilátor sebességszabályozása az Arduino és a TRIAC segítségével
Többet megtudhat a PWM-ről, ha különböző projekteken keresztül hajt végre PWM-et.
Anyag szükséges
- Arduino UNO
- DC motor
- 2N2222 tranzisztor
- Potenciométer 100k ohm
- Kondenzátor 0,1 uF
- Kenyérlemez
- Ugróhuzalok
Kördiagramm
Az Arduino DC motor fordulatszám-szabályozásának kapcsolási rajza a PWM segítségével alább látható:
Kód és magyarázat
Az Arduino DC Motor Control teljes kódját a potenciométer segítségével a végén adjuk meg.
Az alábbi kódot, már inicializált változó C1 és C2 és célhoz analóg pin A0 a potenciométer kimeneti és 12 -én Pin „PWM”.
int pwmPin = 12; int pot = A0; int c1 = 0; int c2 = 0;
Most, az alábbi kódban állítsa be az A0 tűt bemenetként és 12-t (ami a PWM tű) kimenetként.
void setup () { pinMode (pwmPin, OUTPUT); // deklarálja a 12. tűt kimeneti pinMode (pot, INPUT); // deklarálja bemenetként az A0 tűt }
Most a void loop () -ben az analóg értéket (A0-ból) olvassuk le az analogRead (pot) használatával, és elmentjük a c2 változóba. Ezután vonja le a c2 értéket 1024-ből, és mentse az eredményt a c1-be. Aztán, hogy a PWM 12 csap th Arduino HIGH majd késéssel érték c1 teszi, hogy pin LOW. Ismét a c2 érték késleltetése után a hurok folytatódik.
Az analóg érték 1024-ből való levonásának oka az, hogy az Arduino Uno ADC 10 bites felbontású (tehát az egész értékek 0 - 2 ^ 10 = 1024 értékek). Ez azt jelenti, hogy a 0 és 5 volt közötti bemeneti feszültségeket 0 és 1024 közötti egész értékekre fogja feltérképezni. Tehát, ha az input anlogValue értéket (5/1024) -re szorozzuk, akkor megkapjuk a bemenő feszültség digitális értékét. Itt megtudhatja, hogyan használhatja az ADC bevitelt Arduino-ban.
void loop () { c2 = analogRead (pot); c1 = 1024-c2; digitalWrite (pwmPin, HIGH); // beállítja a 12. tűt HIGH delayMicroseconds (c1); // várja a c1 uS (high time) digitalWrite-t (pwmPin, LOW); // beállítja a 12. tűt LOW delayMicroseconds (c2); // várja a c2 uS-t (alacsony idő) }
A DC motor fordulatszám-szabályozása Arduino segítségével
Ebben az áramkörben az egyenáramú motor fordulatszámának szabályozásához 100K ohmos potenciométert használunk a PWM jel munkaciklusának megváltoztatására. 100K ohmos potenciométer van kötve az analóg bemeneti pin A0 a Arduino UNO és az egyenáramú motor van csatlakoztatva a 12 -én pin a Arduino (ami a PWM pin). Az Arduino program működése nagyon egyszerű, mivel leolvassa a feszültséget az A0 analóg tűről. Az analóg csap feszültségét a potenciométer segítségével lehet változtatni. Néhány szükséges számítás elvégzése után a munkaciklust ennek megfelelően állítják be.
Például, ha 256 értéket táplálunk az analóg bemenetre, akkor a HIGH idő 768ms (1024-256), a LOW pedig 256ms lesz. Ezért egyszerűen azt jelenti, hogy a munkaciklus 75%. A szemünk nem lát ilyen magas frekvenciájú rezgést, és úgy tűnik, hogy a motor folyamatosan be van kapcsolva a sebesség 75% -ával. Tehát így tudjuk végrehajtani a motor sebességszabályozását az Arduino segítségével.