- Pulzní šířková modulace (PWM)
- Programování ATtiny13 pomocí Arduina
- Požadované komponenty
- Schéma zapojení a práce
Servomotor pracuje na principu pulzní šířkové modulace (PWM) a jeho úhel otáčení je řízen délkou pulzu aplikovaného na jeho ovládací kolík. Tady v tomto tutoriálu budeme ovládat servomotor s mikrokontrolérem ATtiny13 pomocí techniky PWM. Než tedy půjdeme dále, nejprve se seznámíme s PWM, servomotorem a programováním ATtiny13 pomocí desky Arduino.
Pulzní šířková modulace (PWM)
Pulzní šířková modulace (PWM) je definována jako metoda generování analogového signálu pomocí digitálního zdroje. Signál PWM se skládá ze dvou hlavních složek - pracovního cyklu a frekvence. Tyto komponenty definují jeho chování. Pracovní cyklus popisuje dobu, po kterou je signál ve vysokém stavu. Označuje se jako procento z celkového času potřebného k dokončení jednoho cyklu.
Pracovní cyklus = čas zapnutí / (čas zapnutí + čas vypnutí)
Frekvence definuje, jak rychle PWM dokončí cyklus a jak rychle se signál přepíná mezi vysokým a nízkým stavem. Frekvence 100 Hz znamená 100 cyklů za sekundu. Přepnutím digitálního signálu ZAPNUTO a VYPNUTO rychlou rychlostí as určitým pracovním cyklem bude výstup vypadat jako analogový signál s konstantním napětím. Jednou z hlavních výhod PWM je, že ztráta energie je velmi minimální.
Všechny servomotory pracují přímo s napájením + 5 V, ale musíme být opatrní ohledně množství proudu, které by motor spotřeboval. Pokud používáme více než dva servomotory, měl by být navržen správný servomotor.
Před připojením serva k Attiny13 můžete své servo otestovat pomocí tohoto testovacího obvodu servomotoru. Zde máme propojený servomotor s mnoha mikrokontroléry:
- Propojovací servomotor s ARM7-LPC2148
- Propojení servomotoru s MSP430G2
- Ovládání více servomotorů pomocí Arduina
- Propojení servomotoru s mikrokontrolérem PIC pomocí MPLAB a XC8
- Ovládání servomotoru s Raspberry Pi
- Ovládání servomotoru s Arduino Due
- Propojovací servomotor s mikrokontrolérem AVR Atmega16
Programování ATtiny13 pomocí Arduina
Attiny13 lze programovat pomocí Arduino Uno nebo jakékoli jiné desky Arduino. Připojte Attiny13 k Arduino Uno, jak je znázorněno na obrázku níže.
- 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 nastaveno jako programátor pro programování ATtiny13. To se provádí nahráním skici ArduinoISP do Arduina. Tato skica Arduino je k dispozici uvnitř příkladů v Arduino IDE. Otevřete IDE Arduino a přejděte do Soubory> Příklady> ArduinoISP .
Nyní se objeví program pro ArduinoISP. Nahrajte program do Arduino Uno.
Arduino Uno je nyní připraveno k programování Attiny13. Musíme ale nastavit Attiny instalací jeho základních souborů. Chcete-li to provést, přejděte do Soubor >> Předvolby v Arduino IDE
Poté se otevře nové okno. A do „ Další adresy URL správce desky “ přidejte níže uvedený odkaz a klikněte na „OK“.
„Https://raw.githubusercontent.com/sleemanj/optiboot/master/dists/package_gogo_diy_attiny_index.json“
Nyní ve svém Arduino IDE přejděte na Nástroje >> Deska >> Správce desek
Pak se objeví další okno, kde do vyhledávacího pole zadejte „Attiny“, pak se zobrazí „DIY ATtiny“ a poté klikněte na tlačítko „nainstalovat“ (již jsem jej nainstaloval, proto je tlačítko instalace v šedé barvě)
Abychom mohli začít programovat ATtiny 13, musíme na něj vypálit Bootloader. Za tímto účelem přejděte na Nástroje> Deska> ATtiny13.
Nyní přejděte do nabídky Nástroje> Verze procesoru a zkontrolujte, zda je vybrána správná verze ATtiny. Vyberte buď ATtiny13 nebo ATtiny13a v závislosti na vašem čipu.
Poté klikněte na tlačítko Vypálit bootloader ve spodní části nabídky Nástroje.
Po vypálení bootloaderu je nyní ATtiny připraven k programování. Nyní můžete nahrát svůj program.
Požadované komponenty
- Mikrokontrolér ATtiny13
- Servomotor
- Potenciometr
- + 5V baterie
- Arduino IDE
- Připojovací vodiče
Schéma zapojení a práce
Níže je uvedeno obvodové schéma pro ovládání servomotoru pomocí hrnce s ATtiny13.
Níže jsou uvedena připojení
- Připojte ovládací kolík servomotoru k kolíku 5 ATtiny13
- Připojte uzemnění servomotoru ke kolíku 4 ATtiny13
- Připojte VCC servomotoru ke kolíku 8 ATtiny13
- Připojte střední kolík potenciometru k kolíku 7 ATtiny13
- Připojte první a třetí kolík potenciometru k VCC a GND.
- Kladný pól baterie + 5 V připojte ke kolíku 8 ATtiny13
- Připojte záporný pól baterie + 5 V ke kolíku 4 ATtiny13
Potenciometr je připojen ke kolíku 7 (PB2) ATtiny13 a ovládací vodič servomotoru je ke kolíku 5 (PB0).
Zde se načte hodnota potenciometru a převede se na hodnotu mezi 0 a 180. Poté se tato hodnota úhlu převede na mikrosekundy a puls se přenese na ovládací kolík servomotoru s vypočítaným zpožděním mikrosekund. Nyní se servomotor bude otáčet podle hodnoty potenciometru, jak je ukázáno na níže uvedeném videu.