Anda di halaman 1dari 17

1

LAPORAN PRAKTIKUM III


MOTOR SERVO

Untuk memenuhi tugas mata kuliah Lab ELKA-01


Yang dibina oleh Dyah Lestari, S.T., M.Eng.

Oleh :
Ashrofil Muzaki (150534603478)
David Maulana M. (150534602068)
Sugiari (150534605106)
Wia Awaliyah (150534602216)

UNIVERSITAS NEGERI MALANG


FAKULTAS TEKNIK
JURUSAN TEKNIK ELEKTRO
PROGRAM STUDI S1 PENDIDIKAN TEKNIK ELEKTRO
Oktober 2017
2
MODUL IV
MOTOR SERVO
TUJUAN
Mengetahui dan memahami bagaimana cara mengontrol motor servo

MOTOR SERVO
Servo merujuk pada error sensing feedback control yang digunakan untuk
memperbaiki performa dari sebuah sistem. Servo atau Motor Servo adalah motor DC yang
memiliki mekanisme servo untuk mengontor posisi sudut secara presisi. Motor servo
umumnya mempunyai batas rotasi dari 90o hingga 360o. Beberapa motor servo juga
mempunyai batas 360o atau lebih. Akan tetapi servo tidak berputar terus-menerus.
Perputarannya dibatasi antara sudut-sudut yang sudah ditentukan.
Motor servo digunakan untuk pemosisian secara akurat misalnya pada lengan atau
kaki robot, dan di mainan RC seperti RC helikopter, pesawat terbang dan mobil.
3

Ada empat pabrikan besar yang memproduksi motor servo : Futaba, Hitec, Airtronics, dan JR
Radios. Motor servo dari Futaba dan Hitec adalah yang paling sering digunakan.
Motor servo mempunyai tiga kabel atau konektor. Dua dari kabel-kabel tersebut
adalah ground dan sumber tegangan positif untuk pencatu Motor Servo DC. Kabel ketiga
digunakan untuk sinyal kontrol. Kabel-kabel ini dibedakan dengan warna, kabel merah
merupakan supply DC dan harus dihubungkan dengan tegangan positif antara 4,8V 6V. Kabel
hitam adalah ground. Untuk kabel ketiga warnanya tergantung pada masing-masing pabrikan.
Untuk Hitec berwarna kuning dan putih untuk Futaba.

Motor servo Hitec mempunyai 24 gigi pada splines nya sedangkan Futaba mempunyai
25 gigi. Splines yang dibuat untuk satu tipe servo tidak bisa dipakai untuk servo lainnya. Splines
adalah tempat untuk menyambungkan lengan servo. Tidak seperti DC motor, membalik
konektor ground dan tegangan positif tidak merubah arah perputaran motor servo. Hal ini
malah dapat merusak motor servo. Oleh karena itu pemasangan konektor harus diperhatikan
dengan seksama.

Sebuah motor servo utamanya terdiri dari motor DC, sistem gigi, dan sensor posisi
yang kebanyakan berupa potensiometer dan rangkaian kontrol. Motor DC terhubung dengan
mekanisme gigi yang memberikan umpan balik ke sensor posisi yang berupa potensiometer.
4
Dari gear box, keluaran motor servo dikirimkan melalui spline servo ke lengan servo.
Potensiometer berganti posisi sesuai dengan posisi motor saat itu. Sehingga perubahan
resistansi menghasilkan perubahan tegangan yang sebanding dari potensiometer.
5
Sebuah sinyal PWM diberikan ke kabel kontrol. Lebar pulsanya lalu dikonversi menjadi
tegangan yang sesuai yang kemudian dibandingkan dengan sinyal dari potensi di aplifier error.

Perbedaan sinyalnya dikuatkan dan diberikan ke motor DC. Jadi sinyal yang diberikan ke Motor
Servo DC adalah gelombang redaman yang melemah ketika posisi yang diinginkan dicapai oleh
motor.

