Sådan interface servomotorer med Arduino

Sådan interface servomotorer med Arduino

I dette indlæg skal vi lære, hvad servomotor er, hvordan den fungerer, hvordan man bruger interface til mikrokontroller, og hvad der gør denne motor speciel fra andre motorer.



Som en elektronikentusiast ville vi være stødt på mange slags motorer, her skal vi se på en speciel type motor kaldet servomotor.

Hvad er en servomotor?

Servomotor eller simpelthen servo er en speciel type motor, der er designet til præcis kontrol over position, acceleration og hastighed. I modsætning til alle andre typer motorer kan servo kun dreje 180 grader tovejs. Den har mekaniske gear og prop, der begrænser servoens vinkelrotation.





Typisk servomotor:

Servomotorer bruges i robotteknologi, CCTV kameraer, RC biler, både, legetøjsfly osv. Servoer bruges, hvor vi ikke har behov for fortsat roterende bevægelse, men låser i en bestemt position eller bevæger noget belastning med kontrolleret hastighed inden for den bevægelige vinkelgrænse.

Servo er ikke bare en motor som andre typer, men det er et modul, der kombinerer en normal DC / AC-motor, en gruppe gear, styreelektronik og et feedback-system. Lad os se nærmere på de nævnte faser.



DC / AC-motor, der anvendes på et servomodul, kan være børsteløs eller børstet motor, på de fleste hobby servoer anvendes DC-motor, og AC-motorer bruges i industrielle applikationer. Motoren giver rotationsindgang til servoen. Motoren roterer ved flere hundrede omdrejninger pr. Minut inde i servoen, og outputrotationen er cirka 50 eller flere gange mindre af dens omdrejningstal.

Det næste trin er gearkonstruktionen, som styrer vinkelrotationen og servohastigheden. Gearet kan være lavet af enten plast eller metal afhængigt af hvor omfangsrig belastningen er. Generelt kører jævnstrømsmotorer ved højt omdrejningstal og lavt drejningsmoment, vil gearenheden konvertere det overskydende omdrejningstal til drejningsmoment. Således kan en lille motor klare en enorm belastning.

Det næste trin er kontrolelektronik, der består af MOSFET'er og IC'er til styring af motorens rotation. Der findes altid et feedback-system i servomotorer til sporing af aktuatorens aktuelle position.

I servoer er en tilbagekoblingskomponent generelt et potentiometer, der er direkte forbundet med roterende aktuator. Potentiometeret fungerer som spændingsdeler, der tilføres kontrolelektronikken. Denne feedback hjælper med at kontrollere elektronikken til at bestemme mængden af ​​effekt, der gives til motoren.

En servomotor i en fast position bevæger sig tilbage fra sin nuværende position, hvis nogen ekstern kraft forsøger at forstyrre. Feedback-systemet overvåger den aktuelle position og driver motoren mod ekstern forstyrrelse.

Ovenstående scenario er det samme, når servoen bevæger sin aktuator. Kontrolsystemet kompenserer den ydre kraft og bevæger sig i bestemt hastighed.

Nu ved du en hel del om servomotor og dens funktionsmekanisme. Lad os se, hvordan man styrer servomotorer ved hjælp af mikrocontroller.

Servomotorer har 3 terminaler i modsætning til andre motorer, der har 2 terminaler, to til forsyning (5V nominel) og en til styresignal. Ledningerne er farvet for nem identifikation af terminaler.

Servos kontrolsignaler er PWM ved 50Hz frekvens. Pulsbredden på signalet bestemmer aktuatorarmens position. En typisk hobby servomotor fungerer fra 1 til 2 millisekunder pulsbredde.

Anvendelse af 1 ms pulsbreddestyringssignal holder aktuatoren i 0 graders position. Anvendelse af 2 ms pulsbreddestyringssignal holder aktuatoren i 180 graders position. Anvendelse af signaler på mellem 1-2 ms holder aktuatoren inden for 0-180 graders vinkel. Dette kan bedre forstås ved at give nedenstående billede.

Nu ville du have forstået, hvordan en servo styres af pulsbreddemodulation (PWM).

Lad os nu lære at interface en servomotor med Arduino.

Kredsløbsdiagram:

hvordan man interface en servomotor med Arduino.

Ledningsføringen er let og selvforklarende. Du har brug for ekstern strømforsyning, hvis du bruger en voluminøs servomotor. Hvis du prøver at strømforsyning fra arduino-strømforsyningen, vil du ende med at overbelaste USB-porten på computeren.

Hvis du har en lignende servo, som er illustreret i begyndelsen af ​​artiklen, kan du strømforsyne den fra arduino 5V-forsyning, også vist i forfatterens prototype.

Forfatterens prototype:

Arduino har brug for servobibliotek til håndtering af det, det gjorde vores opgave let, og det findes allerede i Arduino IDE.

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--------//

Ovenstående program fejer aktuatoren 0 til 180 grader til højre og 180 til 0 grader til venstre og cyklus gentages. Dette er et simpelt program til test af servoen, du muligvis skal skrive din egen kode til dine tilpassede applikationer.




Forrige: To rør vandpumpe ventil controller controller kredsløb Næste: Forståelse af ledningsføring til motorcykel spændingsregulator