
Prispevki
Uvod
Servo motor zavrti svojo os v natančno določen kot in jo tam aktivno drži, dokler ne ukažete drugače. Prav zato so servo motorji prva izbira za robotske roke, krmilne površine RC letal, kamere na nosilcih in vse mehanizme, kjer potrebujete ponovljiv kot brez zapletene elektronike. Najcenejši model, SG90, stane manj kot kavo, priklopite pa ga s tremi žicami.
V tem vodiču razložimo delovanje servo motorja od povratne zanke do PWM signala, primerjamo najpogostejša modela SG90 in MG996R, pokažemo prvi zagon z Arduinom in opišemo napake, ki jih pri servo motorjih vidimo najpogosteje. Na koncu dodamo primerjavo s koračnim in DC motorjem, da boste vedeli, kdaj je servo prava izbira.
Kaj je servo motor
Servo motor je majhen sklop štirih delov v skupnem ohišju: DC motorja, reduktorja, potenciometra in krmilne elektronike. Motor se vrti hitro in s šibkim navorom, reduktor vrtenje upočasni in navor poveča, potenciometer meri trenutni kot osi, elektronika pa vse skupaj povezuje v celoto, ki sama poskrbi za natančno pozicioniranje.
V hobi elektroniki z besedo servo skoraj vedno mislimo na tako imenovani hobby servo: standardizirano škatlico s tremi žicami, ki se zasuka v razponu od 0° do 180°. Industrijski servo sistemi so drugačna kategorija — tam je servo kombinacija močnejšega motorja, dajalnika (enkoderja) in ločenega krmilnika. Načelo pa je enako: motor s povratno informacijo o položaju.
Tri žice hobi serva so napajanje (rdeča), masa (rjava ali črna) in signal (oranžna ali rumena). Nobene komunikacije, nobenih knjižnic po meri — samo en signalni vodnik, po katerem krmilnik pošilja impulze. V nadaljevanju si oglejmo delovanje servo motorja od blizu.
Delovanje servo motorja: povratna zanka korak za korakom

Delovanje servo motorja: PWM signal, primerjava kotov, vrtenje in meritev potenciometra.
Delovanje servo motorja temelji na zaprti povratni zanki. Potenciometer je mehansko vezan na izhodno os, zato njegova upornost v vsakem trenutku pove, pod katerim kotom os stoji. Krmilna elektronika primerja ta izmerjeni kot z želenim kotom, ki ga prejme po signalni žici.
Če se kota razlikujeta, elektronika požene motor v smer, ki napako zmanjšuje. Bliže ko je os cilju, počasneje se vrti, dokler se razlika ne izniči in motor obstane. Če os s prstom ali z bremenom potisnete iz položaja, zanka odstopanje takoj zazna in motor jo aktivno potisne nazaj. Zato servo svoj položaj drži, ne samo doseže.
Vsaka zanka ima tudi mrtvo cono (deadband) — najmanjšo napako, na katero se elektronika še ne odzove. Brez nje bi motor neprestano popravljal mikroskopska odstopanja in brnel. Pri poceni analognih servih je mrtva cona okoli 5 µs širine impulza, pri digitalnih tudi 1 µs ali manj, kar pomeni opazno natančnejše pozicioniranje.
PWM signal: jezik servo motorja