Ketika perbedaan antara posisi yang diinginkan sesuai dengan yang diindikasikan oleh pulsa
dan posisi saat itu tinggi maka motor berputar cepat. Ketika perbedaan nya sedikit motor
berputar lambat.

MENGONTROL MOTOR SERVO


Motor servo dapat berputar ke sudut yang diinginkan dengan mengirimkan sinyal
PWM (Pulse Width Modulated) ke kabel kontrol. Servo mengerti bahasa dari pulse position
modulation. Lebar pulsa bervariasi mulai dari 1 ms hingga 2 ms dikirim secara berulang-ulang
sebanyak sekitat 50 kali dalam 1 detik. Lebar pulsa nya menentukan posisi sudut motor servo.
Sebagai contoh, pulsa 1 ms memutar servo ke sudut 0o sedangkan pulsa 2 ms memutar
servo ke sudut 180o. Lebar pulsa antara sudut tersebut dapat di interpolasi sesuai keinginan.
Misalnya pulsa 1,5 ms akan memutar servo ke sudut 90o. Harus dipahami bahwa nilai ini hanya
perkiraan, nilai sebenarnya dari sebuah servo berbeda pada setiap pabrikan.
Serangkaian pulsa-pulsa (50 pulsa dalam 1 detik) harus diberikan ke servo untuk
mempertahankan posisi sudut tertentu. Saat servo menerima pulsa, motor servo dapat
mempertahankan sudutnya untuk 20 ms berikutnya. Hadi sebuah pulsa setiap frame waktu
20ms harus diberikan ke motor Servo.
6

Untuk motor servo Futaba S3003 hubungan antara lebar pulsa dan sudut servo adalah
seperti Tabel 4.1. Motor servo ini hanya dapat berputar antara sudut 0 hingga 180 derajat.
Tabel 4.1 Hubungan antara lebar pulsa dan sudut motor servo
Lebar Pulsa Posisi Sudut
0,360 ms 0 derajat
1,260 ms 90 derajat
2,160 ms 180 derajat

Untuk mengontrol motor servo dapat digunakan PWM dari mikrokontroler AVR.
Dicontohkan menggunakan AVR Timer 1 yang merupakan timer 16bit dan mempunyai dua
channel PWM (A dan B). Frekuensi CPU adalah 16Mhz, frekuensi ini adalah frekuensi
maksimum yang dapat digunakan oleh mikrokontroler AVR. Kali ini digunakan prescaller 64
sehingga timer akan mempunyai frekuensi 16Mhz/64 = 250khz (Periode 4uS). Kita
menggunakan timer dengan mode Fast PWM Top Value = ICR1. Sehingga timer akan
menghitung mulai dari 0 hingga ICR1 (Top Value). Formula untuk menghitung frekuensi dan
nilai Top Value adalah sebagai berikut :

=
(1 + )

16000000
=
64 (1 + )

16000000
50 =
64 (1 + )

= 4999

Selanjutnya set ICR1=4999. Hal ini memberikan kita PWM dengan periode 20ms
(50Hz). Lalu set output PWM menjadi Non Inverted. Selanjutnya duty cycle dapat diset melalui
7
register OCR1A dan OCR1B. Karena periode timer nya adalah 4uS (250Kz), kita dapat
menghitung nilai yang dibutuhkan untuk memutar motor servo ke sudut tertentu dengan
rumus sebagai berikut :
Sudut 0o membutuhkan lebar pulsa 0.360ms(360uS) sehingga nilai OCR1A = 360us/4us =
90
Sudut 90 o membutuhkan lebar pulsa 1.260ms(1260uS) sehingga nilai OCR1A =
1260us/4us = 315
Sudut 180 o membutuhkan lebar pulsa 2.160ms(2160uS) sehingga nilai OCR1A =
2160us/4us = 540

ALAT DAN BAHAN YANG DIGUNAKANbb


1 unit PC/Notebook
Minimum System ATmega8535
Motor Servo Futaba S3003
1 kabel USB Type B
2 kabel 10 pin
Kabel jumper

