Posted by : Unknown
Minggu, 06 Desember 2015
Dipasaran terdapat 2
tipe motor servo yaitu servo standard dan servo rotation (continuous).
Dimana biasanya untuk tipe standar hanya dapat melakukan pergerakan sebesar
180° sedangkan untuk tipe continuous dapat melakukan rotasi atau 360°.
Pada dasarnya motor
servo tersusun dari motor DC, rangkaian kontrol, gearbox dan potensiometer.
Berikut gambar motor servo beserta komponen internal motor servo.
Terlihat jelas bahwa
motor DC yang digunakan sangat kecil (compact) sehingga motor servo memiliki
dimensi yang cukup kecil jika dibandingkan dengan motor DC pada umumnya.
Rangkaian kontrol pada motor servo digunakan untuk mengontrol motor DC yang ada
pada motor servo, dikarenakan untuk mengakses motor servo kita harus memberikan
pulsa-pulsa kepada sinyal kontrol tersebut. Gearbox berfungsi untuk
meningkatkan torsi dari motor servo, sebernarnya terdapat dua macam bahan
penyusun gearbox yang digunakan untuk motor servo yaitu metal gear (biasanya
untuk torsi yang sangat besar) dan nylon gear (berwarna putih seperti gambar
diatas). Dan potensiometer berfungsi untuk menentukan batas sudut dari putaran
servo. Sedangkan sudut dari sumbu motor servo diatur berdasarkan lebar pulsa
yang dikirimkan.
Dikarenakan bentuknya
yang compact motor servo sering digunakan untuk aplikasi robotik, biasa
digunakan untuk penggerak kaki dan tangan robot.
Servo motor mempunyai 3
buah pin yang terdiri dari VCC, GND dan pin SIGNAL. Berikut adalah konfigurasi
pin motor servo berdasarkan merk.
Sekarang akan
dijelaskan bagaimana cara mengakses motor servo. Secara umum untuk mengakses
motor servo tipe standard adalah dengan cara memberikan pulsa high selama 1,5
ms dan mengulangnya setiap 20 ms, maka posisi servo akan berada ditengah atau
netral (0°). Untuk pulsa 1 ms maka akan bergerak berkebalikan arah jarum jam
dengan sudut -90°. Dan pulsa high selama 2 ms akan bergerak searah jarum
jam sebesar 90°. Untuk lebih jelasnya perhatikan gambar berikut.
Sedangkan untuk servo
motor tipe continuous untuk berputar (rotasi) searah jarum jam harus
diberi pulsa high selama 1,3 ms. Sedangkan untuk berputar berlawanan arah jarum
jam harus diberi logika high selama 1,7 ms. Jika motor servo continous diberi
pulsa high selama 1,5 ms maka akan berhenti.
Catatan: karakteristik lamanya pulsa high
yang diberikan untuk mengatur motor servo tergantung dari merk yang
digunakan dengan mengacu kepada datasheet.
Pin SIGNAL pada motor servo dapat dikoneksikan ke pin mana
saja pada mikrokontroler, lihat gambar dibawah. Disini saya akan memberikan
contoh program cara mengakses motor servo menggunakan program CodeVision AVR.
Dibawah ini beberapa fungsi program untuk mengakses motor
servo standard
void gerak-90derajat()
{
PORTD.0=1;//memberikan pulsa high
delay_ms(1);//pulsa high diberikan selama 1 ms
PORTD.0=0;
delay_ms(20)
}
void gerak90derajat()
{
PORTD.0=1;//memberikan pulsa high
delay_ms(2);//pulsa high diberikan selama 2 ms
PORTD.0=0;
delay_ms(20)
}
void gerak0derajat()
{
PORTD.0=1;//memberikan pulsa high
delay_ms(1.5);//pulsa high diberikan selama 1,5 ms
PORTD.0=0;
delay_ms(20)
}
{
PORTD.0=1;//memberikan pulsa high
delay_ms(1);//pulsa high diberikan selama 1 ms
PORTD.0=0;
delay_ms(20)
}
void gerak90derajat()
{
PORTD.0=1;//memberikan pulsa high
delay_ms(2);//pulsa high diberikan selama 2 ms
PORTD.0=0;
delay_ms(20)
}
void gerak0derajat()
{
PORTD.0=1;//memberikan pulsa high
delay_ms(1.5);//pulsa high diberikan selama 1,5 ms
PORTD.0=0;
delay_ms(20)
}
Sedangkan untuk motor servo continuous tidak
jauh berbeda seperti motor servo standard.
void putarsearahjarumjam()
{
PORTD.0=1;//memberikan pulsa high
delay_ms(1.3);//pulsa high diberikan selama 1,3 ms
PORTD.0=0;
delay_ms(20)
}
void putarlawanjarumjam()
{
PORTD.0=1;//memberikan pulsa high
delay_ms(1.7);//pulsa high diberikan selama 1,7 ms
PORTD.0=0;
delay_ms(20)
}
void stop()
{
PORTD.0=1;//memberikan pulsa high
delay_ms(1.5);//pulsa high diberikan selama 1,5 ms
PORTD.0=0;
delay_ms(20)
}
{
PORTD.0=1;//memberikan pulsa high
delay_ms(1.3);//pulsa high diberikan selama 1,3 ms
PORTD.0=0;
delay_ms(20)
}
void putarlawanjarumjam()
{
PORTD.0=1;//memberikan pulsa high
delay_ms(1.7);//pulsa high diberikan selama 1,7 ms
PORTD.0=0;
delay_ms(20)
}
void stop()
{
PORTD.0=1;//memberikan pulsa high
delay_ms(1.5);//pulsa high diberikan selama 1,5 ms
PORTD.0=0;
delay_ms(20)
}