În acest tutorial vom controla un servomotor de către ARDUINO UNO. Servomotorele sunt utilizate acolo unde este nevoie de mișcare sau poziție precisă a arborelui. Acestea nu sunt propuse pentru aplicații de mare viteză. Acestea sunt propuse pentru aplicarea cu viteză redusă, cuplu mediu și poziție precisă. Aceste motoare sunt folosite la mașinile cu brațe robotizate, comenzile de zbor și sistemele de control.
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.
Componentele circuitului
Hardware: ARDUINO UNO, sursă de alimentare (5v), condensator 100uF, butoane (două bucăți), rezistor de 1KΩ (două bucăți), servomotor (care trebuia testat).
Software: arduino IDE (Arduino seara).
Diagrama și explicația circuitului servomotorului Arduino
În cazuri normale, trebuie să mergem la registrele controlerului pentru ajustarea frecvenței și pentru obținerea raportului de sarcină necesar pentru controlul exact al poziției servo, în ARDUINO nu trebuie să facem aceste lucruri.
În ARDUINO avem biblioteci predefinite, care vor seta frecvențele și raporturile de sarcină în mod corespunzător odată ce fișierul antet este apelat sau inclus. În ARDUINO trebuie pur și simplu să precizăm poziția de servo necesară, iar PWM este automat ajustat de UNO.
Lucrurile pe care trebuie să le facem pentru a obține o poziție exactă a servo-ului sunt:
|
Mai întâi trebuie să setăm frecvența semnalului PWM și pentru asta ar trebui să numim „#include
Acum trebuie să definim un nume pentru servo „Servo sg90sevo”, aici „sg90servo” este numele ales, așa că, în timp ce scriem pentru poțiune, vom folosi acest nume, această caracteristică este utilă atunci când avem multe servouri de controlat, prin aceasta putem controla până la opt servo.
Acum îi spunem UNO unde este conectat pinul de semnal al servo-ului sau unde trebuie să genereze semnalul PWM. Pentru a face acest lucru, avem „Sg90.attach (3);”, aici îi spunem UNO că am conectat pinul de semnal al servo-ului la PIN3.
Tot ce rămâne este să setăm poziția, vom seta poziția servo folosind „Sg90.write (30);”, prin această comandă mâna servo se deplasează cu 30 de grade, deci atât. După aceea, ori de câte ori trebuie să schimbăm poziția servo, trebuie să apelăm comanda „Sg90.write (needed_position_ angle);”. În acest circuit vom avea două butoane, un buton crește poziția servo și celălalt este pentru scăderea poziției servo.
Tutorial de control Arduino Servo Motor este explicat pas cu pas de cod C de mai jos.