V tomto tutoriálu budeme propojovat stejnosměrný motor s Arduino UNO a řídit jeho rychlost pomocí konceptu PWM (Pulse Width Modulation). Tato funkce je v UNO povolena k získání proměnného napětí nad konstantním napětím. Zde je vysvětlena metoda PWM; zvažte jednoduchý obvod, jak je znázorněno na obrázku.
Pokud je tlačítko stisknuto, pokud je to na obrázku, motor se začne otáčet a bude v pohybu, dokud nebude tlačítko stisknuto. Toto lisování je spojité a je znázorněno v první vlně obrázku. Pokud v daném případě zvažte, že tlačítko je stisknuto po dobu 8 ms a otevřeno po dobu 2 ms po dobu 10 ms, v tomto případě motor nezažije úplné napětí baterie 9 V, protože tlačítko je stisknuto pouze po dobu 8 ms, takže napětí svorky RMS napříč motor bude kolem 7V. Kvůli tomuto sníženému RMS napětí se motor bude otáčet, ale se sníženou rychlostí. Nyní je průměrné zapnutí po dobu 10 ms = doba zapnutí / doba zapnutí + doba vypnutí, toto se nazývá pracovní cyklus a je 80% (8 / (8 + 2)).
Ve druhém a třetím případě je tlačítko stisknuto ještě méně ve srovnání s prvním případem. Z tohoto důvodu se napětí svorek RMS na svorkách motoru ještě dále snižuje. Díky tomuto sníženému napětí se otáčky motoru ještě dále snižují. Toto snížení rychlosti s nepřetržitým pracovním cyklem nastane až do bodu, kdy napětí svorky motoru nebude dostatečné k otáčení motoru.
Tímto můžeme dojít k závěru, že PWM lze použít ke změně rychlosti motoru.
Než půjdeme dále, musíme diskutovat o H-BRIDGE. Nyní má tento obvod hlavně dvě funkce, první je pohánět stejnosměrný motor z řídicích signálů s nízkým výkonem a druhým je změna směru otáčení stejnosměrného motoru.
Obrázek 1
Obrázek 2
Všichni víme, že pro stejnosměrný motor, abychom mohli změnit směr otáčení, musíme změnit polaritu napájecího napětí motoru. Abychom změnili polaritu, použijeme H-můstek. Nyní na obrázku 1 máme čtyři přepínače. Jak je znázorněno na obrázku 2, pro otáčení motoru A1 a A2 jsou uzavřeny. Z tohoto důvodu protéká proud motorem zprava doleva, jak je znázorněno ve 2. části obrázku 3. Prozatím zvažte motor se otáčí ve směru hodinových ručiček. Nyní, když jsou spínače A1 a A2 rozpojeny, B1 a B2 jsou sepnuty. Proud motorem protéká zleva doprava, jak je znázorněno na 1. st část obrázku 3. Tento směr toku proudu je opačný k prvnímu a proto vidíme opačný potenciál na svorce motoru k prvnímu, takže se motor otáčí proti směru hodinových ručiček. Takto funguje H-BRIDGE. Nízkoenergetické motory však mohou být poháněny H-BRIDGE IC L293D.
L293D je integrovaný obvod H-BRIDGE navržený pro pohon stejnosměrných motorů s nízkým výkonem a je znázorněn na obrázku. Tento IC se skládá ze dvou h-můstků, takže může řídit dva stejnosměrné motory. Tento IC lze tedy použít k pohonu motorů robota ze signálů mikrokontroléru.
Jak již bylo diskutováno dříve, tento IC má schopnost měnit směr otáčení stejnosměrného motoru. Toho je dosaženo kontrolou úrovní napětí na INPUT1 a INPUT2.
Povolit PIN |
Vstupní kolík 1 |
Vstupní pin 2 |
Směr motoru |
Vysoký |
Nízký |
Vysoký |
Odbočit vpravo |
Vysoký |
Vysoký |
Nízký |
Odbočit vlevo |
Vysoký |
Nízký |
Nízký |
Stop |
Vysoký |
Vysoký |
Vysoký |
Stop |
Jak je znázorněno na obrázku výše, pro otáčení ve směru hodinových ručiček by měla být 2A vysoká a 1A nízká. Podobně pro proti směru hodinových ručiček by 1A měla být vysoká a 2A by měla být nízká.
Jak je znázorněno na obrázku, Arduino UNO má 6 PWM kanálů, takže můžeme získat PWM (variabilní napětí) na kterémkoli z těchto šesti pinů. V tomto tutoriálu použijeme PIN3 jako PWM výstup.
Hardware: ARDUINO UNO, napájecí zdroj (5 V), kondenzátor 100 uF, LED, tlačítka (dva kusy), odpor 10 KΩ (dva kusy).
Software: arduino IDE (Arduino v noci).
Kruhový diagram
Obvod je zapojen do kontaktního pole podle výše uvedeného schématu zapojení. Při připojování svorek LED však musíte dávat pozor. Ačkoli tlačítka v tomto případě vykazují skákací efekt, nezpůsobuje to značné chyby, takže se tentokrát nemusíme bát.
PWM od UNO je snadné, za normálních okolností není nastavení ovladače ATMEGA pro signál PWM snadné, musíme definovat mnoho registrů a nastavení pro přesný signál, ale v ARDUINO nemusíme všechny ty věci řešit.
Ve výchozím nastavení jsou všechny soubory záhlaví a registry předdefinovány ARDUINO IDE, jednoduše je musíme zavolat a to je to, že budeme mít výstup PWM na příslušném pinu.
Nyní, abychom získali výstup PWM na vhodném pinu, musíme pracovat na třech věcech,
|
Nejprve musíme vybrat výstupní pin PWM ze šesti pinů, poté musíme nastavit tento pin jako výstup.
Dále musíme povolit funkci PWM UNO voláním funkce „analogWrite (pin, hodnota)“. Zde 'pin' představuje číslo pinu, kde potřebujeme výstup PWM, dáváme jej jako '3'. Takže na PIN3 dostáváme výstup PWM.
Hodnota je pracovní cyklus zapnutí, mezi 0 (vždy vypnuto) a 255 (vždy zapnuto). Toto číslo zvýšíme a snížíme stisknutím tlačítka.
UNO má maximální rozlišení „8“, nelze tedy pokračovat dále, tedy hodnoty od 0-255. Je však možné snížit rozlišení PWM pomocí příkazu „analogWriteResolution ()“, zadáním hodnoty od 4 do 8 v závorkách můžeme změnit její hodnotu ze čtyř bitů PWM na osm bitů PWM.
Přepínač slouží ke změně směru otáčení stejnosměrného motoru.