- Kinakailangan na Materyal
- Diagram ng Circuit
- Ano ang Servo Motor?
- Paliwanag ng Arduino Code
- Pagkontrol sa Maramihang Mga Serbisyo sa Arduino- Paggawa:
Ang paggamit ng isa o dalawang Servo na may Arduino ay Madali ngunit paano kung nais naming gumamit ng higit sa isang Servo Motors?
Dito, ipapakita namin sa iyo na kung paano makontrol ang Maramihang Mga Servo Motors kasama ang Arduino. Ang pagkonekta ng maraming Servo Motors kasama ang Arduino ay tila madali at ngunit kung ikonekta namin ang lahat ng mga Servos sa mga pin ng supply ng Arduino pagkatapos ay hindi sila gagana nang tama dahil sa kakulangan ng sapat na kasalukuyang upang himukin ang lahat ng mga motor. Kaya kailangan mong gumamit ng magkakahiwalay na suplay ng kuryente para sa mga motor, alinman sa mula sa ilang mga adaptor (5v 2A) o mula sa mahusay na kalidad na 9v na mga baterya.
Kinakailangan na Materyal
- Arduino UNO
- Servo Motor
- Power Supply
- Breadboard
- Mga Koneksyon sa Mga Wires
Diagram ng Circuit
Ano ang Servo Motor?
Bago magpunta sa detalye, dapat muna nating malaman ang tungkol sa Servo Motors.
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.
Bago Ikonekta ang Mga Serbisyo sa Arduino, maaari mong subukan ang iyong servo sa tulong ng Servo Motor Tester Circuit na ito. Suriin din ang aming mga proyekto sa ibaba ng Servo:
- Servo Motor Control ng Flex Sensor
Paliwanag ng Arduino Code
Ang kumpletong Arduino code para sa Maramihang Servo Control ay ibinibigay sa dulo.
Ang Arduino ay mayroong silid-aklatan para sa Servo Motors at hinahawakan nito ang lahat ng mga kaugnay na bagay ng PWM upang paikutin ang servo, kailangan mo lamang ipasok ang anggulo kung saan mo nais na paikutin at may function na servo1.write (anggulo); na paikutin ang servo sa nais na anggulo.
Kaya narito nagsisimula kami sa pamamagitan ng pagtukoy sa silid-aklatan para sa Servo motor.
# isama
Sa code sa ibaba, sinisimulan namin ang lahat ng apat na servo bilang Servo1, Servo2, Servo3, at Servo4.
Servo servo1; Servo servo2; Servo servo3; Servo servo4;
Pagkatapos, itinatakda namin ang lahat ng input pin ng servo sa Arduino. Tulad ng ipinakita sa code sa ibaba, ang Servo1 ay konektado sa ika-3 pin ng Arduino. Maaari mong baguhin ang mga pin ayon sa iyo ngunit tandaan na dapat itong isang PWM na pin. Hindi maaasahan ang paggamit ng isang Servo na may mga digital na pin ng Arduino.
void setup () { servo1.attach (3); servo2.attach (5); servo3.attach (6); servo4.attach (9); }
Ngayon, sa void loop () na pagpapaandar paikutin lang namin ang lahat ng servo mula 0 hanggang 180 degree at pagkatapos ay 180 hanggang 0 degree. Ang pagkaantala na ginamit sa code sa ibaba ay ginagamit upang madagdagan o mabawasan ang bilis ng servo dahil naapektuhan nito ang pagtaas o pagbawas ng bilis ng variable na 'i'.
void loop () { para sa (int i = 0; i <180; i ++) { servo1.write (i); servo2.write (i); servo3.write (i); servo4.write (i); antala (10); } para sa (i = 180; i> 0; i--) { servo1.write (i); servo2.write (i); servo3.write (i); servo4.write (i); antala (10); } }
Pagkontrol sa Maramihang Mga Serbisyo sa Arduino- Paggawa:
Nakaharap tayong lahat sa kasalukuyang problema habang gumagamit ng higit sa dalawang servos na may isang Arduino. Ang tanging solusyon dito ay upang ikonekta ang isang panlabas na supply ng kuryente na may naaangkop na halaga ng kasalukuyang rating (sa proyektong ito ginamit ko ang 2A na may 9v na supply). Para sa Panlabas na supply ng Power maaari mong gamitin ang Mga Adapter, RPS (Regulated Power Supply Instrument) o mahusay na kalidad na 9v volt na baterya, maaari mong gamitin ang iyong laptop USB port para sa pagpapatakbo ng maliit na Servo. Upang magamit ang panlabas na panustos kailangan mo lamang na maikli ang Arduino ground sa panlabas na supply ground.
Gamitin ang Arduino code na ibinigay sa ibaba upang mai-program ang iyong Arduino at ikonekta ang lahat ng mga Servo Motors tulad ng ipinakita sa circuit diagram na may wastong supply ng kuryente sa Motors. Samakatuwid, ang lahat ng mga servo ay gagana nang sama-sama nang walang anumang nakakagambala.