Dolžina impulza določa kot: 1 ms je 0°, 1,5 ms je 90°, 2 ms je 180°.
Servo pričakuje impulz vsakih 20 ms, torej signal s frekvenco 50 Hz. Kot ne določa razmerje med vklopom in izklopom, ampak sama dolžina impulza: 1 ms pomeni 0°, 1,5 ms sredino (90°), 2 ms pa 180°. Vse vmesne dolžine se preslikajo v vmesne kote.
To je pomembna razlika proti klasičnemu PWM krmiljenju svetlosti ali hitrosti, kjer šteje delovni cikel — pri servu šteje čas impulza v mikrosekundah. Kako PWM deluje v splošnem, smo razložili v članku Kaj je PWM signal, uporabo na Arduinu pa v prispevku PWM in Arduino mikrokrmilnik.
V praksi večina servov sprejme tudi impulze zunaj razpona 1–2 ms, recimo od 0,5 do 2,5 ms, s čimer dosežejo polnih 180° ali več. A pozor: če impulz zahteva kot, ki ga mehanski omejevalnik ne dopušča, bo motor silil v oviro, brnel in se grel. Za razumevanje delovanja servo motorja je zato bistveno vedeti, da elektronika slepo zaupa signalu — mehanskih mej ne pozna.
Analogni in digitalni servo motorji
Delovanje servo motorja je pri obeh tipih enako — razlika je v krmilni elektroniki. Analogni servo osvežuje krmiljenje motorja s frekvenco vhodnega signala, torej 50-krat na sekundo. Digitalni servo ima vgrajen mikrokrmilnik, ki vhodni impulz prebere, nato pa motor krmili s svojo, bistveno višjo frekvenco — tipično 300 Hz ali več.
Posledice so praktične. Digitalni servo se hitreje odzove, položaj drži z večjim navorom in ima ožjo mrtvo cono. Slabost sta višja cena in večja poraba toka v mirovanju, ker elektronika položaj popravlja pogosteje. Nekateri digitalni servi omogočajo tudi programiranje: nastavite jim lahko smer vrtenja, končne točke in hitrost.
Za začetniške projekte je analogni servo povsem dovolj. Digitalnega izberite, ko potrebujete natančnost pod stopinjo, velik navor pri držanju položaja ali hiter odziv — tipično pri robotiki in resnejšem RC modelarstvu.
Vrste servo motorjev po velikosti in izvedbi
Servo motorji se delijo v tri velikostne razrede. Mikro servi (do približno 10 g) poganjajo majhne mehanizme, kamere in lahka RC letala. Standardni servi (40–60 g) so univerzalni razred za robotiko in modelarstvo. Veliki servi (nad 60 g) premikajo krmilne površine večjih modelov in težje mehanizme.
Druga pomembna delitev so zobniki reduktorja. Plastični (najlon, POM) so tihi, lahki in poceni, a se ob preobremenitvi zlomijo. Kovinski (medenina, jeklo, titan) prenesejo bistveno več, so pa dražji, glasnejši in težji. Boljši servi imajo os vpeto v kroglični ležaj, kar zmanjša zračnost in podaljša življenjsko dobo.
Posebna izvedba je servo z neprekinjenim vrtenjem (continuous rotation, 360°). Pri njem je povratna zanka odklopljena, zato impulz ne določa kota, ampak smer in hitrost vrtenja: 1,5 ms pomeni mirovanje, krajši impulzi vrtenje v eno, daljši v drugo smer. Uporaben je kot preprost pogon za kolesa manjših robotov, položaja pa z njim ne morete krmiliti.
SG90 in MG996R: najpogostejša modela

SG90 za lahke mehanizme, MG996R s kovinskimi zobniki za bremena.
Dva modela pokrijeta veliko večino hobi projektov, zato ju velja poznati v številkah.
| Lastnost | SG90 | MG996R |
|---|---|---|
| Masa | 9 g | 55 g |
| Navor (pri 4,8 V) | 1,8 kg·cm | 9,4 kg·cm |
| Hitrost (pri 4,8 V) | 0,1 s / 60° | 0,17 s / 60° |
| Zobniki | plastika (najlon) | kovina |
| Napajanje | 4,8–6 V | 4,8–7,2 V |
| Tok pri zagonu/blokadi | do ~0,7 A | do ~2,5 A |
| Tip | analogni, mikro | analogni, standardni |
SG90 je pravi za prve poskuse, lahke mehanizme in vse, kar ne zahteva sile — na primer obračanje senzorja razdalje na robotku. MG996R izberite, ko mehanizem kaj tehta: robotska roka, večje krmilne površine, dvižni mehanizmi. Razlika v toku je pri tem enako pomembna kot razlika v navoru: MG996R lahko ob blokadi potegne 2,5 A, kar mora vaše napajanje zdržati.
Servo motor in Arduino: prvi zagon

