You are on page 1of 2

Muhamad Ridwan Apriansyah

14518241052
KENDALI POSISI MOTOR SERVO
MENGGUNAKAN JOYSTICK DAN ARDUINO
Motor servo adalah sebuah motor DC yang dilengkapi rangkaian kendali dengan
sistem closed feedback yang terintegrasi dalam motor tersebut. Pada motor servo posisi
rotor akan diinformasikan kembali ke rangkaian kontrol yang ada di dalam motor servo.
Motor ini terdiri dari sebuah motor DC, serangkaian gear, potensiometer, dan rangkaian
kontrol. Potensiometer berfungsi untuk menentukan batas sudut dari putaran servo.
Sedangkan sudut dari sumbu motor servo diatur berdasarkan lebar pulsa yang dikirim
melalui kaki sinyal dari kabel motor servo. Gambar 1 menunjukkan salah satu jenis
motor servo yang tersedia banyak di pasar yaitu micro servo.

Gambar 1. Micro Servo


Cara menjalankan atau mengendalikan motor servo berbeda dengan motor DC.
Untuk mengendalikan motor servo perlu diberikan sumber tegangan dan sinyal kontrol.
Besarnya sumber tegangan tergantung dari spesifikasi motor servo yang digunakan.
Sedangkan untuk mengendalikan putaran motor servo dilakukan dengan mengirimkan
pulsa kontrol dengan frekuensi 50 Hz dengan periode 20ms dan duty cycle yang
berbeda. Pada saat time on duty cycle dari sinyal yang diberikan kurang dari 1.5 ms,
maka rotor akan berputar ke berlawanan arah jarum jam (Counter Clock wise, CCW)
dengan membentuk sudut yang besarnya linier terhadap besarnya time on duty cycle,
dan akan bertahan diposisi tersebut. Sebaliknya, jika time on duty cycle dari sinyal yang
diberikan lebih dari 1.5 ms, maka rotor akan berputar searah jarum jam (Clock Wise,
CW) dengan membentuk sudut yang linier pula terhadap besarnya time on duty cycle,
dan bertahan diposisi tersebut. Pulsa kendali motor servo ditunjukkan pada Gambar 2.

Muhamad Ridwan Apriansyah


14518241052
Gambar 1. Pulsa Kendali Motor Servo
Kendali posisi motor servo menggunakan Arduino dilakukan dengan cara memberi
sinyal dengan lebar pulsa yang diatur menggunakan PWM. Lebar pulsa diukur dalam
satuan milidetik. Penentuan posisi motor servo dapat dilakukan dengan menggunakan
potentiometer yang terhubung dengan pin analog input. Nilai sudut diambil dari nilai
pembacaan analag input. Rangkaian kendali posisi motor servo ditunjukkan pada
Gambar 3. Kabel merah merupakan jalur VCC, kabel hitam merupakan jalur ground,
kabel hijau merupakan ouput potentiometer yang terhubung dengan pin analog input 0,
dan kabel kuning merupakan jalur sinyal untuk menggerakkan motor servo yang
terhubung dengan pin PWM 5.

Gambar 3. Rangkaian Kendali Posisi Motor Servo


Program Arduino untuk mengendalikan posisi motor servo sesuai rangkaian pada
Gambar 3 adalah sebagai berikut:
#include <Servo.h>
Servo servo1; //Create a servo object
void setup() {
//Attaches the servo on Pin 5 to the servo object
servo1.attach(5);
}
void loop() {
int angle = analogRead(0); // Read the pot value
angle = map(angle, 0, 1023, 0, 180);
// Map the values from 0 to 180 degrees
servo1.write(angle); // Write the angle to the servo
delay(15);
// Delay of 15ms to allow servo to reach position
}

Sumber:
McRoberts, Michael. 2010. Beginning Arduino. New York: Apres.