Tulad ng tinalakay nang mas maaga, ang Arduino Dahil ay isang ARM controller based board na dinisenyo para sa mga elektronikong inhinyero at libangan. Ang DUE board na ito ay maaaring gamitin para sa paggawa ng mga CNC machine, 3D printer, robotic arm atbp Lahat ng mga proyektong ito ay may isang karaniwang tampok na Control ng Posisyon. Ang alinman sa mga proyektong ito ay nangangailangan ng kawastuhan patungo sa kanilang posisyon. Ang mga tumpak na posisyon sa mga machine na ito ay maaaring makamit ng Servo Motors. Sa sesyon na ito makokontrol namin ang posisyon ng isang Servo Motor na may Arduino Dahil. Natakpan na namin ang Servo Motor Interfacing sa Arduino Uno at Servo Motor Interfacing sa 8051 Microcontroller.
Servo Motors:
Ang Servo Motors ay kilala sa kanilang 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. Ginagamit din ang mga servo motor sa ilan sa mga printer at fax machine.
Magagamit ang mga servo motor sa iba't ibang mga hugis at sukat. Kami ay magiging gamit SG90 Servo Motor sa tutorial na ito. Ang SG90 ay isang 180 degree servo motor. Kaya sa servo na ito maaari nating iposisyon ang axis mula 0 hanggang 180 degree.
Ang isang Servo Motor pangunahin ay mayroong tatlong mga wire, ang isa ay para sa positibong boltahe, ang isa pa ay para sa lupa at ang huli ay para sa setting ng posisyon. Ang RED wire ay konektado sa kuryente, ang Brown wire ay konektado sa ground at ang YELLOW wire (o WHITE) ay konektado sa signal.
Ang Servo Motor ay isang kumbinasyon ng DC motor, posisyon control system at gears. Sa servo, mayroon kaming isang control system na kumukuha ng signal ng PWM mula sa signal pin. Ini-decode nito ang signal at kinukuha ang ratio ng tungkulin mula rito. Pagkatapos nito ay ihinahambing ang ratio sa paunang natukoy na mga halaga ng posisyon. Kung mayroong isang pagkakaiba sa mga halaga, inaayos nito ang posisyon ng servo nang naaayon. Kaya't ang posisyon ng axis ng servo motor ay batay sa duty ratio ng PWM signal sa SIGNAL pin.
Ang dalas ng signal ng PWM (Pulse Width Modulated) na signal ay maaaring magkakaiba batay sa uri ng servo motor. Ang mahalagang bagay dito ay ang DUTY RATIO ng PWM signal. Suriin ito para sa PWM gamit ang Arduino Dahil. Gayunpaman sa kasong ito, hindi namin kailangang mag-alala tungkol sa pagpili ng Duty Ratio. Sa Arduino mayroon kaming isang espesyal na pagpapaandar; sa pagtawag dito maaari nating ayusin ang posisyon ng servo, sa pamamagitan lamang ng paglalahad ng anggulo. Pag-uusapan natin iyon sa Seksyon ng Paggawa sa ibaba.
Bago ang Interfacing Servo Motor sa Arduino Dahil, maaari mong subukan ang iyong servo sa tulong ng Servo Motor Tester Circuit na ito. Suriin din ang mga proyektong ito upang Makontrol ang Servo ng Flex Sensor o ng Force Sensor.
Mga Bahagi:
Hardware: Arduino Dahil, supply ng kuryente (5v), Servo motor.
Software: Arduino gabi-gabi, i-download ito mula sa link sa ibaba (https://www.arduino.cc/en/Main/Software)
Para sa, mga detalye sa Paano mag-download at mag-install ng software na ito, bisitahin ang unang tutorial na Pagsisimula sa Arduino Dahil.
Circuit Diagram at Paggawa ng Paliwanag:
Tulad ng sinabi nang mas maaga 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 DUE ay bumubuo ng naaangkop na signal ng PWM para sa servo. Ang mga bagay na kailangan nating gawin para makakuha ng tumpak na posisyon ng servo ay,
# isama
Servo MyServo;
myservo.attach (servo_signal_pin_attached_to);
myservo.write (kinakailangan_position_ anggulo);
Ang header file na "# isama
Pangalawa ang isang pangalan ay pipiliin para sa servo sa pamamagitan ng paggamit ng "Servo myservo" , narito ang myservo ang piniling pangalan, kaya habang nagsusulat para sa posisyon ay gagamitin namin ang pangalang ito, ang tampok na ito ay magagamit kapag mayroon kaming maraming mga servo upang makontrol, makokontrol natin ang hanggang 12 servo sa pamamagitan nito.
Gamit ang Arduino Dahil sa pagkakaroon ng 12 mga channel ng PWM, kailangan nating sabihin sa DUE kung saan nakakonekta ang signal pin ng servo o kung saan kinakailangan upang makabuo ng PWM signal. Upang magawa ito mayroon tayong "myservo.attach (2);" , narito sinasabi namin sa DUE na nakakonekta namin ang signal pin ng servo sa PIN2.
Ang lahat ng natitira ay upang itakda ang posisyon, itatakda namin ang posisyon ng servo sa pamamagitan ng paggamit ng " myservo.write (45);" , sa pamamagitan ng utos na ito ang kamay ng servo ay gumagalaw ng 45 degree. Kung babaguhin natin ang '45' sa '175', ang servo axis ay angulo sa 175 degree at manatili doon. Pagkatapos nito, tuwing kailangan nating baguhin ang posisyon ng servo kailangan lang naming tawagan ang utos na " myservo.write (kailangan_position_angle);" .
Sa programa, pupunta kami upang madagdagan at mabawasan ang mga anggulo sa pamamagitan ng paggamit ng mga loop. Kaya't ang servo ay nagwawalis mula 0 hanggang 180, pagkatapos ay mula 180 hanggang 0 at iba pa. Ang Servo Motor Control ng Arduino Dahil ay pinakamahusay na ipinaliwanag sa hakbang-hakbang ng C code pababa sa ibaba.