Kako povezati servo motorje z Arduinom

Preizkusite Naš Instrument Za Odpravo Težav





V tem prispevku bomo izvedeli, kaj je servo motor, kako deluje, kako je povezan z mikrokrmilnikom in kaj je ta motor poseben od drugih motorjev.

Kot navdušenec nad elektroniko bi naleteli na številne vrste motorjev, tukaj si bomo ogledali posebno vrsto motorja, imenovano servo motor.



Kaj je servo motor?

Servo motor ali preprosto servo motor je posebna vrsta motorja, ki je zasnovan za natančen nadzor nad položajem, pospeševanjem in hitrostjo. Za razliko od vseh drugih vrst motorjev se lahko servo servo vrti le za 180 stopinj v dve smeri. Ima mehanske zobnike in zamašek, ki omejujeta kotno vrtenje servo.

Tipični servo motor:

Servo motorji se uporabljajo v robotiki, CCTV kamerah, RC avtomobilih, čolnih, letalih za igrače itd. Servo motorji se uporabljajo tam, kjer ni potrebno nadaljevati rotacijskega gibanja, ampak se zaklenejo v določenem položaju ali premikajo nekaj tovora z nadzorovano hitrostjo v premični kotni meji.



Servo niso preprosto motorji kot drugi tipi, ampak gre za modul, ki združuje običajni DC / AC motor, skupino zobnikov, krmilno elektroniko in povratni sistem. Podrobno si oglejmo vsako omenjeno fazo.

DC / AC motor, ki je zaposlen na servo modulu, je lahko brezkrtačni ali krtačeni motor, na večini hobi servo motorjev se uporablja DC motor, AC motorji pa se uporabljajo v industriji. Motor daje servo rotacijski vhod. Motor se vrti pri nekaj sto vrtljajih na minuto v servo in izhodno vrtenje je približno 50 ali večkrat manj od njegovega vrtljaja.

Naslednja stopnja je sklop zobnikov, ki nadzoruje kotno vrtenje in hitrost servo pogona. Zobnik je lahko izdelan iz plastike ali kovine, odvisno od obsega obremenitve. Običajno enosmerni motorji delujejo pri visokih vrtljajih in nizkem navoru zobniški sklop pretvori presežni vrtljaji v navor. Tako majhen motor prenese veliko obremenitev.

Naslednja stopnja je krmilna elektronika, ki je sestavljena iz MOSFET-jev in IC za nadzor vrtenja motorja. Sistem povratnih informacij je vedno prisoten v servo motorjih za sledenje trenutnemu položaju pogona.

V servo sistemih je povratna komponenta na splošno potenciometer, ki je neposredno povezan z vrtljivim pogonom. Potenciometer deluje kot delilnik napetosti, ki se napaja na krmilno elektroniko. Te povratne informacije pomagajo krmiljenju elektronike pri določanju količine moči, ki jo daje motorju.

Servo motor v fiksnem položaju se ne bo hotel premakniti iz trenutnega položaja, če ga bo poskušala motiti katera koli zunanja sila. Sistem povratnih informacij nadzoruje trenutni položaj in napaja motor pred zunanjimi motnjami.

Zgornji scenarij je enak, ko servo premika svoj pogon. Krmilni sistem bo kompenziral zunanjo silo in se premikal z določeno hitrostjo.

Zdaj že dobro veste o servo motorju in njegovem mehanizmu delovanja. Poglejmo, kako upravljati servo motorje z mikrokrmilnikom.

Servo motorji imajo 3 terminale, za razliko od drugih motorjev, ki imajo 2 terminala, dva za napajanje (nominalno 5 V) in enega za krmilni signal. Žice so obarvane za enostavno prepoznavanje sponk.

Krmilni signali servoposnetkov so PWM pri frekvenci 50 Hz. Širina impulza signala določa položaj roke pogona. Tipičen hobi servo motor deluje od 1 do 2 milisekunde širine impulza.

Z uporabo 1 ms impulznega krmilnega signala bo pogon ohranil položaj 0 stopinj. Z uporabo 2 ms impulznega krmilnega signala bo aktuator v položaju 180 stopinj. Če signale oddajate med 1-2 ms, bo pogon ohranjal kot 0-180 stopinj. To lahko bolje razumemo na spodnji sliki.

Do zdaj bi že razumeli, kako se servo krmili s pulzno širinsko modulacijo (PWM).

Zdaj pa se naučimo, kako povezati servo motor z Arduino.

Shema vezja:

kako povezati servo motor z Arduino.

Ožičenje je enostavno in samoumevno. Če uporabljate obsežen servo motor, potrebujete zunanje napajanje. Če poskusite napajati iz arduino napajalnika, boste na koncu preobremenili vrata USB v računalniku.

Če imate podoben servo, ki je prikazan na začetku članka, ga lahko napajate iz napajalnika arduino 5V, kar je prikazano tudi v avtorskem prototipu.

Avtorjev prototip:

Arduino potrebuje servo knjižnico za njegovo obdelavo, olajšala nam je nalogo in že je v IDE za Arduino.

Program:

//--------Program developed by R.Girish--------//
#include
Servo motor
int pos = 0
int t=10
void setup()
{
motor.attach(7)
}
void loop()
{
A:
pos=pos+1
motor.write(pos)
delay(t)
if(pos==180) { goto B}
goto A
B:
pos=pos-1
motor.write(pos)
delay(t)
if(pos==0) { goto A}
goto B
}
//--------Program developed by R.Girish--------//

Zgornji program bo pomaknil pogon za 0 do 180 stopinj desno in 180 do 0 stopinj levo in cikel se bo ponovil. To je preprost program za preizkušanje servo servo, ki ga boste morda morali napisati za lastno kodo.




Prejšnja: Vezje krmilnika ventila vodovodne črpalke z dvema cevema Naprej: Razumevanje ožičenja motornega regulatorja napetosti