PROSEDUR
1. Hitung nilai TOP dan OCR1A yang diperlukan untuk mengontrol motor servo untuk
bergerak ke sudut 0,30,60,90,120,150 dan 180 derajat! (Frekuensi Clock minimum
system 4 MHz)
2. Hubungkan kabel hitam dengan ground (Pin nomor 1 pada minimum system), kabel
merah pada VCC (Pin nomor 2 pada minimum system), dan kabel putih pada PD5 (pin
nomor 8 pada PORT D minimum system)!
3. Hubungkan kabel 10 pin dari input trainer ke port minimum sistem yang diinginkan.
4. Atur konfigurasi Timer1 mode Fast PWM Top=ICR1 dan port sesuai kebutuhan.
5. Buatlah fungsi yang memutar motor ke posisi sudut tertentu (parameter berupa besar
sudut)!.
6. Buatlah fungsi yang memutar motor ke posisi sudut tertentu (parameter berupa lebar
pulsa HIGH dalam mikrosekon)!.
7. Buatlah program yang memutar motor servo ke sudut tertentu sesuai masukan dari
toggle menggunakan fungsi pada langkah ke-5 dan ke-6 seperti Tabel 4.2.
Tabel 4.2 Hasil pengukuran sudut ketika menggerakkan motor servo
menggunakan PWM
No. Toggle bit ke- Sudut tujuan (derajat) Fungsi langkah ke- Sudut Terukur
1 0 0 5 0
2 1 30 5 30
3 2 60 5 60
4 3 90 5 90
5 4 120 6 120
6 5 150 6 150
7 6 180 6 180
8 7 200 6 210
8. Pindahkan kabel putih motor servo ke PD3 (Pin nomor 6 pada minimum sistem). Lalu
set pin tersebut sebagai output!
9. Buatlah program yang memutar motor servo ke sudut 0, 90, dan 180 sesuai input
toggle dengan memanipulasi level logika pin PD3 dengan algoritma sebagai berikut :
8
a. Set pin PD3 (HIGH)
b. Berikan delay sesuai sudut yang dibutuhkan
c. Clear pin PD3 (LOW)
d. Berikan delay (periode sinyal adalah 20ms).

10. Catat sudut yang terukur dalam Tabel 4.3.


Tabel 4.3 Hasil pengukuran sudut ketika menggerakkan motor servo
menggunakan delay time

No. Sudut tujuan (derajat) Sudut Terukur


1 0 0
2 90 95
3 180 190

DATA HASIL PERCOBAAN

DATA HASIL PERCOBAAN


1. Hasil Perhitugan prosedur nomor 1.

a. Diketahui : b. Perhitungan TOP :



fpwm = 50 Hz =
(1 + )
fcpu = 4 MHz
n = 64 4000000
50 =
64 (1 + )
ftimer = fcpu / n
= 4 MHz / 64 =
= 62,5 kHz

Ttimer = 1 / ftimer
= 1 / 62,5 kHz
= 16 us

c. Setting OCR1A untuk sudut 0,30,60,90,120,150 dan 180 derajat.


OCR1A = Lebar Pulsa / Ttimer
Lebar Pulsa sudut 0,30,60,90,120,150 dan 180 derajat :

0 derajat : Tpulsa = 360 us


30 derajat : Tpulsa = 360 us + ( sudut Tpulsa0 / 900 ) * (1260 us 360 us )
Tpulsa = 360 us + ( 300 / 900 ) * (1260 us 360 us )
Tpulsa = 660 us
60 derajat : Tpulsa = 360 us + ( sudut Tpulsa0 / 900 ) * (1260 us 360 us )
Tpulsa = 360 us + ( 600 / 900 ) * (1260 us 360 us )
Tpulsa = 960 us
90 derajat : Tpulsa = 1260 us
120 derajat : Tpulsa = 360 us + ( sudut Tpulsa0 / 900 ) * (1260 us 360 us )
Tpulsa = 360 us + ( 1200 / 900 ) * (1260 us 360 us )
Tpulsa = 1560 us
9
150 derajat : Tpulsa = 360 us + ( sudut Tpulsa0 / 900 ) * (1260 us 360 us )
Tpulsa = 360 us + ( 1500 / 900 ) * (1260 us 360 us )
Tpulsa = 1860 us
180 derajat : Tpulsa = 2160 us

