- Modulacija širine impulsa (PWM)
- Programiranje ATtiny13 pomoću Arduina
- Komponente potrebne
- Kružni dijagram i rad
Servo motor radi na principu modulacije širine impulsa (PWM) i njegov kut rotacije kontrolira se trajanjem impulsa primijenjenog na njegov upravljački pin. Ovdje ćemo u ovom uputstvu upravljati servo motorom s ATtiny13 mikrokontrolerom koristeći PWM tehniku. Dakle, prije nego što nastavimo dalje, prvo ćemo naučiti o PWM-u, servo motoru i kako programirati ATtiny13 s Arduino pločom.
Modulacija širine impulsa (PWM)
Modulacija širine impulsa (PWM) definirana je kao metoda za generiranje analognog signala pomoću digitalnog izvora. PWM signal sastoji se od dvije glavne komponente - radnog ciklusa i frekvencije. Te komponente definiraju njegovo ponašanje. Radni ciklus opisuje količinu vremena u kojem je signal u visokom stanju. Označava se kao postotak od ukupnog vremena potrebnog za završetak jednog ciklusa.
Radni ciklus = Vrijeme UKLJUČIVANJA / (Vrijeme UKLJUČIVANJA + Vrijeme isključivanja)
Frekvencija definira koliko brzo PWM završava ciklus i koliko se brzo signal prebacuje između visokog i niskog stanja. Frekvencija od 100Hz znači 100 ciklusa u sekundi. Uključivanjem i isključivanjem digitalnog signala brzom brzinom i uz određeni radni ciklus, izlaz će se pojaviti kao analogni signal konstantnog napona. Jedna od snažnih prednosti PWM-a je ta što je gubitak snage vrlo minimalan.

Svi servo motori rade izravno s napajanjem od + 5V, ali moramo biti oprezni pri količini struje koju bi motor potrošio. Ako koristimo više od dva servo motora, trebao bi biti dizajniran odgovarajući servo štit.
Prije nego što povežete servo s Attiny13, možete testirati svoj servo uz pomoć ovog kruga ispitivača servo motora. Ovdje smo povezali servo motor s mnogo mikrokontrolera:
- Povezivanje servo motora s ARM7-LPC2148
- Povezivanje servo motora s MSP430G2
- Upravljanje višestrukim servo motorima pomoću Arduina
- Povezivanje servo motora s PIC mikrokontrolerom pomoću MPLAB-a i XC8
- Upravljanje servo motorom s Raspberry Pi
- Upravljanje servo motorom s Arduino Due
- Povezivanje servo motora s AVR mikrokontrolerom Atmega16
Programiranje ATtiny13 pomoću Arduina
Attiny13 se može programirati pomoću Arduino Uno ili bilo koje druge Arduino ploče. Spojite Attiny13 na Arduino Uno kao što je prikazano na donjoj slici.
- 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 postavljen kao programer za programiranje ATtiny13. To se postiže prijenosom ArduinoISP skice na Arduino. Ova Arduino skica dostupna je unutar primjera u Arduino IDE-u. Otvorite Arduino IDE i idite na Datoteke> Primjeri> ArduinoISP .

Sada će se pojaviti program za ArduinoISP. Prenesite program na Arduino Uno.

Arduino Uno sada je spreman za programiranje Attiny13. Ali Attiny moramo postaviti instaliranjem njegovih osnovnih datoteka. Da biste to učinili, idite na Datoteka >> Postavke u Arduino IDE-u

Tada će se pojaviti novi prozor. A u " Dodatni URL upravitelja odbora " dodajte donju vezu i kliknite "U redu".
“Https://raw.githubusercontent.com/sleemanj/optiboot/master/dists/package_gogo_diy_attiny_index.json”

Sada u vašem Arduino IDE idite na Alati >> Ploča >> Upravitelj ploča

Tada će se pojaviti još jedan prozor gdje u okvir za pretraživanje upišite "Attiny", a zatim ćete dobiti "DIY ATtiny", a zatim kliknite na gumb "install" (ja sam ga već instalirao, zato je gumb za instalaciju u sivoj boji)

Da bismo započeli s programiranjem ATtiny 13, na njega moramo spaliti Bootloader. Za to idite na Alati> Ploča> ATtiny13.

Sada idite na Alati> Verzija procesora i provjerite je li odabrana ispravna verzija ATtiny-a. Odaberite ATtiny13 ili ATtiny13a, ovisno o vašem čipu.
Zatim kliknite gumb Snimanje pokretačkog programa na dnu izbornika Alati.

Nakon spaljivanja pokretačkog programa, ATtiny je sada spreman za programiranje. Sada možete učitati svoj program.
Komponente potrebne
- Mikrokontroler ATtiny13
- Servo motor
- Potenciometar
- + 5V baterija
- Arduino IDE
- Spajanje žica
Kružni dijagram i rad
Dijagram sklopa za upravljanje servo motorom pomoću lonca s ATtiny13 dan je u nastavku.

Ispod su veze
- Spojite upravljački zatik servo motora na pin 5 ATtiny13
- Spojite masu servo motora na zatik 4 na ATtiny13
- Spojite VCC servo motora na zatik 8 ATtiny13
- Spojite srednji klin potenciometra na klin 7 na ATtiny13
- Spojite prvu i treću iglu potenciometra na VCC i GND.
- Spojite pozitiv + 5V baterije na pin 8 ATtiny13
- Spojite minus + 5V baterije na pin 4 ATtiny13

Potenciometar je spojen na zatik 7 (PB2) ATtiny13, a upravljačka žica servo motora spojen je na zatik 5 (PB0).

Ovdje se očitava vrijednost potenciometra i ona se pretvara u vrijednost između 0 i 180. Zatim se ta vrijednost kuta pretvara u mikrosekunde i daje impuls upravljačkom zatiču servo motora s izračunatim kašnjenjem u mikrosekundama. Sada će se servo motor okretati prema vrijednosti potenciometra kao što je prikazano u donjem videu.
