Sa tutorial na ito makokontrol namin ang isang servo motor ng ARDUINO UNO. Ginagamit ang mga Servo Motors kung saan kinakailangan ng tumpak na paggalaw o posisyon ng baras. Hindi ito iminungkahi para sa mga application ng mataas na bilis. Ang mga ito ay iminungkahi para sa mababang bilis, katamtamang metalikang kuwintas at tamang aplikasyon ng posisyon. Ang mga motor na ito ay ginagamit sa mga robotic arm machine, flight control at control system.
Magagamit ang mga servo motor sa iba't ibang mga hugis at sukat. Ang isang motor na servo ay magkakaroon ng higit na may mga wire, ang isa ay para sa positibong boltahe isa pa ay para sa lupa at ang huli ay para sa setting ng posisyon. Ang RED wire ay konektado sa lakas, ang Black wire ay konektado sa ground at ang YELLOW wire ay konektado sa signal.
Ang isang servo motor ay isang kumbinasyon ng DC motor, posisyon control system, gears. Ang posisyon ng baras ng motor na DC ay nababagay ng control electronics sa servo, batay sa duty ratio ng PWM signal na SIGNAL pin.
Sa pagsasalita lamang ng control electronics ayusin ang posisyon ng baras sa pamamagitan ng pagkontrol sa DC motor. Ang data na ito tungkol sa posisyon ng baras ay ipinadala sa pamamagitan ng SIGNAL pin. Ang data ng posisyon sa kontrol ay dapat ipadala sa anyo ng PWM signal sa pamamagitan ng Signal pin ng servo motor.
Ang dalas ng PWM (Pulse Width Modulated) signal ay maaaring magkakaiba batay sa uri ng servo motor. Ang mahalagang bagay dito ay ang DUTY RATIO ng PWM signal. Batay sa TUNGKOL SA DUTY na ito, ang electronics ng control ayusin ang baras.
Tulad ng ipinakita sa figure sa ibaba, para sa shaft na ilipat sa 9o na orasan ang TURN ON RATION ay dapat na 1 / 18.ie. 1ms ng ON time at 17ms ng OFF na oras sa isang 18ms signal.
Para sa shaft na ilipat sa 12o na orasan ang ON time ng signal ay dapat na 1.5ms at ang OFF na oras ay dapat na 16.5ms. Ang ratio na ito ay na-decode ng control system sa servo at inaayos nito ang posisyon batay dito. Ang PWM na ito dito ay nabuo sa pamamagitan ng paggamit ng ARDUINO UNO.
Mga Bahagi ng Circuit
Hardware: ARDUINO UNO, power supply (5v), 100uF capacitor, pindutan (dalawang piraso), 1KΩ risistor (dalawang piraso), Servo motor (na kailangang subukin).
Software: arduino IDE (Arduino gabi-gabi).
Arduino Servo Motor Circuit Diagram at Paliwanag
Sa mga normal na kaso kailangan naming pumunta sa mga rehistro ng controller para sa pag-aayos ng dalas at para sa pagkuha ng kinakailangang ratio ng tungkulin para sa tumpak na kontrol sa posisyon ng servo, sa ARDUINO hindi namin kailangang gawin ang mga bagay na iyon.
Sa ARDUINO mayroon kaming natukoy na mga aklatan, na magtatakda ng mga frequency at ratios ng tungkulin nang naaayon sa sandaling ang header file ay tinawag o isinama. Sa ARDUINO kailangan lang naming sabihin ang posisyon ng servo na kinakailangan at ang PWM ay awtomatikong nababagay ng UNO.
Ang mga bagay na kailangan nating gawin para makakuha ng tumpak na posisyon ng servo ay:
|
Una kailangan naming magtakda ng dalas ng signal ng PWM at para doon dapat nating tawagan ang "#include
Ngayon kailangan naming tukuyin ang isang pangalan para sa servo na "Servo sg90sevo", narito ang 'sg90servo' ang napiling pangalan, kaya habang nagsusulat para sa gayuma gagamitin namin ang pangalang ito, ang tampok na ito ay magagamit kapag mayroon kaming maraming mga servo upang makontrol, makokontrol natin ang hanggang walong servo sa pamamagitan nito.
Ngayon sasabihin namin sa UNO kung saan nakakonekta ang signal pin ng servo o kung saan kinakailangan upang makabuo ng PWM signal. Upang magawa ito mayroon kaming "Sg90.attach (3);", dito sinasabi sa UNO na ikinonekta namin ang signal pin ng servo sa PIN3.
Ang lahat ng natitira ay upang itakda ang posisyon, itatakda namin ang posisyon ng servo sa pamamagitan ng paggamit ng "Sg90.write (30);", sa pamamagitan ng utos na ito ang kamay ng servo ay gumagalaw ng 30 degree, kaya ayun. Pagkatapos nito tuwing kailangan nating baguhin ang posisyon ng servo kailangan nating tawagan ang utos ”Sg90.write (kailangan_posisyon_ anggulo);”. Sa circuit na ito magkakaroon kami ng dalawang mga pindutan ang isang pindutan ay nagdaragdag ng posisyon ng servo at ang iba pa ay para sa pagbawas ng posisyon ng servo.
Ang Arduino Servo Motor control tutorial ay ipinaliwanag sa hakbang-hakbang ng C code na ibinigay sa ibaba.