Signal na pin 9, napajanje iz ločenega 5 V vira, skupna masa je obvezna.
Arduino IDE ima knjižnico Servo že vgrajeno, zato za prvi zagon ne potrebujete ničesar namestiti. Signalno žico priklopite na digitalni pin 9, napajanje mikro serva za prvi preizkus lahko vzamete s 5 V pina (razporeditev pinov najdete v vodiču Arduino UNO pinout), maso serva pa obvezno povežite z maso Arduina.
#include <Servo.h>
Servo moj_servo;
void setup() {
moj_servo.attach(9); // signal na pinu 9
}
void loop() {
moj_servo.write(0); // 0 stopinj
delay(1000);
moj_servo.write(90); // sredina
delay(1000);
moj_servo.write(180); // 180 stopinj
delay(1000);
}
Ukaz write() sprejme kot v stopinjah, writeMicroseconds() pa neposredno dolžino impulza, kar pride prav za fino umerjanje končnih točk. Knjižnica na Arduino Uno podpira do 12 servov hkrati, pri čemer onemogoči PWM izhod na pinih 9 in 10, ker zasede njun časovnik. Vezje najlažje sestavite na prototipni plošči — postopek smo opisali v vodiču za breadboard. Če se servo ob zagonu trese ali Arduino ponastavlja, je vzrok skoraj vedno napajanje, o čemer več v naslednjem razdelku. Polno dokumentacijo knjižnice najdete na docs.arduino.cc.
Napajanje servo motorjev
Napajanje je vir večine težav s servi. USB priključek računalnika da 500 mA, regulator na Arduino plošči pa še manj rezerve — en sam SG90 ob zagonu potegne toliko, da napetost seže pod mejo in mikrokrmilnik se ponastavi. MG996R iz Arduino 5 V pina ne sme biti napajan nikoli.
Pravilo je preprosto: servo napajajte iz lastnega vira, ki zmore vsaj vsoto zagonskih tokov vseh servov. Za en do dva mikro serva zadošča držalo s štirimi AA baterijami (~6 V), za več ali močnejše serve uporabite step-down pretvornik oziroma UBEC z vsaj 3 A. Kako projekt sploh premaknete stran od USB kabla, smo razložili v članku o napajanju Arduino projektov.
Dve podrobnosti, ki ju začetniki izpustijo: masa napajalnika in masa Arduina morata biti povezani, sicer signal nima skupne reference in servo trza. Ob napajanje pa privijte elektrolitski kondenzator (470 µF ali več), ki blaži tokovne sunke ob zagonu motorja.
Pogoste napake pri delu s servo motorji
Najpogostejša napaka je napajanje serva iz Arduinovega 5 V pina, takoj za njo pa pozabljena skupna masa. Obe se kažeta enako: servo trza, brni ali se Arduino ponastavlja sredi programa.
Druga skupina napak je mehanska. Ukaz write(0) ali write(180) marsikateri servo požene čez njegov dejanski mehanski razpon — motor pritiska v omejevalnik, brni, se greje in v nekaj minutah pregori ali obrusi zobnike. Končne točke vedno preverite z writeMicroseconds() in jih po potrebi omejite v kodi. Prav tako roke (horna) nikoli ne prestavljajte, ko je servo pod napetostjo.
Tretja skupina je razumevanje delovanja servo motorja: povratna zanka porablja tok tudi pri mirovanju, saj položaj aktivno drži. Če mehanizem servo obremenjuje ves čas (na primer dviguje utež), bo motor tudi v mirovanju topel in poraba visoka. V takih primerih breme uravnotežite ali izberite mehanizem, ki se sam zaklene.
In še signalna: predolgi in tanki vodniki do serva povzročajo padce napetosti in motnje. Signal lahko brez težav podaljšate na meter ali dva, napajanje pa naj teče po debelejših žicah čim krajšo pot.
Servo, koračni ali DC motor?

