Cum se interfață motoarele servo cu Arduino

Încercați Instrumentul Nostru Pentru Eliminarea Problemelor





În acest post vom învăța ce este servomotorul, cum funcționează, cum să interfațăm cu microcontrolerul și ce fac acest motor special de la alte motoare.

Fiind un pasionat de electronică am fi întâlnit multe tipuri de motoare, aici vom analiza tipul special de motor numit servomotor.



Ce este un servomotor?

Servomotorul sau pur și simplu servo este un tip special de motor care este proiectat pentru un control precis asupra poziției, accelerației și vitezei. Spre deosebire de toate celelalte tipuri de motoare, servo-ul se poate roti doar cu 180 de grade bidirecțional. Are angrenaje mecanice și dop care limitează rotația unghiulară a servo-ului.

Servomotor tipic:

Servomotorele sunt folosite în robotică, camere CCTV, mașini RC, bărci, avioane de jucărie etc. Servo-urile sunt folosite acolo unde nu este nevoie să continuăm mișcarea rotativă, ci blocăm într-o anumită poziție sau mutăm o anumită sarcină cu viteză controlată în limita unghiulară mobilă.



Servo-urile nu sunt pur și simplu un motor ca alte tipuri, ci este un modul, care combină un motor DC / AC normal, un grup de trepte, electronice de comandă și un sistem de feedback. Să analizăm în detaliu fiecare etapă menționată.

Motorul de curent continuu / c.a. care este utilizat pe un servomodul poate fi un motor fără perii sau cu perii, pe majoritatea serviciilor hobby se folosește motorul de curent continuu, iar motoarele de curent alternativ sunt utilizate în aplicații industriale. Motorul oferă intrare de rotație la servo. Motorul se rotește la câteva sute de RPM în interiorul servo și rotația de ieșire este de aproximativ 50 sau mai multe ori mai mică decât RPM-ul său.

Următoarea etapă este ansamblul angrenajului, care controlează rotația unghiulară și viteza servo. Uneltele pot fi fabricate fie din plastic, fie din metal, în funcție de cât de voluminoasă este sarcina. În general, motoarele de curent continuu funcționează la turații mari și cuplu redus, ansamblul angrenajului va converti turația în exces în cuplu. Astfel, un motor mic poate suporta o sarcină uriașă.

Următoarea etapă este electronica de control care constă din MOSFET-uri și circuite integrate pentru controlul rotației motorului. În servo-motoare este întotdeauna prezent un sistem de feedback pentru urmărirea poziției actuale a actuatorului.

În servo, în general, o componentă de feedback este un potențiometru, care este conectat direct la actuatorul rotativ. Potențiometrul acționează ca un divizor de tensiune care este alimentat către electronica de comandă. Acest feedback ajută la controlul electronicelor pentru a determina cantitatea de putere acordată motorului.

Un servomotor într-o poziție fixă ​​se va mișca reticent din poziția sa actuală dacă vreo forță externă încearcă să deranjeze. Sistemul de feedback monitorizează poziția curentă și alimentează motorul împotriva perturbațiilor externe.

Scenariul de mai sus este același atunci când servo-ul își mișcă actuatorul. Sistemul de control va compensa forța externă și se va deplasa cu viteza determinată.

Până acum știți destul de multe despre servomotor și mecanismul său de funcționare. Să vedem cum să controlăm servo motoarele folosind microcontrolerul.

Servomotorele au 3 terminale spre deosebire de alte motoare care au 2 terminale, două pentru alimentare (5V nominal) și unul pentru semnalul de comandă. Firele sunt colorate pentru identificarea ușoară a terminalelor.

Semnalele de control ale servo-urilor sunt PWM la frecvența de 50Hz. Lățimea impulsului semnalului determină poziția brațului actuatorului. Un servomotor tipic hobby funcționează între 1 și 2 milisecunde de lățime a impulsului.

Aplicarea semnalului de control al lățimii impulsului de 1 ms va menține actuatorul la poziția de 0 grade. Aplicarea semnalului de control al lățimii impulsului de 2 ms va menține actuatorul la poziția de 180 de grade. Aplicarea semnalelor între 1-2 ms va menține actuatorul în unghi de 0-180 grade. Acest lucru poate fi mai bine înțeles prin imaginea de mai jos.

Până acum ați fi înțeles cum un servo este controlat prin modulația lățimii pulsului (PWM).

Acum, să învățăm cum să interfațăm un servomotor cu Arduino.

Diagrama circuitului:

cum să interfațați un servomotor cu Arduino.

Cablarea este ușoară și se explică de la sine. Aveți nevoie de o sursă de alimentare externă dacă utilizați un servo motor voluminos. Dacă încercați să alimentați din sursa de alimentare arduino, veți termina supraîncărcarea portului USB de pe computer.

Dacă aveți servo similar, care este ilustrat la începutul articolului, atunci îl puteți alimenta din sursa de arduino 5V, prezentată și în prototipul autorului.

Prototipul autorului:

Arduino are nevoie de servotecă pentru a o manipula, ne-a ușurat sarcina și se află deja în IDE Arduino.

Program:

//--------Program developed by R.Girish--------//
#include
Servo motor
int pos = 0
int t=10
void setup()
{
motor.attach(7)
}
void loop()
{
A:
pos=pos+1
motor.write(pos)
delay(t)
if(pos==180) { goto B}
goto A
B:
pos=pos-1
motor.write(pos)
delay(t)
if(pos==0) { goto A}
goto B
}
//--------Program developed by R.Girish--------//

Programul de mai sus va muta actuatorul de la 0 la 180 de grade la dreapta și de la 180 la 0 la stânga și va repeta ciclul. Acesta este un program simplu pentru testarea servo-ului, poate fi necesar să scrieți propriul cod pentru aplicațiile personalizate.




Precedent: Circuit de control al supapei pompei de apă cu două conducte Următorul: Înțelegerea cablajului regulatorului de tensiune al motocicletelor