Jelajahi eBook
Kategori
Jelajahi Buku audio
Kategori
Jelajahi Majalah
Kategori
Jelajahi Dokumen
Kategori
Tujuan :
1. Memahami prinsip kerja motor servo
2. Memahami cara mengontrol motor servo menggunakan mikrokontroler
Alat dan Bahan :
-
Dasar Teori
1. Motor Servo
Motor servo adalah sebuah motor
dengan sistem closed feedback di mana
posisi dari motor akan diinformasikan
kembali ke rangkaian kontrol yang ada
di dalam motor servo. Ada dua jenis
motor servo, yaitu motor servo AC dan
DC. Motor servo AC lebih dapat
menangani arus yang tinggi atau beban
berat, sehingga sering diaplikasikan
pada mesin-mesin industri. Sedangkan motor servo DC biasanya lebih
cocok untuk digunakan pada aplikasi-aplikasi yang lebih kecil. Dan bila
dibedakan menurut rotasinya, umumnya terdapat dua jenis motor servo
yang dan terdapat di pasaran, yaitu motor servo rotation 180 dan servo
rotation continuous.
Motor servo standard (servo rotation 180) adalah jenis yang paling
umum dari motor servo, dimana putaran poros outputnya terbatas
hanya 90 kearah kanan dan 90 kearah kiri. Dengan kata lain total
putarannya hanya setengah lingkaran atau 180.
Motor servo rotation continuous merupakan jenis motor servo yang
sebenarnya sama dengan jenis servo standard, hanya saja
perputaran porosnya tanpa batasan atau dengan kata lain dapat
berputar terus, baik ke arah kanan maupun kiri.
lebih lama dari 1,5 ms maka poros motor servo akan berputar ke arah
posisi 180 atau ke kanan (searah jarum jam). Lebih jelasnya perhatikan
gambar dibawah ini.
Ketika lebar pulsa kendali telah diberikan, maka poros motor servo
akan bergerak atau berputar ke posisi yang telah diperintahkan, dan
berhenti pada posisi tersebut dan akan tetap bertahan pada posisi
tersebut. Jika ada kekuatan eksternal yang mencoba memutar atau
mengubah posisi tersebut, maka motor servo akan mencoba menahan
atau melawan dengan besarnya kekuatan torsi yang dimilikinya (rating
torsi servo). Namun motor servo tidak akan mempertahankan posisinya
untuk selamanya, sinyal lebar pulsa kendali harus diulang setiap 20 ms
(mili detik) untuk menginstruksikan agar posisi poros motor servo tetap
bertahan pada posisinya.
2. AT Mega 8535
Konfigurasi pin ATmega8535 dengan kemasan 40 pin DIP (Dual Inline
Package) dapat dilihat pada gambar 2.1. Dari gambar di atas dapat
dijelaskan fungsi dari masing-masing pin Atmega8535 sebagai berikut:
1. VCC merupakan pin yang berfungsi sebagai masukan catu daya.
2. GND merukan pin Ground.
3. Port A (PortA0PortA7) merupakan pin input/output dua arah dan pin
masukan ADC.
4. Port B (PortB0PortB7) merupakan pin input/output dua arah dan
dan pin fungsi khusus.
Keterangan:
fOC1A_PCP = frekuensi output OC1A mode PCP
fOC1B_PCP = frekuensi output OC1B mode PCP
fOSC = frekuensi kristal/ osilator
D = duty cycle
N = skala clock (Tabel 2.1)
TOP = nilai maksimum counter (TCNT1)
b. Mode CTC
Keterangan:
Keterangan:
fOC1A_FastPWM = frekuensi output OC1A mode fast PWM
fOC1B_FastPWM = frekuenai output OC1B mode fast PWM
fOSC = frekuensi Kristal/ osilator
N = skala clock (Tabel 2.1)
TOP = nilai maksimum counter (TCNT1)
Setting Percobaan
Prosedur Percobaan
1. Menyiapkan alat dan bahan yang diperlukan.
2. Men-setting power supply dengan cara:
- Menyalakan power supply yang belum terhubung dengan modul mikrokontroler.
- Mengatur current soure hingga menunjukkan setengah dari nilai maksimalnya baik
pada bagian fine maupun course.
- Mengatur voltage source hingga menunjukkan nilai 5 V dengan toleransi 0,2V.
Lalu mematikan power supply.
3. Menghubungkan downloader dengan connector ISP pada modul mikrokontroler.
Kemudian menghubungkan downloader dengan PC menggunakan USB.
4. Menghidupkan PC dan membuka software CV AVR.
5. Meng-klik file, memilih new project.
6. Memilih type chip AT Mega.
7. Memilih chip AT Mega 8535 dengan nilai clock 4 MHz.
8. Meng-klik alpha numeric LCD meng-klik enablememilih character line
16mengubah port menjadi port B.
9. Meng-klik Timersmeng-klik timer 1pada clock source memilih system
clockmemilih clock value sebesar 4.000.000 KHzmemilih mode fast PWM
top=ICR1.
10. Memilih mode untuk output A dengan meng-klik non-inverted PWM.
11. Kemudian pada box input capture mengisikan FFFF h.
12. Selanjutnya pada menu bar memilih program lalu memilih generate save and exit
pada saat menyimpan memberi nama yang sama.
13. Kemudian muncul workspace yang digunakan untuk memrogram AT Mega 8535.
14. Sebelum memrogram, memeriksa pada bagian timer dengan ketentuan :
- TCCR1A = 0x82
- TCCR1B = 0x19
15. Jika sudah selesai, menulis program pada bagian paling bawah dengan format :
if (PINC.0==1) OCR1A = OCR1A+10;
Hasil Percobaan
Tabel 1. Tabel Hasil Percobaan
Sudut
()
OCR1A Teori
(step)
OCR1A Praktek
(step)
Error
(step)
Gambar
0
1790
10
2123
20
2456
30
2789
40
3123
50
3456
60
3789
70
4123
80
4456
90
4789
*Gambar terlampir
1790
2160
2500
3010
3300
3780
4070
4600
4980
5390
0
37
44
221
177
324
281
477
524
601
Gambar 3.1
Gambar 3.2
Gambar 3.3
Gambar 3.4
Gambar 3.5
Gambar 3.6
Gambar 3.7
Gambar 3.8
Gambar 3.9
Gambar 3.10
Analisa
Pada percobaan kali ini dilakukan uji kontrol motor servo pada mikrokontroller agar
dapat mengetahui prinsip kerja motor servo dan cara pengontrolan motor servo tersebut
menggunakan mikrokontroller. Pada percobaan ini digunakan motor servo jenis standart yang
dibuat menjadi robot planar 1 lengan serta AT Mega 8583 sebagai pengontrol dari motor servo
tersebut. Dari hal tersebut diharapkan robot planar ( lengan robot yang terdapat motor servo)
dapat bergerak pada sudut tertentu yang dikontrol oleh AT Mega 8583.
Pada awalnya AT Mega 8583 diprogram melalui software CV AVR dengan program
sebagai berikut :
#include <stdio.h>
#include <delay.h>
if (PINC.0==1) OCR1A = OCR1A+10;
if (PINC.1==1) OCR1A = OCR1A-10;
sprintf(kata,OCR1A = %d, OCR1A);
lcd_gotoxy(0,0);
lcd_puts(kata);
delay_ms(50);
AT Mega 8583 sendiri memiliki kapasitas memori 8bit dan nilai clock yang telah di setting
adalah sebesar 4x106 Hz sehingga untuk setiap stepnya membutuhkan periode waktu sebesar
0,25s,serata pada percobaan ini pin yang digunakan yaitu pin D pada AT Mega 8535. Pada
modul mikrokontroller terdapat lcd dan 4 push button ,pada lcd tersebut menampilkan OCR1A
yang merupakan besaran step dari motor servo dan fungsi push button untuk menaikkan
maupun menurunkan nilai OCR1A. Saat mikrokontroller diaktifkan lengan robot planar
langsung bergerak kebawah (melebihi sudut 0 ). Oleh karena itu nilai OCR1A diatur agar
lengan robot bergerak menuju ke sudut 0 .
Pada praktiknya agar lengan robot menuju 0 nilai OCR1A dinaikkan menjadi 1790
step. Kemudian lengan robot digeser sejauh 10 dengan menaikkan nilai OCR1A menjadi
2160 step. Selanjutnya nilai OCR1A dinaikkan kembali menjadi 2500 step agar lengan robot
berpindah ke sudut 20 . Lalu agar lengan robot bergeser ke sudut 30 nilai OCR1A
dinaikkan menjadi 3010. Selanjutnya nilai OCR1A dinaikkan menadi 3300 step agar lengan
robot bergerak ke sudut 40 . Saat lengan robot mencapai sudut 50 ,nilai OCR1A yakni
sebesar 3780 step. Kemudian lengan robot digeser kembali ke sudut 60 sehingga nilai
OCR1A dinaikkan kembali menjadi 4070 step. Saat lengan robot berada di sudut 70 ,nilai
OCR1A dinaikkan menjadi 4600 step. Lalu lengan robot digeser kembali ke sudut 80
sehingga nilai OCR1A dinaikkan kembali menjadi 4980 step. Terakhir lengan robot digeser ke
sudut 90 sehingga nilai OCR1A dinaikkan menjadi 5390 step.
Dari percobaan diatas dihitung pula kenaikkan nilai OCR1A secara teori pada sudutsudut tersebut dengan rumus sebagai berikut :
OCR 1 A 9 0 OCR 1 A 0
90
Kemudian untuk menghitung nilai OCR1A pada sudut-sudut tertentu digunakan rumus sebagai
berikut :
Sehingga dari rumus di atas dapat dihitung kenaikan niali OCR1A secara teori pada sudut yang
telah ditentukan sebagai berikut :
=1790 step
OCR1A 10 =1790+( 10 x 33,33)
=2123 step
20
=1790+( 20 x 33,33)
OCR1A
=2456 step
30
=1790+( 30 x 33,33)
OCR1A
=2789 step
OCR1A 40 =1790+( 40
=3123 step
50
=1790+( 50 x 33,33)
OCR1A
=3456 step
60
=1790+( 60 x 33,33)
OCR1A
=3789 step
70
=1790+( 70 x 33,33)
OCR1A
=4123 step
OCR1A 80 =1790+( 80 x 33,33)
=4456 step
90
=1790+( 90 x 33,33)
OCR1A
x 33,33)
=4789 step
Sehingga dari perhitungan dan praktek yang telah dilakukan terdapat error pada nilai ORC1A
yaitu :
=0
10
= 2160 - 2123
Error Sudut
= 37
Error Sudut 20 = 2500 2456
= 44
30
= 3010 2789
Error Sudut
= 221
40
= 3300 3123
Error Sudut
= 177
= 324
60
= 4070 3789
Error Sudut
= 281
70
= 4600 4123
Error Sudut
= 477
80
= 4980 4456
Error Sudut
= 524
Error Sudut 90 = 5390 4789
= 601