- Nødvendigt materiale
- Kredsløbsdiagram
- Hvad er en servomotor?
- Arduino-kode Forklaring
- Kontrol af flere servoer med Arduino- Arbejde:
Brug af en eller to servo med Arduino er let, men hvad hvis vi vil bruge mere end en servomotor?
Her skal vi vise dig, hvordan du styrer flere servomotorer med Arduino. Forbindelse af flere servomotorer med Arduino ser ud til at være let, men hvis vi forbinder alle servoer til Arduino-forsyningsstifter, fungerer de ikke korrekt på grund af manglende strøm nok til at drive alle motorerne. Så du skal bruge separat strømforsyning til motorerne, enten fra nogle adaptere (5v 2A) eller fra 9v batterier af god kvalitet.
Nødvendigt materiale
- Arduino UNO
- Servomotor
- Strømforsyning
- Brødbræt
- Tilslutning af ledninger
Kredsløbsdiagram
Hvad er en servomotor?
Før vi går i detaljer, skal vi først vide om Servo Motors.
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.
Inden du tilslutter servoer til Arduino, kan du teste din servo ved hjælp af dette Servo Motor Tester Circuit. Se også nedenstående servoprojekter:
- Servomotorstyring med Flex-sensor
Arduino-kode Forklaring
Den komplette Arduino-kode til Multiple Servo Control er givet i slutningen.
Arduino har bibliotek til servomotorer, og det håndterer alle PWM-relaterede ting for at rotere servoen, du skal bare indtaste den vinkel, som du vil rotere, og der er funktion servo1.write (vinkel); som roterer servoen til den ønskede vinkel.
Så her starter vi med at definere biblioteket til servomotor.
#omfatte
I nedenstående kode initialiserer vi alle de fire servoer som Servo1, Servo2, Servo3 og Servo4.
Servo servo1; Servo servo2; Servo servo3; Servo servo4;
Derefter indstiller vi alle servo'ens input pin med Arduino. Som vist i nedenstående kode er Servo1 tilsluttet den 3. pin på Arduino. Du kan skifte stifter efter dig, men husk at det skal være en PWM-stift. Brug af en servo med digitale stifter på Arduino er ikke pålidelig.
ugyldig opsætning () { servo1.attach (3); servo2. vedhæft (5); servo3. vedhæft (6); servo4. vedhæft (9); }
Nu, i void loop () -funktionen, roterer vi bare al servo fra 0 til 180 grader og derefter 180 til 0 grader. Forsinkelsen anvendt i nedenstående kode bruges til at øge eller mindske hastigheden på servoen, da den påvirker den stigende eller faldende hastighed for variablen 'i'.
ugyldig sløjfe () { 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); } }
Kontrol af flere servoer med Arduino- Arbejde:
Vi står alle over for nuværende problem, mens vi bruger mere end to servoer med en Arduino. Den eneste løsning på dette er at tilslutte en ekstern strømforsyning med en passende strømværdi (i dette projekt brugte jeg 2A med 9v-forsyning). Til ekstern strømforsyning kan du bruge adaptere, RPS (reguleret strømforsyningsinstrument) eller 9v volt batterier af god kvalitet, evne kan du bruge din bærbare USB-port til at drive lille servo. For at bruge den eksterne forsyning skal du bare kortslutte Arduino-jorden til den eksterne forsyningsplads.
Brug Arduino-koden nedenfor for at programmere din Arduino og tilslut alle servomotorer som vist i kredsløbsdiagrammet med korrekt strømforsyning til motorer. Derfor vil alle servoer arbejde sammen uden afbrydelse.