- Nepieciešams materiāls
- Ķēdes shēma
- Kas ir servomotors?
- Arduino koda skaidrojums
- Vairāku servosu vadība ar Arduino - darbs:
Viena vai divu servo lietošana ar Arduino ir vienkārša, bet ko darīt, ja mēs vēlamies izmantot vairākus servomotorus?
Šeit mēs parādīsim, kā ar Arduino vadīt vairākus servomotorus. Šķiet, ka ir viegli savienot vairākus servomotorus ar Arduino, un, ja mēs visus servoservārus savienojam ar Arduino padeves tapām, tad tie nedarbosies pareizi, jo trūkst pietiekamas strāvas, lai darbinātu visus motorus. Tātad motoriem jāizmanto atsevišķs barošanas avots, vai nu no dažiem adapteriem (5v 2A), vai no labas kvalitātes 9v baterijām.
Nepieciešams materiāls
- Arduino UNO
- Servo motors
- Enerģijas padeve
- Maizes dēlis
- Vadu savienošana
Ķēdes shēma
Kas ir servomotors?
Pirms iedziļināties detaļās, vispirms mums jāzina par Servo Motors.
Servomotori ir pieejami dažādās formās un izmēros. Servomotorā galvenokārt būs vadi, viens ir paredzēts pozitīvam spriegumam, otrs - zemējumam, bet pēdējais - pozīcijas iestatīšanai. RED vads ir savienots ar strāvu, melnais vads ir savienots ar zemi un dzeltens vads ir savienots ar signālu.
Servomotors ir līdzstrāvas motora, stāvokļa kontroles sistēmas, zobratu kombinācija. Līdzstrāvas motora vārpstas stāvokli regulē servo vadības elektronika, pamatojoties uz PWM signāla SIGNAL tapas darba attiecību.
Vienkārši runājot, vadības elektronika regulē vārpstas stāvokli, kontrolējot līdzstrāvas motoru. Šie dati par vārpstas stāvokli tiek nosūtīti caur SIGNAL tapu. Pozīcijas dati vadības ierīcei jānosūta PWM signāla veidā caur servomotora signāla tapu.
PWM (pulsa platuma modulēta) signāla frekvence var atšķirties atkarībā no servomotora veida. Svarīgi šeit ir PWM signāla DUTY RATIO. Pamatojoties uz šo DUTY RATION, vadības elektronika noregulē vārpstu.
Kā parādīts zemāk redzamajā attēlā, lai vārpstu varētu pārvietot uz 9o pulksteni, IESLĒGŠANAS RĀCIJAI jābūt 1/18. 1 ms ON laiks un 17 ms OFF laiks 18 ms signālā.
Lai vārpstu varētu pārvietot uz 12o pulksteni, signāla IESLĒGŠANAS laikam jābūt 1,5 ms un Izslēgšanas laikam 16,5 ms. Šo attiecību dekodē vadības sistēma servo, un tā pielāgo pozīciju, pamatojoties uz to. Šis PWM šeit tiek ģenerēts, izmantojot ARDUINO UNO.
Pirms Servo pievienošanas Arduino, jūs varat pārbaudīt servo ar šīs Servo Motor Tester Circuit palīdzību. Pārbaudiet arī mūsu zemāk esošos Servo projektus:
- Servomotora vadība ar Flex sensoru
Arduino koda skaidrojums
Pilnīgs Arduino kods Multiple Servo Control ir norādīts beigās.
Arduino ir servo motors bibliotēka, un tā apstrādā visas ar PWM saistītās lietas, lai pagrieztu servo. Jums vienkārši jāievada leņķis, līdz kuram vēlaties pagriezties, un ir funkcija servo1.write (leņķis); kas pagriezīs servo vēlamajā leņķī.
Tātad šeit mēs sākam, definējot servo motora bibliotēku.
# iekļaut
Zemāk esošajā kodā mēs inicializējam visus četrus servos kā Servo1, Servo2, Servo3 un Servo4.
Servo servo1; Servo servo2; Servo servo3; Servo servo4;
Tad mēs ar Arduino iestatām visu servo ievades tapu. Kā parādīts zemāk esošajā kodā, Servo1 ir savienots ar Arduino 3. tapu. Jūs varat mainīt tapas atbilstoši savam, taču paturiet prātā, ka tam vajadzētu būt PWM tapai. Servo lietošana ar Arduino digitālajām tapām nav uzticama.
void setup () { servo1.attach (3); servo2.attach (5); servo3.attach (6); servo4.attach (9); }
Tagad funkcijā void loop () mēs visu servo tikai pagriežam no 0 līdz 180 grādiem un pēc tam no 180 līdz 0 grādiem. Kavējums, kas izmantots zemāk esošajā kodā, tiek izmantots, lai palielinātu vai samazinātu servo ātrumu, jo tas ietekmē mainīgā “i” pieaugošo vai samazinošo ātrumu.
void loop () { par (int i = 0; i <180; i ++) { servo1.write (i); servo2.write (i); servo3.write (i); servo4.write (i); kavēšanās (10); } par (i = 180; i> 0; i--) { servo1.write (i); servo2.write (i); servo3.write (i); servo4.write (i); kavēšanās (10); } }
Vairāku servosu vadība ar Arduino - darbs:
Mēs visi saskaramies ar pašreizējo problēmu, vienlaikus lietojot vairāk nekā divus servo ar vienu Arduino. Vienīgais risinājums tam ir ārējā barošanas avota pieslēgšana ar atbilstošu strāvas stiprumu (šajā projektā es izmantoju 2A ar 9v barošanu). Ārējai strāvas padevei varat izmantot adapterus, RPS (regulētā barošanas avota instruments) vai labas kvalitātes 9 voltu akumulatorus, lai jūs varētu izmantot klēpjdatora USB pieslēgvietu, lai darbinātu nelielu servo. Lai izmantotu ārējo padevi, jums vienkārši jāsaīsina Arduino zeme uz ārējās barošanas zemi.
Izmantojiet zemāk norādīto Arduino kodu, lai ieprogrammētu savu Arduino un pievienotu visus servomotorus, kā parādīts ķēdes shēmā, ar pareizu motora barošanu. Tāpēc visi servo darbosies bez traucējumiem.