Servo za kote, koračni za ponovljiv položaj prek obratov, DC za zvezno vrtenje.
Vsak od treh tipov motorjev rešuje drugačen problem, zato primerjava ni “kateri je boljši”, ampak “kateri ustreza nalogi”.
| Lastnost | Servo | Koračni motor | DC motor |
|---|---|---|---|
| Krmiljenje položaja | da, zaprta zanka | da, odprta zanka (koraki) | ne |
| Razpon vrtenja | omejen (tipično 180°) | neomejen | neomejen |
| Zadrževanje položaja | aktivno | zelo močno | ne |
| Krmilnik | ni potreben | gonilnik obvezen | H-mostič za smer |
| Tipična uporaba | robotske roke, RC | 3D tiskalniki, CNC | kolesa, ventilatorji |
Servo zmaga, ko potrebujete kot v omejenem razponu brez dodatnega gonilnika. Koračni motor je pravi za ponovljivo pozicioniranje prek polnih obratov — podrobnosti v našem vodiču o koračnem motorju. Navadni in brezkrtačni DC motorji pa so nepremagljivi pri zveznem vrtenju, kjer položaj ni pomemben.
Pogosta vprašanja o servo motorjih
Zakaj servo brni, čeprav miruje?
Ker povratna zanka neprestano popravlja majhna odstopanja okoli cilja. Rahlo brnenje je normalno; glasno in vztrajno brnenje pomeni, da servo sili v mehansko oviro ali da signal zahteva kot zunaj razpona.
Ali lahko servo napajam kar iz Arduina?
En mikro servo za kratek preizkus da. Za vse ostalo uporabite ločen vir z zadostnim tokom in skupno maso — sicer sledijo trzanje, ponastavitve in nerazložljive napake.
Kako se servo vrti za 360°?
Standardni servo se ne — omejen je na svoj mehanski razpon. Servo z neprekinjenim vrtenjem pa nima povratne zanke in impulz določa hitrost namesto kota, zato je uporaben kot pogon, ne za pozicioniranje.
V čem je razlika med analognim in digitalnim servom?
Digitalni servo motor krmili z višjo frekvenco, zato se odziva hitreje, drži močneje in pozicionira natančneje. Analogni je cenejši in za večino začetniških projektov povsem primeren.
Kako preverim, ali je servo pokvarjen?
Priklopite ga na znano dobro napajanje in testni program, ki počasi prehaja med 30° in 150°. Če servo trza pri vseh kotih, preverite napajanje in maso; če preskakuje ali škrta pri določenem kotu, so poškodovani zobniki; če se ne odziva, je najverjetneje pregorela elektronika ali motor.
Kaj pomeni oznaka kg·cm pri navoru?
Navor 9 kg·cm pomeni, da servo na ročici, dolgi 1 cm, drži breme 9 kg — na ročici 9 cm pa le še 1 kg. Pri izbiri serva vedno računajte z dolžino svoje ročice in dodajte rezervo.
Zaključek
Servo motor je najhitrejša pot do nadzorovanega gibanja v projektu: tri žice, vgrajena knjižnica in nekaj vrstic kode. Če razumete delovanje servo motorja — povratno zanko, pomen dolžine impulza in tokovne zahteve — ste odpravili vzroke za devet od desetih težav, še preden se pojavijo.
Za prve poskuse vzemite SG90, za mehanizme z bremenom MG996R s kovinskimi zobniki. Servo motorje različnih velikosti in navorov najdete v naši ponudbi hobby servo motorjev na 3DSVET.eu.
Potrebujete servo motor za svoj projekt?
Zdaj, ko poznate delovanje servo motorja, izberite pravega: v trgovini 3DSVET najdete mikro in standardne servo motorje, od SG90 do MG996R s kovinskimi zobniki — vse z dostavo po EU.