Nilai OCR1A untuk 0,90,dan 180 derajat :

0 derajat : OCR1A = 0,360 ms / 0,016 ms = 22,5


90 derajat : OCR1A = 1,260 ms / 0,016 ms = 78,75
180 derajat : OCR1A = 2,160 ms / 0,016 ms = 135

Nilai OCR1A untuk 30,60,120,dan 150 derajat :

30 derajat : OCR1A = 660 us / 16 us = 41,25


60 derajat : OCR1A = 960 us / 16 us = 60
120 derajat : OCR1A = 1560 us / 16 us = 97,5
150 derajat : OCR1A = 1860 us / 16 us = 116,25

2. Source code program prosedur nomor 5 (blok fungsinya saja).

3. Source code program prosedur nomor 6 (blok fungsinya saja).

4. Source code program prosedur nomor 7 (main program yang di dalam while saja).
10

5. Tabel 4.2.

Tabel 4.2 Hasil pengukuran sudut ketika menggerakkan motor servo


menggunakan PWM

No. Toggle bit ke- Sudut tujuan (derajat) Fungsi langkah ke- Sudut Terukur
1 0 0 5 0
2 1 30 5 30
3 2 60 5 60
4 3 90 5 90
5 4 120 6 120
6 5 150 6 150
7 6 180 6 180
8 7 200 6 210

6. Source code program prosedur nomor 9 (main program yang di dalam while saja).

7. Tabel 4.3.
11
Tabel 4.3 Hasil pengukuran sudut ketika menggerakkan motor servo
menggunakan delay time

No. Sudut tujuan (derajat) Sudut Terukur


1 0 0
2 90 95
3 180 190
12

ANALISIS DATA

Analisis kesulitan atau kendala-kendala yang dihadapi dalam pembuatan fungsi-fungsi dan
program untuk mengontrol motor servo.

Kesulitan dalam membuat kendali motor servo antara lain:


a. Program kendali motor servo sangat bergantung dari karakteristik dari motor servo itu
sendiri sehingga untuk memprogram kendali motor servo hal utama yang harus
diselesaikan adalah pemecahan masalah perhitungan, diantaranya adalah :
Lebar pulsa masing-masing sudut putaran
Nilai TOP
Nilai register OCR1A
Rumus untuk Function Program sebagai kunci utama program kendali motor servo
Nilai Periode timer
Nilai Frekuensi timer
Nilai n

b. Parameter yang digunakan bergantung pada pengembang, dari praktikum ini dapat
dianalisis bahwa ada tiga metode parameter untuk mengendalikan motor servo
dengan mikrokotroler ATmega8535, yaitu :
Parameter sudut
Parameter lebar pulsa
Parameter delay high
Untuk parameter delay high, sebenarya sama dengan parameter lebar pulsa namun
yang membedakan adalah untuk parameter delay high pengembang tidak perlu
menggunakan function program untuk mengkondisikan nilai keluaran dari output
mikrokontroler, tetapi output mirokontroler ikondisikan secara langsung melalui delay
yang telah diatur sesuai dengan lebr pulsa sudut sehingga seolah olah membentuk
sinyal pwm.
c. Pada sudut dibawah 90 terdapat kesalahan yang mengakibatkan sudut terukurnya
tidak akurat. Setelah diteliti sintaks programnya ternyata salah, dan kesalahannya
yaitu pada penggunaan program
void set_servo (int sudut)
penggunaan int mengakibatkan perhitungan yang tidak bisa menghasilkan nilai yang
ada angka dibelakang koma, sehingga hasil perhitungan akan dibulatkan dan
mengakibatkan sudut terukur tidak akurat.
Lalu untuk mengatasi hal tersebut kita ganti program menjadi

Dan hasilnya akurat sesuai harapan.


