Kao što je ranije spomenuto, Arduino Due ploča je zasnovana na ARM kontroleru dizajnirana za elektroničke inženjere i hobiste. Ova DUE ploča može se koristiti za izradu CNC strojeva, 3D printera, robotskih ruku itd. Svi ti projekti imaju zajedničku značajku koja je kontrola položaja. Bilo kojem od ovih projekata potrebna je točnost prema njihovom položaju. Precizne položaje u ovim strojevima mogu postići servo motori. U ovoj ćemo sekciji kontrolirati položaj servo motora s Arduino Due-om. Već smo pokrivali sučelje servo motora s Arduino Uno i sučelje servo motora s mikrokontrolerom 8051.
Servo motori:
Servo motori su poznati po preciznom kretanju ili položaju osovine. Nisu predloženi za velike brzine. Oni su predloženi za malu brzinu, srednji zakretni moment i točnu primjenu položaja. Ovi se motori koriste u robotskim strojevima za upravljanje rukama, kontrolama leta i sustavima upravljanja. Servo motori se također koriste u nekim pisačima i faks uređajima.
Servo motori su dostupni u različitim oblicima i veličinama. U ovom uputstvu koristit ćemo servo motor SG90. SG90 je servo motor od 180 stupnjeva. Dakle, s ovim servom možemo smjestiti os od 0 do 180 stupnjeva.


Servo motor uglavnom ima tri žice, jedna je za pozitivni napon, druga je za masu, a zadnja za podešavanje položaja. CRVENA žica je spojena na napajanje, smeđa žica je spojena na masu, a ŽUTA žica (ili BIJELA) je povezana na signal.
Servo motor je kombinacija istosmjernog motora, sustava za kontrolu položaja i stupnjeva prijenosa. U servo-u imamo sustav upravljanja koji uzima PWM signal sa signalnog pina. Dekodira signal i od njega dobiva omjer radne snage. Nakon toga uspoređuje omjer s unaprijed definiranim vrijednostima položaja. Ako postoji razlika u vrijednostima, on u skladu s tim podešava položaj serva. Dakle, položaj osi servo motora temelji se na omjeru radne snage PWM signala prema SIGNAL pinu.
Frekvencija PWM (Pulse Width Modulated) signala može se razlikovati ovisno o vrsti servo motora. Ovdje je najvažniji ODNOS DUŽNOSTI PWM signala. Provjerite postoji li PWM s Arduino Due. Međutim, u ovom slučaju ne trebamo se brinuti oko odabira Duty Ratio. U Arduinu imamo posebnu funkciju; kad ga pozovemo, možemo podesiti položaj servo-pogona, samo navodeći kut. O tome ćemo razgovarati u donjem radnom dijelu.
Prije povezivanja servo motora s Arduino Due, možete testirati svoj servo pomoću ovog kruga ispitivača servo motora. Također provjerite ove projekte za Control Servo pomoću Flex Sensor ili Force Sensor.
Komponente:
Hardver: Arduino Due, napajanje (5v), servo motor.
Softver: Arduino svake noći, preuzmite ga s donje veze (https://www.arduino.cc/en/Main/Software)
Za detalje o načinu preuzimanja i instaliranja ovog softvera posjetite prvi vodič Početak rada s Arduino Due-om.
Kružni dijagram i radno objašnjenje:

Kao što je ranije rečeno u ARDUINO-u, unaprijed smo definirali knjižnice, koje će u skladu s tim postaviti frekvencije i omjere dužine, nakon što se datoteka zaglavlja pozove ili uključi. U ARDUINO jednostavno moramo navesti položaj serva koji je potreban i DUE generira odgovarajući PWM signal za servo. Stvari koje moramo učiniti za dobivanje točnog položaja servo-sustava su,
#include
Servo myservo;
myservo.attach (servo_signal_pin_attached_to);
myservo.write (potreban_položaj_kut);
Datoteka zaglavlja „#include
Kao drugo, ime treba odabrati za servo pomoću "Servo myservo" , ovdje je myservo ime koje je odabrano, tako da dok pišemo za poziciju koristit ćemo to ime, ova značajka dobro dođe kada imamo mnogo servo servera, ovime možemo kontrolirati čak 12 servo upravljača.
Kako Arduino Due ima 12 PWM kanala, DUE moramo reći gdje je signalni pin servoa spojen ili gdje treba generirati PWM signal. Da bismo to učinili, imamo "myservo.attach (2);" , ovdje kažemo DUE-u da smo povezali signalni pin servoa na PIN2.
Preostalo je samo postaviti položaj, položaj servoa postaviti ćemo pomoću " myservo.write (45);" , ovom se naredbom servo kazaljka pomiče za 45 stupnjeva. Ako promijenimo '45' u '175', os servo-kutova iznosi 175 stupnjeva i tu ostaje. Nakon toga, kad god trebamo promijeniti položaj servoa , trebamo nazvati naredbu " myservo.write (needed_position_angle);" .
U programu ćemo povećavati i smanjivati kutove pomoću petlji. Dakle, servo se pomera od 0 do 180, zatim od 180 do 0 i tako dalje. Upravljanje servo motorom od strane Arduino Due najbolje je objašnjeno u koraku po koraku dolje navedenog C koda.
