- Material necesar
- Diagrama circuitului
- Ce este un servomotor?
- Explicația codului Arduino
- Controlul mai multor Servo-uri cu Arduino - Funcționare:
Utilizarea unuia sau a două Servo cu Arduino este ușoară, dar dacă vrem să folosim mai multe servomotoare?
Aici, vă vom arăta cum să controlați mai multe servomotoare cu Arduino. Conectarea mai multor servo-motoare cu Arduino pare a fi ușoară, dar dacă conectăm toate serverele la pinii de alimentare Arduino, atunci nu vor funcționa corect din cauza lipsei de curent suficient pentru a acționa toate motoarele. Deci, trebuie să utilizați o sursă de alimentare separată pentru motoare, fie de la unele adaptoare (5v 2A), fie de la baterii de 9v de bună calitate.
Material necesar
- Arduino UNO
- Servo motor
- Alimentare electrică
- Breadboard
- Conectarea firelor
Diagrama circuitului
Ce este un servomotor?
Înainte de a intra în detalii, mai întâi ar trebui să știm despre Servo Motors.
Servomotorele sunt disponibile la diferite forme și dimensiuni. Un servomotor va avea în principal fire, unul este pentru tensiune pozitivă, altul este pentru masă și ultimul este pentru setarea poziției. Firul roșu este conectat la alimentare, firul negru este conectat la masă și firul GALBEN este conectat la semnal.
Un servomotor este o combinație de motor DC, sistem de control al poziției, angrenaje. Poziția arborelui motorului de curent continuu este ajustată de electronica de comandă din servo, pe baza raportului de funcționare al semnalului PWM al pinului SIGNAL.
Pur și simplu, electronica de control reglează poziția arborelui controlând motorul de curent continuu. Aceste date privind poziția arborelui sunt trimise prin știftul SIGNAL. Datele de poziție către comandă trebuie trimise sub formă de semnal PWM prin pinul de semnal al servomotorului.
Frecvența semnalului PWM (Pulse Width Modulated) poate varia în funcție de tipul de servomotor. Important este aici RATIUNEA DE DEBIT a semnalului PWM. Pe baza acestei RATIUNI DE DEBIT, electronica de control reglează arborele.
Așa cum se arată în figura de mai jos, pentru ca arborele să fie deplasat la ceasul de 9o, RATIUNEA DE PORNIRE trebuie să fie 1 / 18.ie. 1 ms de timp de pornire și 17 ms de timp de oprire într-un semnal de 18 ms.
Pentru ca arborele să fie deplasat la ceasul de 12o, timpul de pornire al semnalului trebuie să fie de 1,5 ms, iar timpul de OPRIRE să fie de 16,5 ms. Acest raport este decodat de sistemul de control în servo și ajustează poziția pe baza acestuia. Acest PWM aici este generat prin utilizarea ARDUINO UNO.
Înainte de a conecta Servo-urile la Arduino, vă puteți testa servo-ul cu ajutorul acestui circuit de testare a motorului servo. Verificați și proiectele Servo de mai jos:
- Control servomotor prin senzor flexibil
Explicația codului Arduino
Codul Arduino complet pentru Servo Control multiplu este dat la sfârșit.
Arduino are o bibliotecă pentru servomotoare și gestionează toate lucrurile legate de PWM pentru a roti servo, trebuie doar să introduceți unghiul în care doriți să rotiți și există funcția servo1.write (unghi); care va roti servo la unghiul dorit.
Deci, aici începem prin definirea bibliotecii pentru servomotor.
#include
În codul de mai jos, inițializăm toate cele patru servo-uri ca Servo1, Servo2, Servo3 și Servo4.
Servo servo1; Servo servo2; Servo servo3; Servo servo4;
Apoi, setăm toți pinii de intrare ai servo-ului cu Arduino. După cum se arată în codul de mai jos, Servo1 este conectat la al treilea pin al Arduino. Puteți schimba pinii în funcție de dvs., dar rețineți că ar trebui să fie un pin PWM. Utilizarea unui Servo cu pini digitali ai Arduino nu este fiabilă.
void setup () { servo1.attach (3); servo2.attach (5); servo3.attach (6); servo4.attach (9); }
Acum, în funcția de buclă void () , doar rotim toate servo-urile de la 0 la 180 de grade și apoi de la 180 la 0 grade. Întârzierea utilizată în codul de mai jos este utilizată pentru a crește sau micșora viteza servoului, deoarece afectează viteza de creștere sau de scădere a variabilei „i”.
void loop () { for (int i = 0; i <180; i ++) { servo1.write (i); servo2.write (i); servo3.write (i); servo4.write (i); întârziere (10); } pentru (i = 180; i> 0; i--) { servo1.write (i); servo2.write (i); servo3.write (i); servo4.write (i); întârziere (10); } }
Controlul mai multor Servo-uri cu Arduino - Funcționare:
Cu toții ne confruntăm cu probleme actuale în timp ce folosim mai mult de două servome cu un singur Arduino. Singura soluție la acest lucru este să conectați o sursă de alimentare externă cu o cantitate adecvată de curent nominal (în acest proiect am folosit 2A cu alimentare de 9v). Pentru sursa de alimentare externă puteți utiliza adaptoare, RPS (Regulated Power Supply Instrument) sau baterii de bună calitate de 9V volt, totuși puteți utiliza portul USB al laptopului pentru alimentarea Servo-ului mic. Pentru a utiliza sursa externă trebuie doar să scurtcircuitați masa Arduino la masa exterioară.
Utilizați codul Arduino prezentat mai jos pentru a vă programa Arduino și conectați toate servomotorii așa cum se arată în schema circuitului cu sursa de alimentare corespunzătoare la motoare. Prin urmare, toate servo-urile vor funcționa împreună fără nicio întrerupere.