- Nødvendig materiale
- Kretsdiagram
- Hva er en servomotor?
- Arduino-kode Forklaring
- Styring av flere servoer med Arduino- Arbeider:
Å bruke en eller to servoer med Arduino er enkelt, men hva om vi vil bruke mer enn en servomotor?
Her skal vi vise deg hvordan du styrer flere servomotorer med Arduino. Å koble flere servomotorer med Arduino ser ut til å være enkelt, men hvis vi kobler alle servoer til Arduino-forsyningspinner, vil de ikke fungere riktig på grunn av mangel på strøm nok til å kjøre alle motorene. Så du må bruke separat strømforsyning til motorene, enten fra noen adaptere (5v 2A) eller fra 9v-batterier av god kvalitet.
Nødvendig materiale
- Arduino UNO
- Servo motor
- Strømforsyning
- Brettbrett
- Koble ledninger
Kretsdiagram
Hva er en servomotor?
Før vi går i detalj, bør vi først vite om Servo Motors.
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.
Før du kobler servoer til Arduino, kan du teste servoen din ved hjelp av denne servomotortesterkretsen. Sjekk også våre Servo-prosjekter nedenfor:
- Servomotorstyring av Flex-sensor
Arduino-kode Forklaring
Den komplette Arduino-koden for flere servokontroll er gitt på slutten.
Arduino har bibliotek for Servomotorer og det håndterer alle PWM-relaterte ting for å rotere servoen, du trenger bare å angi vinkelen du vil rotere til, og det er funksjon servo1.write (vinkel); som vil rotere servoen til ønsket vinkel.
Så her begynner vi med å definere biblioteket for servomotor.
#inkludere
I koden nedenfor initialiserer vi alle de fire servoene som Servo1, Servo2, Servo3 og Servo4.
Servo servo1; Servo servo2; Servo servo3; Servo servo4;
Deretter setter vi alle servoens inngangspinner med Arduino. Som vist i koden nedenfor, er Servo1 koblet til den tredje pinnen på Arduino. Du kan skifte pinnene i henhold til deg, men husk at det skal være en PWM-pinne. Å bruke en servo med digitale pinner på Arduino er ikke pålitelig.
ugyldig oppsett () { servo1.attach (3); servo2.attach (5); servo3.attach (6); servo4.attach (9); }
Nå, i void loop () -funksjonen, roterer vi bare all servo fra 0 til 180 grader og deretter 180 til 0 grader. Forsinkelsen som brukes i koden nedenfor, brukes til å øke eller redusere hastigheten på servoen ettersom den påvirker den økende eller synkende hastigheten til variabelen 'i'.
ugyldig sløyfe () { for (int i = 0; i <180; i ++) { servo1.write (i); servo2.write (i); servo3.write (i); servo4.write (i); forsinkelse (10); } for (i = 180; i> 0; i--) { servo1.write (i); servo2.write (i); servo3.write (i); servo4.write (i); forsinkelse (10); } }
Styring av flere servoer med Arduino- Arbeider:
Vi står alle overfor nåværende problem mens vi bruker mer enn to servoer med en Arduino. Den eneste løsningen på dette er å koble til en ekstern strømforsyning med passende mengde nåværende vurdering (i dette prosjektet brukte jeg 2A med 9v-forsyning). For ekstern strømforsyning kan du bruke adaptere, RPS (regulert strømforsyningsinstrument) eller 9v volt batterier av god kvalitet, hvis du kan bruke den bærbare USB-porten til å drive liten servo. For å bruke den eksterne forsyningen, må du bare kortslippe Arduino-bakken til den eksterne forsyningsområdet.
Bruk Arduino-koden nedenfor for å programmere Arduino og koble alle Servomotorer som vist i kretsskjemaet med riktig strømforsyning til Motorer. Derfor vil alle servoer jobbe sammen uten avbrudd.