- Modulacija impulzne širine (PWM)
- Programiranje ATtiny13 z uporabo Arduina
- Potrebne komponente
- Shema vezja in delovanje
Servo motor deluje na glavno modulacijo širine impulza (PWM), njegov kot vrtenja pa nadzoruje trajanje impulza, ki se nanaša na njegov krmilni zatič. Tu v tej vadnici bomo s PWM tehniko krmilili servo motor z mikrokrmilnikom ATtiny13. Torej, preden nadaljujemo, bomo najprej spoznali PWM, servo motor in kako programirati ATtiny13 z Arduino Board.
Modulacija impulzne širine (PWM)
Modulacija širine impulza (PWM) je opredeljena kot metoda za generiranje analognega signala z uporabo digitalnega vira. PWM signal je sestavljen iz dveh glavnih komponent - delovnega cikla in frekvence. Te komponente določajo njegovo vedenje. Delovni cikel opisuje čas, ko je signal v visokem stanju. Označena je kot odstotek celotnega časa, potrebnega za dokončanje enega cikla.
Delovni cikel = čas vklopa / (čas vklopa + čas izklopa)
Frekvenca določa, kako hitro PWM zaključi cikel in kako hitro signal preklopi med visokim in nizkim stanjem. Frekvenca 100Hz pomeni 100 ciklov na sekundo. S hitrim vklopom in izklopom digitalnega signala in z določenim delovnim ciklom se izhod prikaže kot analogni signal s konstantno napetostjo. Ena od močnih prednosti PWM je, da je izguba moči zelo majhna.
Vsi servo motorji delujejo neposredno z napajanjem + 5V, vendar moramo biti previdni pri količini toka, ki bi ga porabil motor. Če uporabljamo več kot dva servo motorja, je treba zasnovati ustrezen servo ščit.
Preden povežete servo z Attiny13, lahko svoj servo preizkusite s pomočjo tega vezja servo motorja. Tukaj smo povezali servo motor z mnogimi mikrokrmilniki:
- Povezava servo motorja z ARM7-LPC2148
- Povezava servo motorja z MSP430G2
- Nadzor več servo motorjev z Arduino
- Povezava servo motorja z mikrokrmilnikom PIC z uporabo MPLAB in XC8
- Krmiljenje servo motorja z Raspberry Pi
- Krmiljenje servo motorja z Arduino Due
- Povezava servo motorja z mikrokrmilnikom AVR Atmega16
Programiranje ATtiny13 z uporabo Arduina
Attiny13 lahko programirate z uporabo Arduino Uno ali katere koli druge plošče Arduino. Attiny13 povežite z Arduino Uno, kot je prikazano na spodnji sliki.
- Arduino 5V - ATtiny13 pin 8
- Arduino GND - ATtiny13 pin 4
- Arduino pin 13 - ATtiny13 pin 7
- Arduino pin 12 - ATtiny13 pin 6
- Arduino pin 11 - ATtiny13 pin 5
- Arduino pin 10 - ATtiny13 pin 1
Arduino je nastavljen kot programer za programiranje ATtiny13. To naredimo tako, da skico ArduinoISP naložimo v Arduino. Ta skica Arduino je na voljo znotraj primerov v Arduino IDE. Odprite Arduino IDE in pojdite na Datoteke> Primeri> ArduinoISP .
Zdaj se bo odprl program za ArduinoISP. Naložite program v Arduino Uno.
Arduino Uno je zdaj pripravljen za programiranje Attiny13. Toda Attiny moramo nastaviti z namestitvijo njegovih osnovnih datotek. Če želite to narediti, pojdite v Datoteka >> Nastavitve v Arduino IDE
Potem se prikaže novo okno. In v » Dodatni URL-ji upravitelja plošče « dodajte spodnjo povezavo in kliknite »V redu«.
“Https://raw.githubusercontent.com/sleemanj/optiboot/master/dists/package_gogo_diy_attiny_index.json”
Zdaj v vašem Arduino IDE pojdite na Orodja >> Plošča >> Upravitelj plošč
Nato se prikaže novo okno, kjer v iskalno polje vtipkate "Attiny", nato dobite "DIY ATtiny", nato kliknite gumb "install" (že sem ga namestil, zato je gumb za namestitev v sivi barvi)
Za začetek programiranja ATtiny 13 moramo nanj zapisati Bootloader. Za to pojdite na Orodja> Plošča> ATtiny13.
Zdaj pojdite na Orodja> Različica procesorja in preverite, ali je izbrana pravilna različica ATtiny. Izberite ATtiny13 ali ATtiny13a, odvisno od vašega čipa.
Nato na dnu menija Tools kliknite gumb Burn bootloader.
Po zapisovanju zagonskega nalagalnika je ATtiny zdaj pripravljen za programiranje. Zdaj lahko naložite svoj program.
Potrebne komponente
- Mikrokrmilnik ATtiny13
- Servo motor
- Potenciometer
- + 5V baterija
- Arduino IDE
- Priključne žice
Shema vezja in delovanje
Shema vezja za upravljanje servo motorja z uporabo lonca z ATtiny13 je podana spodaj.
Spodaj so povezave
- Povežite zatič krmilnega servo motorja na zatič 5 ATtiny13
- Priključite maso servo motorja na zatič 4 ATtiny13
- Priključite VCC servo motorja na zatič 8 ATtiny13
- Priključite srednji zatič potenciometra na zatič 7 ATtiny13
- Prvi in tretji zatič potenciometra priključite na VCC in GND.
- Priključite pozitiv + 5V baterije na zatič 8 ATtiny13
- Priključite minus + 5V baterije na zatič 4 ATtiny13
Na zatič 7 (PB2) ATtiny13 je priključen potenciometer, krmilna žica servo motorja pa na zatič 5 (PB0).
Tu se odčita vrednost potenciometra in se pretvori v vrednost med 0 in 180. Nato se ta vrednost kota pretvori v mikrosekunde in krmilni zatič servo motorja dobi impulz z izračunano mikrosekundo zakasnitve. Zdaj se bo servo motor obračal glede na vrednost potenciometra, kot je prikazano v spodnjem videu.