- Pulzná šírková modulácia (PWM)
- Programovanie ATtiny13 pomocou Arduina
- Súčasti sú povinné
- Schéma zapojenia a funkčnosť
Servomotor pracuje na princípe modulácie šírky impulzu (PWM) a jeho uhol natočenia je riadený dĺžkou impulzu privádzaného na jeho ovládací kolík. Tu v tomto výučbe budeme riadiť servomotor s mikrokontrolérom ATtiny13 pomocou techniky PWM. Než teda pôjdeme ďalej, najskôr sa dozvieme o PWM, servomotore a o tom, ako programovať ATtiny13 pomocou dosky Arduino.
Pulzná šírková modulácia (PWM)
Pulzná šírková modulácia (PWM) je definovaná ako metóda generovania analógového signálu pomocou digitálneho zdroja. Signál PWM sa skladá z dvoch hlavných komponentov - pracovný cyklus a frekvencia. Tieto komponenty definujú jeho správanie. Pracovný cyklus popisuje množstvo času, v ktorom je signál vo vysokom stave. Označuje sa ako percento z celkového času potrebného na dokončenie jedného cyklu.
Pracovný cyklus = čas zapnutia / (čas zapnutia + čas vypnutia)
Frekvencia definuje, ako rýchlo PWM dokončí cyklus a ako rýchlo sa signál prepína medzi vysokým a nízkym stavom. Frekvencia 100 Hz znamená 100 cyklov za sekundu. Zapnutím a vypnutím digitálneho signálu rýchlou rýchlosťou as určitým pracovným cyklom sa výstup bude javiť ako analógový signál s konštantným napätím. Jednou z významných výhod PWM je, že strata výkonu je veľmi minimálna.
Všetky servomotory pracujú priamo s napájaním + 5 V, ale musíme byť opatrní, pokiaľ ide o množstvo prúdu, ktoré by motor spotreboval. Ak používame viac ako dva servomotory, mal by sa navrhnúť správny štít servomotora.
Pred pripojením serva k Attiny13 môžete svoje servo otestovať pomocou tohto testovacieho obvodu servomotora. Tu máme prepojený servomotor s mnohými mikrokontrolérmi:
- Prepojovací servomotor s ARM7-LPC2148
- Prepojenie servomotora s MSP430G2
- Ovládanie viacerých servomotorov pomocou Arduina
- Prepojenie servomotora s mikrokontrolérom PIC pomocou MPLAB a XC8
- Ovládanie servomotora s Raspberry Pi
- Ovládanie servomotora s Arduino Due
- Prepojenie servomotora s mikrokontrolérom AVR Atmega16
Programovanie ATtiny13 pomocou Arduina
Attiny13 je možné programovať pomocou Arduino Uno alebo akejkoľvek inej dosky Arduino. Pripojte Attiny13 k Arduino Uno, ako je to znázornené na obrázku nižšie.
- 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 nastavené ako programátor na programovanie ATtiny13. To sa deje nahraním náčrtu ArduinoISP do Arduina. Táto skica Arduina je k dispozícii vo vnútri príkladov v Arduino IDE. Otvorte IDE Arduino a prejdite na Súbory> Príklady> ArduinoISP .
Teraz sa zobrazí program pre ArduinoISP. Nahrajte program do Arduino Uno.
Arduino Uno je teraz pripravené na programovanie Attiny13. Musíme však nastaviť Attiny inštaláciou jeho základných súborov. Prejdite do ponuky File >> Preferences v Arduino IDE
Potom sa zobrazí nové okno. A na „ Ďalšie adresy URL správcu dosky “ pridajte odkaz nižšie a kliknite na „OK“.
„Https://raw.githubusercontent.com/sleemanj/optiboot/master/dists/package_gogo_diy_attiny_index.json“
Teraz vo svojom Arduino IDE choďte do Tools >> Board >> Boards Manager
Potom sa objaví ďalšie okno, kde do vyhľadávacieho poľa zadajte „Attiny“ a potom získate „DIY ATtiny“ a potom kliknite na tlačidlo „inštalovať“ (už som ho nainštaloval, preto je inštalačné tlačidlo v šedej farbe)
Aby sme mohli začať programovať ATtiny 13, musíme na ňu vypáliť Bootloader. Prejdite do časti Nástroje> Doska> ATtiny13.
Teraz choďte na Nástroje> Verzia procesora a skontrolujte, či je vybraná správna verzia ATtiny. V závislosti od čipu vyberte buď ATtiny13 alebo ATtiny13a.
Potom kliknite na tlačidlo Vypáliť bootloader v dolnej časti ponuky Nástroje.
Po vypálení bootloaderu je teraz ATtiny pripravený na programovanie. Teraz môžete nahrať svoj program.
Súčasti sú povinné
- Mikrokontrolér ATtiny13
- Servo motor
- Potenciometer
- + 5V batéria
- Arduino IDE
- Pripojovacie vodiče
Schéma zapojenia a funkčnosť
Schéma zapojenia ovládania servomotora pomocou hrnca s ATtiny13 je uvedená nižšie.
Nižšie sú uvedené spojenia
- Pripojte ovládací kolík servomotora k kolíku 5 na ATtiny13
- Pripojte uzemnenie servomotora na pin 4 ATtiny13
- Pripojte VCC servomotora k pólu 8 ATtiny13
- Pripojte stredný kolík potenciometra k kolíku 7 ATtiny13
- Pripojte prvý a tretí kolík potenciometra k VCC a GND.
- Kladný pól batérie + 5V pripojte ku kolíku 8 ATtiny13
- Pripojte záporný pól batérie + 5 V ku kolíku 4 na ATtiny13
Potenciometer je pripojený na pin 7 (PB2) ATtiny13 a ovládací vodič servomotora je pripojený na pin 5 (PB0).
Tu sa načíta hodnota potenciometra a prevedie sa na hodnotu medzi 0 a 180. Potom sa táto hodnota uhla prevedie na mikrosekundy a do riadiaceho kolíka servomotora sa dostane impulz s vypočítaným oneskorením mikrosekúnd. Teraz sa servomotor bude točiť podľa hodnoty potenciometra, ako je znázornené na videu uvedenom nižšie.