13
Analisis perbandingan Tabel 4.2 dan Tabel 4.3 dalam hal sudut terukurnya.
Dari tabel 4.2 dan 4.3 didapatkan hasil sudut terukur yang memiliki perbedaan antara
kedua tabel. Tabel 4.2 metode kontrol servonya menggunakan pwm dengan setting
timer sedangkan tabel 4.3 menggunakan metode kontrol manipulasi level logika
melalui fungsi delay untuk mendapatkan seolah olah ada sinyal pwm.
Sudut terukur pada tabel 4.2 (langkah ke-5) didapatkan hasil yang akurat,
sedangkan pada langkah ke-6 didapatkan sudut terukur yang tidak akurat pada
setting sudut 200.
Sudut terukur pada tabel 4.3 didapatkan hasil yang tidak akurat. Terdapat
selisih 5 pada tiap perpindahan sudutnya.
Ketidak akuratan dari hasil praktikum baik pada tabel 4.2 maupun tabel 4.3 terjadi
karena pada dasarnya motor servo dikontrol menggunakan PWM dimana Frekuensi
dari PWM biasanya dalam daerah 30 sampai 60Hz (15 30 ms). Hal ini disebut refresh
rate. Bila refresh rate terlalu kecil maka ketelitian servo akan berkurang karena akan
kehilangan posisinya secara periodik, bila referesh rate terlalu besar, maka servo akan
akan bergetar.
Sehingga dari teori tersebut dapat diketahui bahwa kontrol servo menggunakan PWM
(pada tabel 4.2) didapatkan keakuratan walaupun tidak 100%.
Sedangkan pada tabel 4.3 yang metode kontrol servonya menggunakan manipulasi
pulsa pwm menggunakan delay antara logika high dengan logika low didapatkan hasil
yang tidak akurat dengan selisih 5, hal ini karena keakuratan waktu dalam setting
delay tidak pas dengan sesungguhnya atau keakuratan lebih baik menggunakan fitur
setting timer. Jika dengan setting pwm maka dapat diatur kecepatan frekuensinya,
dimana kecepatan frekuensi menentukan keakuratan dalam perpindahan dari logika
high ke low atau sebaliknya.
Selain karena faktor metode yang digunakan untuk mengontrol servo, keakuratan juga
dipengaruhi oleh spesifikasi yang diberikan oleh pembuat motor servo itu sendiri.
14
KESIMPULAN

Dari hasil praktikum yang telah dilakukan, dapat disimpulkan bahwa


1. Motor servo merupakan sebuah perangkat aktuator putar (motor)yang dirancang
dengan sistem kontrol umpan balik tertutup (servo), sehingga dapat disetup atau
diatur untuk menentukan dan memastikan posisis sudut dari poros output .
2. Frekuensi dari PWM biasanya dalam daerah 30 sampai 60Hz (15 30 ms) ini
disebut refresh rate. Bila refresh rate terlalu kecil maka ketelitian servo akan
berkurang karena akan kehilangan posisinya secara periodik, bila referesh rate terlalu
besar, maka servo akan akan bergetar.
3. Ada dua metode parameter untuk mengendalikan motor servo dengan mikrokotroler
ATmega8535, yaitu :
Parameter lebar pulsa
Parameter delay high.
Parameter lebar pulsa menggunakan fungsi yang akan dipanggil dengan memberikan
nilai sudut. Sedangkan parameter delay high menggunakan delay logika high low
sehingga seperti menghasilkan sinyal pwm.
4. Dalam pemasangan motor servo perlu diperhatikan antara konektor kutub positif
dan negatif. Pemasangan kutub motor servo tidak boleh terbalik karena ini akan
membuat motor servo rusak.
15
LAMPIRAN
Sudut ketika 0 Sudut ketika 30

Sudut ketika 60 Sudut ketika 90

Sudut ketika 120 Sudut ketika 150

Sudut ketika 180 Sudut ketika 200


16

Sudut ketika 0(menggunakan delay time) Sudut ketika 90 (menggunakan delay


time)

Sudut ketika 180(menggunakan delay


time)
17