Što je upravljač servomotora?
Definicija upravljača servomotora
Upravljač servomotora (ili vozač servomotora) definira se kao sklop koji se koristi za kontrolu položaja servomotora.
Sklop vozača servomotora
Sklop vozača servomotora uključuje mikrokontroler, napajanje, potenciometar i konektore, osiguravajući točnu kontrolu motora.
Uloga mikrokontrolera
Mikrokontroler generira impulse PWM na određenim intervalima kako bi točno kontrolirao položaj servomotora.
Napajanje
Dizajn napajanja za upravljač servomotora ovisi o broju povezanih motora. Servomotori tipično koriste napajanje od 4.8V do 6V, s 5V kao standard. Prekoračenje napon napajanja može oštetiti motor. Struja koju potražuje varira s torquem i manja je u pripraznom režimu, a veća tijekom rada. Maksimalna struja, poznata kao stall current, može dosegnuti do 1A za neke motive.
Za kontrolu jednog motora koristite regulatore napona poput LM317 s hladnjakom. Za više motora potrebno je visokokvalitetno napajanje s većim kapacitetom struje. SMPS (Switched Mode Power Supply) je dobar izbor.
Shema blokova ispod pokazuje interkonekcije u vozaču servomotora

Kontrola servomotora
Servomotor ima tri terminala.
Pozicioni signal (impulsi PWM)
Vcc (od napajanja)
Masna

Angularni položaj servomotora kontrolira se primjenom impulsa PWM specifične širine. Trajanje impulsa varira od oko 0.5ms za rotaciju od 0 stupnjeva do 2.2ms za rotaciju od 180 stupnjeva. Impulsi trebaju se davati na frekvencama oko 50Hz do 60Hz.
Za generiranje valne forme PWM, kao što je prikazano na slici ispod, može se koristiti unutarnji modul PWM mikrokontrolera ili se mogu koristiti tajmeri. Korištenje bloka PWM je fleksibilnije, jer većina obitelji mikrokontrolera dizajnira ovaj blok PWM da bolje odgovara potrebama aplikacija poput servomotora. Za različite širine impulsa PWM, potrebno je programirati unutarnje registre prema tome.
Sada također moramo reći mikrokontroleru koliko treba rotirati. Za tu svrhu možemo koristiti jednostavan potenciometar i ADC za dobivanje kuta rotacije ili za složenije aplikacije može se koristiti akcelerometar.

Algoritam programa
Dizajnirajmo program za kontrolu jednog servomotora, gdje se pozicija daje putem potenciometra povezanog s pinom kontrolera.
Inicijalizirajte portove za ulaz/izlaz.
Pročitajte ADC za željenu poziciju servomotora.
Programirajte registre PWM za željenu vrijednost.
Kako biste aktivirali modul PWM, odabrani pin kanala PWM ide visoko (logika 1) i nakon što se dostigne potrebna širina, opet ide nisko (logika 0). Nakon aktiviranja PWM, morate započeti tajmer s kašnjenjem od oko 19 ms i čekati dok tajmer ne prekoraciIdite na korak 2
Postoji različitih modova PWM koji se mogu koristiti ovisno o izabranom mikrokontroleru. Trebalo bi provesti određenu optimizaciju u kodu za kontrolu servomotora.
Ako planirate koristiti više od jednog servomotora, potrebit ćete toliko kanala PWM. Svaki servomotor može se redom dodeliti PWM signal. Ali morate paziti da se održava stopa ponavljanja impulsa za svaki servomotor. Inače, servomotori izgubit će sinkronizaciju.