V tej vadnici bomo povezali enosmerni motor z Arduino UNO in nadzirali njegovo hitrost s pomočjo koncepta PWM (Pulse Width Modulation). Ta funkcija je v UNO omogočena za spreminjanje napetosti nad konstantno napetostjo. Tu je razložena metoda PWM; razmislite o preprostem vezju, kot je prikazano na sliki.
Če na sliki pritisnete gumb, se motor začne vrteti in bo v gibanju, dokler ne pritisnete gumba. To pritiskanje je neprekinjeno in je predstavljeno v prvem valu slike. Če za primer upoštevate, da je gumb pritisnjen za 8 ms in odprt za 2 ms v ciklu 10 ms, v tem primeru motor ne bo občutil celotne napetosti 9V akumulatorja, saj je gumb pritisnjen samo za 8 ms, zato je efektivna napetost terminala čez motor bo približno 7V. Zaradi te zmanjšane efektivne napetosti se bo motor vrtel, vendar z zmanjšano hitrostjo. Zdaj je povprečni vklop v obdobju 10 ms = čas vklopa / (čas vklopa + čas izklopa), to se imenuje delovni cikel in je 80% (8 / (8 + 2)).
V drugem in tretjem primeru je gumb pritisnjen še krajši čas kot v prvem primeru. Zaradi tega se efektivna efektivna napetost na sponkah motorja še dodatno zmanjša. Zaradi te zmanjšane napetosti se hitrost motorja še dodatno zmanjša. To zmanjšanje hitrosti pri neprekinjenem delovnem ciklu se zgodi do točke, ko napetost na sponki motorja ne bo zadostovala za obračanje motorja.
Tako lahko sklepamo, da se lahko PWM uporablja za spreminjanje hitrosti motorja.
Pred nadaljevanjem se moramo pogovoriti o H-MOSTU. Zdaj ima to vezje v glavnem dve funkciji, prva je pogon enosmernega motorja iz krmilnih signalov z nizko močjo, druga pa spreminjanje smeri vrtenja enosmernega motorja.
Slika 1
Slika 2
Vsi vemo, da moramo za enosmerni motor spremeniti smer vrtenja, spremeniti polaritete napajalne napetosti motorja. Za spremembo polarnosti torej uporabljamo H-most. Zdaj na zgornji sliki 1 imamo štiri stikala. Kot je prikazano na sliki 2, sta motorja za vrtenje A1 in A2 zaprta. Zaradi tega teče tok skozi motor z desne proti levi, kot je prikazano na 2 nd delu figure3. Za zdaj upoštevajte, da se motor vrti v smeri urinega kazalca. Če sta stikali A1 in A2 odprti, sta B1 in B2 zaprti. Tok skozi motor teče od leve proti desni, kot je prikazano v 1. st del slike3. Ta smer pretoka toka je nasprotna prvi in tako na terminalu motorja vidimo nasprotni potencial prvemu, zato se motor vrti v nasprotni smeri urnega kazalca. Tako deluje H-MOST. Vendar pa lahko motorje z nizko močjo poganja H-BRIDGE IC L293D.
L293D je H-BRIDGE IC, zasnovan za pogon enosmernih motorjev z majhno močjo in je prikazan na sliki. Ta IC je sestavljen iz dveh h-mostov in tako lahko poganja dva enosmerna motorja. Tako se ta IC lahko uporablja za pogon robotskih motorjev iz signalov mikrokrmilnika.
Kot smo že omenili, ima ta IC možnost spremeniti smer vrtenja enosmernega motorja. To dosežemo z nadzorovanjem ravni napetosti na INPUT1 in INPUT2.
Omogoči pin |
Vhodni zatič 1 |
Vhodni zatič 2 |
Smer motorja |
Visoko |
Nizko |
Visoko |
Zavij desno |
Visoko |
Visoko |
Nizko |
Zavijemo levo |
Visoko |
Nizko |
Nizko |
Nehaj |
Visoko |
Visoko |
Visoko |
Nehaj |
Kot je prikazano na zgornji sliki, mora biti za vrtenje v smeri urnega kazalca 2A visoka in 1A nizka. Podobno mora biti v nasprotni smeri urnega kazalca 1A visoka in 2A nizka.
Kot je prikazano na sliki, ima Arduino UNO 6PWM kanalov, tako da lahko dobimo PWM (spremenljivo napetost) na katerem koli od teh šestih zatičev. V tej vadnici bomo uporabili PIN3 kot izhod PWM.
Strojna oprema: ARDUINO UNO, napajalnik (5v), kondenzator 100uF, LED, gumbi (dva kosa), upor 10KΩ (dva kosa).
Programska oprema: arduino IDE (Arduino nightly).
Shema vezja
Vezje je povezano v ploščo, kot je prikazano zgoraj. Vendar je treba biti pozoren med priklopom LED sponk. Čeprav gumbi v tem primeru kažejo odskočni učinek, to ne povzroča večjih napak, zato nam tokrat ni treba skrbeti.
PWM iz UNO je enostaven, v običajnih primerih nastavitev krmilnika ATMEGA za PWM signal ni enostavna, za natančen signal moramo določiti veliko registrov in nastavitev, vendar v ARDUINO ni treba obravnavati vseh teh stvari.
ARDUINO IDE privzeto določi vse datoteke z glavo in registre, preprosto jih moramo poklicati in to je to, da bomo imeli PWM izhod na ustreznem zatiču.
Da bi dobili izhod PWM na ustreznem zatiču, moramo delati na treh stvareh,
|
Najprej moramo izbrati izhodni zatič PWM med šestimi zatiči, nato pa moramo ta izhod nastaviti kot izhodni.
Nato moramo omogočiti funkcijo PWM UNO s klicanjem funkcije “analogWrite (pin, value)”. Tukaj 'pin' predstavlja številko pin-a, kjer potrebujemo izhod PWM, postavljamo ga kot '3'. Torej pri PIN3 dobimo izhod PWM.
Vrednost je obratovalni cikel vklopa, med 0 (vedno izklopljen) in 255 (vedno vklopljen). To število bomo s pritiskom gumba povečevali in zmanjševali.
UNO ima največjo ločljivost "8", dlje ne gre, zato vrednosti od 0-255. Ločljivost PWM pa lahko zmanjšamo z ukazom “analogWriteResolution ()”, tako da z vnosom vrednosti od 4-8 v oklepaje spremenimo njegovo vrednost s štiri bitnega PWM na osembitni PWM.
Stikalo je namenjeno spreminjanju smeri vrtenja enosmernega motorja.