Ano ang Servo Motor Controller?
Pahayag ng Servo Motor Controller
Ang servo motor controller (o servo motor driver) ay isang circuit na ginagamit upang kontrolin ang posisyon ng servo motor.
Circuit ng Servo Motor Driver
Ang circuit ng servo motor driver ay kasama ang micro-controller, power supply, potentiometer, at connectors, na nagbibigay ng tiyak na kontrol sa motor.
Tungkulin ng Micro-controller
Ang micro-controller ay gumagawa ng PWM pulses sa tiyak na interval upang makontrol 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. Ang mga servo motor ay karaniwang gumagamit ng 4.8V hanggang 6V supply, kung saan ang 5V ay standard. Ang paglampa sa supply voltage ay maaaring masira ang motor. Ang current draw ay nag-iiba-iba depende sa torque at mas mababa sa idle mode at mas mataas kapag tumatakbo. Ang pinakamataas na current draw, kilala bilang stall current, maaaring umabot hanggang 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 - nagpapakita ng interconnections sa Servo Motor Driver

Kontrol 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 pulse duration ay mula sa 0.5ms para sa 0-degree rotation hanggang 2.2ms para sa 180-degree rotation. Ang mga pulses ay dapat ibigay sa frequencies na 50Hz hanggang 60Hz.
Upang lumikha ng PWM (Pulse Width Modulation) waveform, tulad ng ipinapakita 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 para sa mga aplikasyon tulad ng servo motor. Para sa iba't ibang widths ng PWM pulses, kinakailangan nating programin ang internal registers nang angkop.
Ngayon, kailangan din nating sabihin sa microcontroller kung gaano katagal ito dapat mag-rotate. Para sa layuning ito, maaaring gamitin ang simple na potentiometer at ADC upang makuhang ang angle ng rotation o para sa mas komplikadong aplikasyon, maaaring gamitin ang accelerometer.

Program Algorithm
Gawin natin ang Program upang kontrolin ang isang servo at ang input ng position ay ibinibigay sa pamamagitan ng potentiometer na konektado sa isang pin ng controller.
Initialize ang port pins para sa input/output.
Basahin ang ADC para sa desired servo position.
Programin ang PWM registers para sa desired value.
Kapag na-trigger ang PWM module, ang napiling PWM channel pin ay magiging high (logic 1) at pagkatapos maabot ang required width, ito ay magiging low (logic 0). Kaya pagkatapos na-trigger ang PWM, dapat simulan ang timer na may delay ng humigit-kumulang 19 ms at hintayin ang overflow ng timerPumunta sa step 2
May iba't ibang modes ng PWM na available na maaaring gamitin depende sa microcontroller na pipiliin. Kinakailangan ng kaunting optimization sa code upang kontrolin ang servo.
Kung planong gamitin ang higit sa isang servo, kinakailangan mo ng parehong bilang ng PWM channels. Ang bawat servo ay maaaring ibigay ng PWM signal nang sequential. Ngunit dapat alamin na ang pulse repetition rate para sa bawat servo ay dapat mapanatili. Kung hindi, ang servo ay maaaring mawala sa synchronization.