V tomto výučbe sa chystáme prepojiť jednosmerný motor s Arduino UNO a riadiť jeho rýchlosť pomocou konceptu PWM (Pulse Width Modulation). Táto funkcia je v UNO povolená na získanie premenlivého napätia nad konštantným napätím. Tu je vysvetlená metóda PWM; zvážte jednoduchý obvod, ako je znázornené na obrázku.
Ak je tlačidlo stlačené, ak je to na obrázku, motor sa začne otáčať a bude v pohybe, kým nestlačíte tlačidlo. Toto stlačenie je nepretržité a je znázornené v prvej vlne obrázku. Ak v danom prípade zvážime stlačenie tlačidla na 8 ms a otvorenie na 2 ms v cykle 10 ms, v tomto prípade motor nebude mať úplné napätie batérie 9 V, pretože tlačidlo je stlačené iba na 8 ms, takže napätie svorky RMS naprieč motor bude okolo 7V. Kvôli tomuto zníženému RMS napätiu sa motor bude otáčať, ale zníženou rýchlosťou. Teraz je priemerné zapnutie po dobu 10 ms = čas zapnutia / (čas zapnutia + čas vypnutia), toto sa nazýva pracovný cyklus a je 80% (8 / (8 + 2)).
V druhom a treťom prípade je tlačidlo stlačené ešte kratšie v porovnaní s prvým prípadom. Z tohto dôvodu sa napätie svorky RMS na svorkách motora ešte viac zníži. Vďaka tomuto zníženému napätiu sa otáčky motora ešte ďalej znižujú. Toto zníženie rýchlosti s nepretržitým pracovným cyklom nastáva až do bodu, keď svorkové napätie motora nebude dostatočné na to, aby sa motor otočil.
Týmto teda môžeme dospieť k záveru, že PWM možno použiť na zmenu rýchlosti motora.
Než pôjdeme ďalej, musíme diskutovať o moste H-BRIDGE. Teraz má tento obvod hlavne dve funkcie, prvou je pohon jednosmerného motora z riadiacich signálov s nízkym výkonom a druhým je zmena smeru otáčania jednosmerného motora.
postava 1
Obrázok 2
Všetci vieme, že na zmenu jednosmerného motora je potrebné zmeniť polaritu napájacieho napätia motora. Aby sme zmenili polaritu, používame H-mostík. Teraz na obrázku č. 1 máme štyri prepínače. Ako je znázornené na obrázku 2, motor sa otáča, A1 a A2 sú zatvorené. Z tohto dôvodu preteká prúd motorom sprava doľava, ako je znázornené v druhej časti obrázku 3. Zatiaľ zvážte, či sa motor otáča v smere hodinových ručičiek. Teraz, keď sú spínače A1 a A2 otvorené, sú kontakty B1 a B2 zatvorené. Prúd motorom preteká zľava doprava, ako je znázornené na 1. st časť obrázku3. Tento smer prúdenia je opačný ako prvý, takže na svorke motora vidíme opačný potenciál ako prvý, takže sa motor otáča proti smeru hodinových ručičiek. Takto funguje H-BRIDGE. Nízkoenergetické motory však môžu byť poháňané H-BRIDGE IC L293D.
L293D je integrovaný obvod H-BRIDGE navrhnutý na pohon jednosmerných motorov s nízkym výkonom a je znázornený na obrázku. Tento IC sa skladá z dvoch mostíkov typu h, takže môže poháňať dva jednosmerné motory. Takže tento IC možno použiť na pohon motorov robota zo signálov mikrokontroléra.
Ako už bolo uvedené predtým, tento IC má schopnosť meniť smer otáčania jednosmerného motora. To sa dosiahne riadením úrovní napätia na INPUT1 a INPUT2.
Povoliť pripnutie |
Vstupný pin 1 |
Vstupný pin 2 |
Smer motora |
Vysoký |
Nízka |
Vysoký |
Odbočiť doprava |
Vysoký |
Vysoký |
Nízka |
Odbočiť vľavo |
Vysoký |
Nízka |
Nízka |
Prestaň |
Vysoký |
Vysoký |
Vysoký |
Prestaň |
Ako je znázornené na obrázku vyššie, pre otáčanie v smere hodinových ručičiek by mala byť 2A vysoká a 1A nízka. Podobne pre proti smeru hodinových ručičiek by mala byť 1A vysoká a 2A nízka.
Ako je znázornené na obrázku, Arduino UNO má 6 PWM kanálov, takže môžeme získať PWM (premenlivé napätie) na ktoromkoľvek z týchto šiestich pinov. V tomto návode použijeme PIN3 ako výstup PWM.
Hardvér: ARDUINO UNO, napájanie (5v), kondenzátor 100uF, LED, tlačidlá (dva kusy), odpor 10KΩ (dva kusy).
Softvér: arduino IDE (Arduino každú noc).
Schéma zapojenia
Obvod je pripojený k prepojovacej doske podľa schémy zapojenia zobrazenej vyššie. Pri pripájaní svoriek LED je však potrebné venovať pozornosť. Aj keď tlačidlá v tomto prípade vykazujú skákací efekt, nespôsobuje to značné chyby, takže si tentokrát nemusíme robiť starosti.
PWM od UNO je jednoduché, za normálnych okolností nie je nastavenie ATMEGA radiča pre signál PWM jednoduché, musíme definovať veľa registrov a nastavení pre presný signál, avšak v ARDUINO nemusíme všetky tieto veci riešiť.
V predvolenom nastavení sú všetky súbory hlavičiek a registre preddefinované ARDUINO IDE, jednoducho ich musíme zavolať a to je to, že budeme mať výstup PWM na príslušnom kolíku.
Teraz, aby sme dostali výstup PWM na vhodný pin, musíme pracovať na troch veciach,
|
Najprv musíme zvoliť výstupný pin PWM zo šiestich pinov, potom musíme tento pin nastaviť ako výstupný.
Ďalej musíme povoliť funkciu PWM UNO volaním funkcie „analogWrite (pin, hodnota)“. Sem predstavuje „pin“ číslo PINu, kde potrebujeme výstup PWM, a dávame ho ako „3“. Takže na PIN3 dostávame výstup PWM.
Hodnota je zapínací pracovný cyklus medzi 0 (vždy vypnuté) a 255 (vždy zapnuté). Toto číslo zvýšime a znížime stlačením tlačidla.
UNO má maximálne rozlíšenie „8“, nemožno teda ísť ďalej, a teda hodnoty od 0 do 255. Je však možné znížiť rozlíšenie PWM pomocou príkazu „analogWriteResolution ()“, zadaním hodnoty od 4 do 8 v zátvorkách môžeme zmeniť jej hodnotu zo štvorbitového PWM na osembitový PWM.
Spínač slúži na zmenu smeru otáčania jednosmerného motora.