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 isang servo motor.
Sirkwito ng Servo Motor Driver
Ang sirkwito ng servo motor driver ay kasama ang micro-controller, power supply, potentiometer, at connectors, upang matiyak ang tumpak na pagkontrol ng motor.
Tungkulin ng Micro-controller
Ang micro-controller ay gumagawa ng PWM pulses sa tiyak na interval para tumpaking kontrolin 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 na supply, kung saan ang 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 hanggang 1A para sa ilang motors.
Para sa single motor control, 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 isang 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 nakokontrol sa pamamagitan ng pag-apply ng PWM pulses na may tiyak na width. Ang duration ng pulse ay nasa 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 makabuo ng PWM (Pulse Width Modulation) waveform, tulad ng ipinapakita sa larawan sa ibaba, maaari kang gumamit ng 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 widths ng PWM pulses, kailangang programin ang internal registers nang angkop.
Ngayon, kailangan din nating sabihin sa microcontroller kung gaano kailangang i-rotate. Para sa layuning ito, maaari nating gamitin ang simple potentiometer at ADC upang makuha ang rotation angle, o para sa mas komplikadong aplikasyon, maaaring gamitin ang accelerometer.

Algoritmo ng Program
Hagdanin natin ang Program upang kontrolin ang isang solo servo at ang position input 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.
Programin ang PWM registers para sa desired value.
Kapag na-trigger ang PWM module, ang pin ng selected PWM channel ay liliit (logic 1) at pagkatapos maabot ang required width, ito ay bababa muli (logic 0). Kaya pagkatapos na-trigger ang PWM, dapat simulan ang timer na may delay ng about 19 ms at maghintay hanggang ang timer ay overflowBumalik sa step 2
Mayroong iba't ibang modes ng PWM na available na maaaring gamitin depende sa microcontroller na pinili. Ang ilang degree ng optimization ay dapat gawin sa code upang kontrolin ang servo.
Kung plano mong gamitin ang higit sa isang servo, kailangan mo ng as many PWM channels. Bawat servo ay maaaring ibigay ang PWM signal nang sequential. Ngunit dapat mong siguruhin na ang pulse repetition rate para sa bawat servo ay maintained. Kung hindi, ang servo ay mawawalan ng synchronization.