Anda di halaman 1dari 11

PERCOBAAN I

PENGENDALIAN MOTOR SERVO MENGGUNAKAN ARDUINO


TUJUAN
1. Memahami prinsip kerja motor servo
2. Memahami cara mengontrol motor servo menggunakan Arduino
3. Mengoperasikan motor servo menggunakan mikrokontroller
ALAT DAN BAHAN
- Arduino Mega 2560
- Mega sensor shield V2.3
- PC
- Software Arduino IDE
- Kabel USB
- Motor Servo Standard
- LCD 4884
- Kabel jumper
DASAR TEORI
1. Motor Servo
Motor servo meupakan sebuah motor dengan design closed feedback, posisi motor akan
difeedback kan ke rangkaian control yang ada di dalam motor servo, yaitu motor AC dan DC.
Motor servo AC lebih dapat menangani arus yang tinggi atau beban berat, sehingga sering
diaplikasikan pada mesin-mesin industry, sedangkan motor servo DC biasanya digunakan
aplikasi yang lebih kecil. Motor servo terdapat dua jenis, yaitu :

 Motor servo standard (servo rotation 180 ° ¿ jenis motor dengan putaran poros
outputnya terbatas hanya 90°ke arah kiri.
 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 kearah kanan maupun kiri.

Gambar 1.1. Motor Servo


Motor servo dikendalikan dengan memberikan sinyal modulasi lebar pulsa (PWM)
melalui kabel control. Lebar pulsa sinyal control yang diberikan akan menentukan posisi sudut
putaran dari poros motor servo.

Saat 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 menahan atau
melawan dengan besarnya kekuatan torsi yang dimilikinya. Namum motor servo tidak akan
mempertahankan posisinya untuk selamanya, sinyal lebar pulsa kendali harus diulang setiap 20
ms untuk menginstruksi agar posisi poros motor servo tetap bertahan pada posisinya.

2. Arduino Mega 2560

Gambar 2.1. Arduino Mega 2560


Gambar 2.2. Konfigurasi PIN Arduino Mega 2560

Gambar 2.2 adalah konfigurasi pin dari mikrokontroler Arduino Mega 2560 dengan penjelasan
fungsi-fungsinya sebagai berikut :
1. VCC adalah untuk masukan digital voltage supply.
2. GND adalah pin ground.
3. ADC Port (PF0 – PF7, PK0 – PK7) digunakan untuk input ADC (Analog to Digital
Converter).
4. Digital Port (PA0-PA7, PB0-PB7, PC0-PC7, PD0-PD3, PE0, PE1, PE3-PE5, PG0-PG2, PG5,
PH0, PH1, PH3-PH6, PJ0-PJ1, PL0-PL7). Masing-masing dari 54 digital pin pada Arduino
Mega dapat digunakan sebagai input atau output, menggunakan fungsi pinMode(),
digitalWrite(), dan digitalRead(). Arduino beroperasi pada tegangan 5 volt.
5. Serial:0 (RX) dan 1 (TX); serial 1:19 (RX) dan 18 (TX); serial 2:17 (RX) dan 16 (TX); serial
3:15 (RX) dan 14 (TX) digunakan untuk menerima (RX) dan mengirimkan (TX) data
serial TTL. Pin 0 dan 1 juga terhubung ke pin chip ATmega16U2 serial USB-to TTL.
6. Eksternal interupsi : pin 2 (interrupt 0), pin 3 (interrupt 1), pin 18 (interrupt 5), pin 19
(interrupt 4), pin 20 (interrupt 3) dan pin 21 (interrupt 2). Pin ini yang dapat
dikonfigurasikan untuk memicu sebuah interupsi pada nilai yang rendah, meningkat atau
menurun, atau perubah nilai.
7. SPI : Pin 50(MISO), pin 51(MOSI), pin 52(SCK), pin 53(SS). Pin ini mendukung
komunikasi SPI menggunakan perpustakaan SPI. Pin SPI juga tehubung dengan
header ICSP, yang secara fisik kompatibel dengan Arduino Uno, Arduino Duemilanove
dan Arduino Diecimila.
8. LED : Pin 13. Tersedia secara built-in pada papan arduino mega 2560. Led
terhubung ke pin digital 13. Ketika pin di-set bernilai HIGH, maka LED menyala
(ON), dan ketika pin di-set bernilai LOW, maka LED padam (OFF).
9. TWI : Pin 20 (SDA dan pin 21 (SCL). Yang mendukung komunikasi TWI menggunakan
perpustakaan Wire. Pin ini tidak di lokasi yang sama dengan pin TWI pada Arduino
Duemilanove dan Arduino Diecimila.
10. RESET : Jalur LOW ini digunakan untuk me-reset (menghidupkan ulang)
mikrokontroler. Jalur ini biasanya digunakan untuk menambahkan tombol resetpada
shield yang menghalangi papan utama Arduino.
11. XTAL1 dan XTAL2 berfungsi sebagai pin external clock.
12. AVCC adalah pin tegangan supplyuntuk ADC.
13. AREF. Referensi tegangan untuk input analog. Digunakan dengan fungsi
analogReference.

a. SETTING PERCOBAAN

Gambar 2.2a Setting Percobaan Motor Servo dengan Mikrokontroller

PROSEDUR
1. Siapkan alat dan bahan yang diperlukan.
2. Siapkan PC dan buka aplikasi software Arduino IDE.
3. Program sesuai dengan ketentuan, hingga tidak terjadi error.
4. Sambungkan USB pada Arduino dengan PC hingga nyala sebuah indicator pada
mikrokontoler, artinya mikrokontroler dapat digunakan dengan baik.
5. Sambungkan kabel pada servo dengan port pada mikrokontroler. Port yang digunakan
yaitu port-13 yang terdiri dari Ground, VCC, dan Sinyal.
6. Pada LCD akan tampil waktu ON dengan satuan mikrosekon.
7. Ukur posisi sudut setiap putaran servo dnegan cara menggerakakan joystick hingga servo
berputar sebesar 180° .
8. Jika sudah dapat data, bandingkan dengan rumus :

θ
t(θ ¿= t(0) + ( t(180° ¿−t (0) ¿
180°
b. DATA HASIL PERCOBAAN

Tabel 2.2b Hasil data percobaan control motor servo


θ° Pengukuran t (μs) Teori t (μs) % Error
0° 575 575,00 0,00
10° 690 649,72 6,20
20° 770 724,44 6,29
30° 820 799,17 2,61
40° 915 873,89 4,70
50° 1005 948,61 5,90
60° 1050 1023,33 2,60
70° 1115 1098,06 1,50
80° 1185 1172,78 1,04
90° 1265 1247,50 1,40
100° 1310 1322,22 0,90
110° 1385 1396,94 0,80
120° 1440 1471,67 2,15
130° 1560 1546,39 0,80
140° 1640 1621,11 1,17
150° 1715 1695,83 1,13
160° 1790 1770,56 1,10
170° 1890 1845,28 2,40
180° 1920 1920,00 0,00

o Contoh perhitungan menggunakan rumus :


θ
t(θ ¿= t(0) + ( t(180° ¿−t (0) ¿
180°
θ °=°

10 °
t(10) = 575 + (
180 °
x ( 1920−575 ) )
= 575 + ( 1.92 x 0.57 )
= 1250 μs
o Perhitungan % Error :

Hasil pengamatan – Hasil perhitungan teori


% Error =
X 100%
Hasil perhitungan teori

690 – 649,72
= X 100%
649,72

= 6,20%
c. Gambar Percobaan Praktikum

Gambar 2.2c. Dokumentasi Pengambilan data motor servo pada posisi 70 0


ANALISA DATA
Pada praktikum kali ini melakukan percobaan pada gerakan yang dilakukan servo.
Pengaturan gerakan servo ini dilakukan dengan cara mengatur time-on sinyal PWM masuk ke pin
data sebagai kontrol servo yang dibangkitkan dari arduino mega. Program ini juga diatur dengan
membuat button dari shiled arduino sebagai pengatur gerakannya. Nilai awal dari T-on diatur
nilai 500 microsecond, ketika button atas ditekan maka nilai Ton akan bertambah nilai T-on
sebesar 5 microsecond dan juga kebalikannya ketika button bawah ditekan maka nilai T-on akan
berkurang 5 microsecond.

Selain melihat waktu dari Time-on sinyal PWM yang masuk sebagai kontrol gerakan
servo, dilihat juga gerakan lengan servo yang diukur tiap derajatnya dengan menggunakan busur.
Pengukuran derajat ini dilakukan dengan tujuan melihat berapa waktu Time-on yang dibutuhkan
servo untuk bergerak dengan nilai derajat. Pengaturan awal dari program arduino adalah 500
microsecond untuk setting 0 derajat, dan dilihat perkembangan tiap 10 derajat berapa waktu T-on
yang dibutuhkan untuk tiap nilainya.

Untuk menentukan hasil perhitungan dari Time-on tiap derajat dibutuhkan berapa waktu
Time-on ketika 0˚ dan ketika sudah 180˚. Dan dari pengaturan awal program di arduino dapat
dibuat rumus sebagai berikut :

θ
t(θ) = t(0) + (t(180˚) – t(0˚))
180˚

Error yang didapat dari percobaan ini bisa didapatkan dari beberapa faktor, antara lain
adalah jenis servo yang digunakan pada praktikum ini adalah jenis servo continous yang bergerak
360˚ sehingga ketika pada sudut 180˚ tidak berhenti pasti pada 180˚. Dan juga bisa dari jenis
busur yang digunakan adalah dari busur aplikasi android yang menggunakan kamera untuk
mengukur pergerakan sudutnya, berdasarkan dari percobaan yang dilakukan sudut kamera dan
posisi servo dari kamera bisa berpengaruh pada sudut pembacaan dan juga sangat sulit untuk
mengatur tetap posisi busur atau servo
KESIMPULAN
Kesimpulan dari praktikum ini adalah sudut perputaran pada servo ditentukan oleh
besarnya duty cycle atau Ton dari sinyal input, dimana semakin besar duty cycle maka akan
semakin besar pula perubahan sudut servo. Dalam kondisi menyala tanpa diberi sinyal input
maka servo akan otomatis menuju posisi 0 derajatnya (default).

Anda mungkin juga menyukai