Ano ang Servo Motor Controller?
Pangalanan ng Servo Motor Controller
Ang servo motor controller (o servo motor driver) ay isang sirkwito na ginagamit para kontrolin ang posisyon ng servo motor.
Sirkwito ng Servo Motor Driver
Ang sirkwito ng servo motor driver kabilang ang micro-controller, power supply, potentiometer, at connectors, na nagbibigay ng tumpak na kontrol sa motor.
Tungkulin ng Micro-controller
Ang micro-controller ay gumagawa ng PWM pulses sa tiyak na interval upang kontrolin nang tama ang posisyon ng servo motor.
Power Supply
Ang disenyo ng power supply para sa servo motor controller ay depende sa bilang ng konektadong motors. Karaniwang gumagamit ang mga servo motors ng 4.8V hanggang 6V supply, at 5V ang standard. Ang paglampa sa supply voltage ay maaaring magdulot ng pinsala sa motor. Ang current draw ay nag-iiba-iba depende sa torque, mas mababa sa idle mode at mas mataas kapag tumatakbo. Ang maximum current draw, na kilala bilang stall current, maaaring umabot sa 1A para sa ilang motors.
Para sa kontrol ng iisang motor, gamitin ang voltage regulator tulad ng LM317 na may heat sink. Para sa maraming motors, kinakailangan ng high-quality power supply na may mas mataas na current rating. Ang SMPS (Switched Mode Power Supply) ay isang mahusay na pagpipilian.
Block Diagram sa ibaba na nagpapakita ng interconnections sa Servo Motor Driver

Pagkontrol ng Servo Motor
Ang servo motor ay may tatlong terminals.
Position signal (PWM Pulses)
Vcc (Mula sa Power Supply)
Ground

Ang angular position ng servo motor ay kontrolado sa pamamagitan ng pag-apply ng PWM pulses na may tiyak na width. Ang duration ng pulse ay mula 0.5ms para sa 0-degree rotation hanggang 2.2ms para sa 180-degree rotation. Ang mga pulse ay dapat ibigay sa frequency na 50Hz hanggang 60Hz.
Upang lumikha ng PWM (Pulse Width Modulation) waveform, tulad ng ipinakita sa larawan sa ibaba, maaaring gamitin ang internal PWM module ng micro-controller o ang timers. Ang paggamit ng PWM block ay mas flexible, at mas angkop ito para sa mga aplikasyon tulad ng servo motor. Para sa iba't ibang width ng PWM pulses, kinakailangan ng program ang internal registers nang angkop.
Ngayon, kailangan din nating sabihin sa microcontroller kung gaano kailangang i-rotate. Para rito, maaaring gamitin ang simple potentiometer at ADC upang makuha ang angle ng rotation, o para sa mas komplikadong aplikasyon, maaaring gamitin ang accelerometer.

Algoritmo ng Programa
Isang disenyo ng Programa upang kontrolin ang iisang servo at ang input ng posisyon ay ibinibigay sa pamamagitan ng potentiometer na konektado sa pin ng controller.
Initialize ang port pins para sa input/output.
Basahin ang ADC para sa desired servo position.
Program the PWM registers for the desired value.
Kapag in-trigger mo ang PWM module, ang napiling PWM channel pin ay magiging high (logic 1) at pagkatapos makamit ang required width, ito ay muling magiging low (logic 0). Kaya pagkatapos in-trigger ang PWM, dapat mong simulan ang timer na may delay ng about 19 ms at maghintay hanggang ang timer ay overflowBumalik sa step 2
May iba't ibang modes ng PWM na available na maaaring gamitin depende sa microcontroller na pinili. Kinakailangan ng ilang degree ng optimization sa code upang kontrolin ang servo.
Kung plano mong gamitin ang higit sa isang servo, kinakailangan mo ng parehong bilang ng PWM channels. Bawat servo ay maaaring ibigay ang PWM signal nang sunod-sunod. Ngunit dapat mong siguruhin na ang pulse repetition rate para sa bawat servo ay napatutupad. Kung hindi, ang servo ay maaaring mawala sa synchronization.