I denne vejledning skal vi styre en servomotor af ARDUINO UNO. Servomotorer bruges, hvor der er behov for nøjagtig akselbevægelse eller position. Disse foreslås ikke til applikationer med høj hastighed. Disse foreslås til lav hastighed, medium drejningsmoment og nøjagtig placeringsanvendelse. Disse motorer bruges i maskiner med robotarm, flyvekontrol og kontrolsystemer.
Servomotorer fås i forskellige former og størrelser. En servomotor vil hovedsagelig have ledninger, den ene er for positiv spænding, den anden er for jord, og den sidste er for positionsindstilling. Den RØDE ledning er tilsluttet strøm, den sorte ledning er forbundet til jord og GUL ledning er forbundet til signalet.
En servomotor er en kombination af jævnstrømsmotor, positionskontrolsystem, gear. Jævnstrømsmotorens aksel justeres af styreelektronikken i servoen, baseret på PWM-signalets driftsforhold SIGNAL-stiften.
Simpelthen justerer styreelektronikken akselpositionen ved at styre jævnstrømsmotoren. Disse data vedrørende skaftets position sendes gennem SIGNAL-stiften. Positionsdataene til styringen skal sendes i form af PWM-signal gennem servomotorens signalstift.
Frekvensen af PWM-signal (Pulse Width Modulated) kan variere afhængigt af servomotorens type. Den vigtige ting her er Pligt-signalets Pligtforhold. Baseret på denne DUTY RATION justerer styreelektronikken akslen.
Som vist i figur nedenfor skal TÆND FOR RATIONEN være 1 / 18.ie for at skaftet skal flyttes til 9o uret. 1 ms ON-tid og 17 ms OFF-tid i et 18 ms-signal.
For at skaftet skal flyttes til 12o uret, skal signalets ON-tid være 1,5ms og OFF-tiden skal være 16,5ms. Dette forhold afkodes af styresystemet i servo, og det justerer positionen ud fra det. Denne PWM herinde genereres ved hjælp af ARDUINO UNO.
Kredsløbskomponenter
Hardware: ARDUINO UNO, strømforsyning (5v), 100uF kondensator, knapper (to stykker), 1KΩ modstand (to stykker), Servomotor (som skulle testes).
Software: arduino IDE (Arduino om natten).
Arduino Servo Motor Circuit Diagram og forklaring
I normale tilfælde er vi nødt til at gå til registerene til controller for at justere frekvensen og for at få det krævede arbejdsforhold for nøjagtig positionskontrol af servo, i ARDUINO behøver vi ikke gøre disse ting.
I ARDUINO har vi foruddefinerede biblioteker, som vil indstille frekvenser og pligtforhold i overensstemmelse hermed, når headerfilen kaldes eller inkluderes. I ARDUINO er vi simpelthen nødt til at angive positionen for servo, der var nødvendig, og PWM justeres automatisk af UNO.
De ting, vi skal gøre for at få nøjagtig position af servo, er:
|
Først skal vi indstille frekvensen af PWM-signalet, og for det skal vi kalde “#include
Nu skal vi definere et navn til servoen "Servo sg90sevo", her er 'sg90servo' det valgte navn, så mens vi skriver til potion, skal vi bruge dette navn, denne funktion er praktisk, når vi har mange servoer at kontrollere, vi kan styre så mange som otte servo ved dette.
Nu fortæller vi UNO, hvor signalstiftet til servo er tilsluttet, eller hvor det skal generere PWM-signalet. For at gøre dette har vi "Sg90.attach (3);", her fortæller vi UNO, at vi forbandt signalstiften til servo ved PIN3.
Alt tilbage er at indstille positionen, vi indstiller placeringen af servo ved at bruge “Sg90.write (30);”, ved denne kommando bevæger servohånden sig 30 grader, så det er det. Herefter skal vi kalde kommandoen ”Sg90.write (nødvendig_ position_ vinkel);” når vi har brug for at ændre placeringen af servo; ”. I dette kredsløb har vi to knapper, den ene knap øger positionen for servo, og den anden er for at mindske positionen for servo.
Den Arduino servomotor kontrol tutorial forklares trin for trin af C-kode nedenfor.