Hva er en servo motor kontroller?
Definisjon av servo motor kontroller
En servo motor kontroller (eller servo motor driver) defineres som et kretssystem brukt for å kontrollere posisjonen til en servo motor.
Servo motor driver krets
Kretsen for servo motor driver inneholder en mikrokontroller, strømforsyning, potensiometer og koblinger, som sikrer nøyaktig motorstyring.
Rolle for mikrokontrolleren
Mikrokontrolleren genererer PWM-pulser ved spesifikke intervaller for å kontrollere servo motorens posisjon nøyaktig.
Strømforsyning
Designet av strømforsyningen for en servo motor kontroller avhenger av antallet koblet motorer. Servo motorer bruker typisk en strømforsyning på 4.8V til 6V, med 5V som standard. Hvis strømforbruksvoltage overstiger grensen, kan det skade motoren. Strømforbruket varierer med dreiemomentet, og er lavere i inaktiv modus og høyere under drift. Maksimalt strømforbruk, kjent som stoppstrøm, kan nå opptil 1A for noen motorer.
For styring av én motor, bruk en spenningsregulator som LM317 med en kuleskall. For flere motorer, er en høykvalitets strømforsyning med høyere strømforbruk nødvendig. En SMPS (Switched Mode Power Supply) er et godt valg.
Blokkskjema nedenfor viser koblinger i en servo motor driver

Kontroll av servo motor
Servo motoren har tre terminaler.
Posisjonsignal (PWM-pulser)
Vcc (fra strømforsyning)
Jord

Servo motorens vinkelposisjon styres ved å bruke PWM-pulser med spesifikk bredde. Pulslengden varierer fra omtrent 0.5ms for 0-graders rotasjon til 2.2ms for 180-graders rotasjon. Pulser bør gis ved frekvenser rundt 50Hz til 60Hz.
For å generere PWM-bølgeformen (Pulse Width Modulation), som vist i figuren nedenfor, kan du enten bruke den interne PWM-modulen i mikrokontrolleren eller timer kan brukes. Bruk av PWM-blokk er mer fleksibelt, da de fleste mikrokontrollerfamilier er designet slik at denne PWM-blokken bedre passer behovene til applikasjoner som en servo motor. For ulike bredder av PWM-pulser, må interne registre programmeres i henhold.
Nå må vi også fortelle mikrokontrolleren hvor mye den skal rotere. For dette formålet kan vi bruke et enkelt potensiometer og bruke en ADC for å få rotasjonsvinkelen, eller for mer komplekse applikasjoner kan en akselerometer brukes.

Programalgoritme
La oss designe programmet for å kontrollere en enkelt servo, og posisjonsinndataen gis via et potensiometer koblet til en pin på kontrolleren.
Initialiser portpinene for inngang/utgang.
Les ADC for ønsket servo posisjon.
Programmer PWM-registrer for ønsket verdi.
Så snart du utløser PWM-modulen, går den valgte PWM-kanalpinen opp (logisk 1), og etter at den nødvendige bredden er nådd, går den igjen ned (logisk 0). Så etter at du har utløst PWM, må du starte en tidsregulator med en forsinkelse på omtrent 19 ms og vente til tidsregulatoren overflommer. Gå til steg 2
Det er ulike moduser for PWM tilgjengelig som du kan bruke avhengig av hvilken mikrokontroller du velger. Noen grad av optimalisering bør gjøres i koden for å kontrollere servoen.
Hvis du planlegger å bruke mer enn én servo, trenger du like mange PWM-kanaler. Hver servo kan gis PWM-signal sekvensielt. Men du må passe på at pulshytten for hver servo beholdes. Ellers vil servoene miste synkronisering.