I denne opplæringen skal vi kontrollere en servomotor av ARDUINO UNO. Servomotorer brukes der det er behov for nøyaktig akselbevegelse eller posisjon. Disse er ikke foreslått for applikasjoner med høy hastighet. Disse er foreslått for lav hastighet, middels dreiemoment og nøyaktig påføring. Disse motorene brukes i robotarmsmaskiner, flykontroller og kontrollsystemer.
Servomotorer er tilgjengelige i forskjellige former og størrelser. En servomotor vil hovedsakelig ha ledninger, den ene er for positiv spenning, den andre er for bakken og den siste er for posisjonsinnstilling. Den RØDE ledningen er koblet til strøm, den svarte ledningen er koblet til jord og GUL ledningen er koblet til signalet.
En servomotor er en kombinasjon av DC-motor, posisjonskontrollsystem, gir. Posisjonen til akselen til DC-motoren justeres av kontrollelektronikken i servoen, basert på PWM-signalets signalforhold SIGNAL-pinnen.
Enkelt sagt justerer kontrollelektronikken akselposisjonen ved å kontrollere DC-motoren. Disse dataene angående akselens posisjon sendes gjennom SIGNAL-pinnen. Posisjonsdataene til kontrollen skal sendes i form av PWM-signal gjennom signalpinnen til servomotoren.
Frekvensen av PWM (Pulse Width Modulated) signal kan variere avhengig av type servomotor. Det viktige her er plikten for PWM-signalet. Basert på denne plikten, justerer kontrollelektronikken akselen.
Som vist i figuren nedenfor, må SLÅ PÅ RASJONEN være 1 / 18.ie for at skaftet skal flyttes til 9o klokke. 1 ms PÅ-tid og 17 ms AV-tid i et 18 ms-signal.
For at akselen skal flyttes til 12o klokke må ON-tiden for signalet være 1,5ms og OFF-tiden skal være 16,5ms. Dette forholdet dekodes av styresystemet i servo, og det justerer posisjonen basert på det. Denne PWM her inne er generert ved bruk av ARDUINO UNO.
Kretskomponenter
Maskinvare: ARDUINO UNO, strømforsyning (5v), 100uF kondensator, knapper (to deler), 1KΩ motstand (to deler), Servomotor (som måtte testes).
Programvare: arduino IDE (Arduino nattlig).
Arduino servomotorkretsdiagram og forklaring
I normale tilfeller må vi gå til registerene til kontrolleren for å justere frekvensen og for å få det nødvendige arbeidsforholdet for nøyaktig posisjonskontroll av servo, i ARDUINO trenger vi ikke å gjøre disse tingene.
I ARDUINO har vi forhåndsdefinerte biblioteker, som vil angi frekvenser og pliktforhold tilsvarende når toppfilen blir ringt eller inkludert. I ARDUINO må vi ganske enkelt oppgi posisjonen til servoen som trengs, og PWM justeres automatisk av UNO.
Det vi må gjøre for å få en nøyaktig posisjon av servo er:
|
Først må vi stille frekvensen på PWM-signalet, og for det bør vi kalle “#include
Nå må vi definere et navn på servoen "Servo sg90sevo", her er 'sg90servo' navnet som er valgt, så mens vi skriver for potion, skal vi bruke dette navnet, denne funksjonen er nyttig når vi har mange servoer å kontrollere, vi kan kontrollere så mange som åtte servo ved dette.
Nå forteller vi UNO hvor signalpinnen til servoen er koblet til eller hvor den trenger å generere PWM-signalet. For å gjøre dette har vi “Sg90.attach (3);”, her forteller vi UNO at vi koblet signalpinnen til servoen ved PIN3.
Alt som er igjen er å sette posisjonen, vi skal sette posisjonen til servo ved å bruke “Sg90.write (30);”, ved denne kommandoen beveger servohånden seg 30 grader, så det er det. Etter det når vi trenger å endre posisjonen til servo, må vi kalle kommandoen ”Sg90.write (nødvendig_posisjon_vinkel);”. I denne kretsen vil vi ha to knapper, den ene knappen øker posisjonen til servo og den andre er for å redusere posisjonen til servoen.
Den Arduino Servo Motor styre opplæringen blir forklart trinn for trinn av C-kode gitt nedenfor.