Vad är en servomotorstyrare?
Definition av servomotorstyrare
En servomotorstyrare (eller servomotordrift) definieras som en krets som används för att styra positionen på en servomotor.
Servomotordriftkrets
Servomotordriftkretsen inkluderar en mikrokontroller, strömförsörjning, potentiometer och anslutningar, vilket säkerställer exakt motorstyrning.
Mikrokontrollers roll
Mikrokontrollern genererar PWM-pulser vid specifika intervall för att kontrollera servomotorns position exakt.
Strömförsörjning
Designen av strömförsörjningen för en servomotorstyrare beror på antalet anslutna motorer. Servomotorer använder vanligtvis en strömförsörjning på 4,8 V till 6 V, med 5 V som standard. Om strömförsörjningsvolten överskrids kan motorn skadas. Strömförsörjningen varierar beroende på momentet och är lägre i vila och högre när den körs. Maximala strömförsörjningen, känd som stallström, kan nå upp till 1 A för vissa motorer.
För styrning av en enda motor, använd en spänningsregulator som LM317 med en värmesänka. För flera motorer krävs en högkvalitativ strömförsörjning med ett högre strömförsörjningsvärde. En SMPS (Switched Mode Power Supply) är en bra valmöjlighet.
Blockdiagram nedan visar kopplingar i en servomotordrift

Kontroll av servomotor
Servomotorn har tre terminaler.
Positionssignal (PWM-pulser)
Vcc (från strömförsörjning)
Jord

Servomotorns vinkelposition styrs genom att applicera PWM-pulser med specifika bredder. Pulsens varaktighet varierar från cirka 0,5 ms för 0-graders rotation till 2,2 ms för 180-graders rotation. Pulser bör ges vid frekvenser runt 50 Hz till 60 Hz.
För att generera PWM-vågen (Pulse Width Modulation), som visas i figuren nedan, kan man antingen använda den inbyggda PWM-modulen i mikrokontrollern eller timer kan användas. Användandet av PWM-blocket är mer flexibelt eftersom de flesta mikrokontrollerfamiljer utformas, och detta PWM-block passar bättre till behoven för applikationer som en servomotor. För olika bredder av PWM-pulser måste vi programmera de interna registrerna därefter.
Nu måste vi också informera mikrokontrollern hur mycket den ska rotera. För detta ändamål kan vi använda en enkel potentiometer och använda en ADC för att få rotationsvinkeln eller för mer komplexa applikationer kan en accelerometer användas.

Programalgoritm
Låt oss utforma programmet för att styra en enskild servomotor och positionsinmatningen ges via potentiometern ansluten till en pinne på styraren.
Initiera portpinnes för indata/utdata.
Läs ADC för önskad servoposition.
Programmera PWM-registrerna för önskat värde.
Så snart du utlöser PWM-modulen går den valda PWM-kanalspinnen upp (logisk 1) och efter det nödvändiga breddvärdet uppnås kommer den igen att gå ner (logisk 0). Så efter att ha utlöst PWM bör du starta en timer med en fördröjning på cirka 19 ms och vänta tills timern överflödar Gå till steg 2Gå till steg 2
Det finns olika lägen av PWM tillgängliga som du kan använda beroende på vilken mikrokontroller du väljer. Någon grad av optimering bör göras i koden för att styra servomotorn.
Om du planerar att använda flera servomotorer kommer du att behöva lika många PWM-kanaler. Varje servomotor kan ges PWM-signalen sekventiellt. Men du måste ta vara på att pulshastigheten för varje servomotor bibehålls. Annars kommer servomotorn att förlora synkroniseringen.