Anda di halaman 1dari 13

A.

TUJUAN
Adapun tujuan dari praktikum ini adalah :
1. Membuat aplikasi servo pada arduino.
2. Membuat aplikasi servo dengan satu input pada arduino.
3. Membuat aplikasi servo dengan dua input pada arduino.
4. Membuat aplikasi servo dengan dua input disertai dengn LED.
B. TEORI DASAR

Motor servo adalah sebuah motor dengan sistem umpan balik tertutup dimana posisi
dari motor 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.

Secara umum terdapat 2 jenis motor servo. Yaitu motor servo standard dan motor
servo Continous. Servo motor tipe standar hanya mampu berputar 180 derajat. Motor
servo standard sering dipakai pada sistim robotika misalnya untuk membuat " Robot
Arm" ( Robot Lengan ). sedangkan Servo motor continuous dapat berputar sebesar 360
derajat. motor servo Continous sering dipakai untuk Mobile Robot. Pada badan servo
tertulis tipe servo yang bersangkutan. Motor servo standar yang kali ini dipakai memiliki
3 buah kabel yaitu, power, ground dan signal.

Kabel warna merah merupakan kabel power yang berfungsi untuk mengkoneksikan
dengan tegangan 5V pada board arduino.
Kabel yang berwarna coklat/hitam merupakan kabel ground yang nantinya akan
dihubungkan dengan ground yang ada pada board arduino.

Kabel kuning yang merupakan kabel pin signal servo yang akan dihubungkan dengan pin
9 pada board arduino.

C. ALAT DAN BAHAN


Alat dan bahan percobaan diperlihatkan pada Tabel :
Tabel Alat dan Bahan Praktikum
No Alat dan Bahan Jumlah
1 Arduino Uno R3 1
2 Modul /Rangkaian percobaan 1
3 Kabel USB 1
4 LED 4
5 Kabel jumper Secukupnya
6 Resistor Secukupnya
7 Motor Servo 1

D. DATA PRAKTIKUM

Case 1 Sweep

Case 2 : Sweep (1 = kanan, 0 = kiri)


Case 3 : Sweep (00 = 0 kanan, 01 = 45kanan, 10 = 90 kanan, 11 = 180 kanan)
Untuk sudut 0 Untuk sudut 45

Untuk sudut 90 Untuk sudut 180


Case 4 : Sweep (00 = 0 kanan led 1 ON, 01 = 45kanan led 2 ON, 10 = 90 kanan led 3
ON, 11 = 180 kanan led 4 ON)
Lampu 1 ON 0 Lampu 2 ON 45

Lampu 3 ON 90 Lampu 4 ON 180


E. ANALISA DATA

1. Case 1 Sweep

#include <Servo.h> merupakan library dari Servo. Jika ingin menggunakan Motor Sweep
kita harus memasukkannya ke dalam program yang akan dibuat.
Servo myservo; berfungsi sebagai Membuat objek Servo(Motor) untuk mengontrol
sebuah Servo(motor).
Int pos = 0 ; adalah variable untuk posisi awal Motor.
myservo.attach(9); berfungsi untuk mensetting motor pada pin 9 arduino.
for (pos = 0; pos <= 180; pos += 1) {, berfungsi untuk setting servo agar bergerk dari
posisi 0 sampai 180.
myservo.write(pos); berfungsi agar motor agar bergerak menuju posisi variable pos.
delay(15); artinya motor di beri waktu 15ms untuk menuju posisi variable pos.
for (pos = 180; pos >= 0; pos -= 1) { berfungsi untuk setting servo agar bergerk dari
posisi 180 sampai 0.
myservo.write(pos); berfungsi agar motor agar bergerak menuju posisi variable pos.
delay(15); artinya motor di beri waktu 15ms untuk menuju posisi variable pos.

2. Case 2 : Sweep (1 = kanan, 0 = kiri).


#include <Servo.h> merupakan library dari Servo. Jika ingin menggunakan Motor Sweep
kita harus memasukkannya ke dalam program yang akan dibuat.
Servo myservo; berfungsi sebagai Membuat objek Servo(Motor) untuk mengontrol
sebuah Servo(motor).
Int pos = 0 ; adalah variable untuk posisi awal Motor.
Int inpin = 7; berfungsi untuk membuat input digital pada Pin 7 arduino
Int val = 0; adalah variable untuk menyimpan nilai konversi analog ke digital.
myservo.attach(8); berfungsi untuk mensetting motor pada pin 8 arduino.
pinMode (inpin1, OUTPUT); artinya inpin1 yang terhubung kepin 7 arduino akan
digunakan sebagai Output.
val=digitalRead(inpin); untuk setting val agar membaca input 0 dan 1.
if (val==0){ myservo.write(180); artinya jika val mendapatkan input 0 maka motor akan
berputar 180.
Delay(15); adalah waktu yang diperlukan motor untuk menjalakan program.
else{myservo.write(0); artinya jika val tidak mendapatkankan input 0 maka motor akan
berputar ke posisi 0.
Delay(15); adalah waktu yang diperlukan motor untuk menjalakan program.
3. Case 3 : Sweep (00 = 0 kanan, 01 = 45kanan, 10 = 90 kanan, 11 = 180 kanan)
#include <Servo.h> merupakan library dari Servo. Jika ingin menggunakan Motor Sweep
kita harus memasukkannya ke dalam program yang akan dibuat.
Servo myservo; berfungsi sebagai Membuat objek Servo(Motor) untuk mengontrol
sebuah Servo(motor).
Int pos = 0 ; adalah variable untuk posisi awal Motor.
Int inpin = 7; berfungsi untuk membuat input digital pada Pin 7 arduino
Int inpin = 8; berfungsi untuk membuat input digital pada Pin 8 arduino
Int val1 = 0; adalah variable untuk menyimpan nilai konversi analog ke digital.
Int val2 = 0; adalah variable untuk menyimpan nilai konversi analog ke digital.
myservo.attach(9); berfungsi untuk mensetting motor pada pin 9 arduino.
pinMode (inpin1, OUTPUT); artinya inpin1 yang terhubung kepin 7 arduino akan
digunakan sebagai Output.
pinMode (inpin2, OUTPUT); artinya inpin2 yang terhubung kepin 8 arduino akan
digunakan sebagai Output.
val=digitalRead(inpin1); untuk setting val agar membaca input 0 dan 1.
val=digitalRead(inpin2); untuk setting val agar membaca input 0 dan 1.
if (val1==0 && val2==0) myservo.write(0); artinya jika inpin1 diberi input 0 dan inpin2
diberi input 0 juga maka motor akan bergerak 0.
if (val1==0 && val2==1) myservo.write(45); artinya jika inpin1 diberi input 0 dan inpin2
diberi input 1 maka motor akan bergerak 45.
if (val1==1 && val2==0) myservo.write(90); artinya jika inpin1 diberi input 1 dan inpin2
diberi input 0 maka motor akan bergerak 90.
if (val1==1 && val2==1) myservo.write(180); artinya jika inpin1 diberi input 1 dan
inpin2 diberi input 1 juga maka motor akan bergerak 180.
delay(15); adalah waktu yang diperlukan motor untuk menjalakan program.
4. Case 4 : Sweep (00 = 0 kanan led 1 ON, 01 = 45kanan led 2 ON, 10 = 90 kanan
led 3 ON, 11 = 180 kanan led 4 ON)

#include <Servo.h> merupakan library dari Servo. Jika ingin menggunakan Motor Sweep
kita harus memasukkannya ke dalam program yang akan dibuat.
Servo myservo; berfungsi sebagai Membuat objek Servo(Motor) untuk mengontrol
sebuah Servo(motor).
Int pos = 0 ; adalah variable untuk posisi awal Motor.
Int inpin = 7; berfungsi untuk membuat input digital pada Pin 7 arduino
Int inpin = 8; berfungsi untuk membuat input digital pada Pin 8 arduino
Int pinled1 = 2, ; berfungsi untuk menjadikan led yang terhubung ke pin 2 arduino
sebagai led1
Int pinled1 = 3, ; berfungsi untuk menjadikan led yang terhubung ke pin 3 arduino
sebagai led2
Int pinled1 = 4, ; berfungsi untuk menjadikan led yang terhubung ke pin 4 arduino
sebagai led3
Int pinled1 = 5, ; berfungsi untuk menjadikan led yang terhubung ke pin 5 arduino
sebagai led4
Int val1 = 0; adalah variable untuk menyimpan nilai konversi analog ke digital.
Int val2 = 0; adalah variable untuk menyimpan nilai konversi analog ke digital.
myservo.attach(9); berfungsi untuk mensetting motor pada pin 9 arduino.
pinMode (inpin1, OUTPUT); artinya inpin1 yang terhubung kepin 7 arduino akan
digunakan sebagai Output.
pinMode (inpin2, OUTPUT); artinya inpin2 yang terhubung kepin 8 arduino akan
digunakan sebagai Output.
pinMode(pilnled1 OUTPUT); artinya pinled1 yang terhubung kepin 2 arduino akan
digunakan sebagai Output
pinMode(pilnled2 OUTPUT); artinya pinled3 yang terhubung kepin 3 arduino akan
digunakan sebagai Output
pinMode(pilnled3 OUTPUT); artinya pinled4 yang terhubung kepin 4 arduino akan
digunakan sebagai Output
pinMode(pilnled4 OUTPUT); artinya pinled5 yang terhubung kepin 5 arduino akan
digunakan sebagai Output
val=digitalRead(inpin1); untuk setting val agar membaca input 0 dan 1.
val=digitalRead(inpin2); untuk setting val agar membaca input 0 dan 1.
if (val1==0 && val2==0) myservo.write(0); artinya jika inpin1 diberi input 0 dan inpin2
diberi input 0 juga maka motor akan bergerak 0.
digitalWrite (pinled1,HIGH); berfungsi untuk menyalakan pinled1
digitalWrite (pinled2,LOW); berfungsi untuk Mematikan pinled2
digitalWrite (pinled3,LOW); berfungsi untuk mematikan pinled3
digitalWrite (pinled4,LOW); berfungsi untuk mematikan pinled4
dengan kata lain, apabila motor diberi input 0 0 maka motor akan bergerak 0 kemudian
lampu 1 akan menyala dan lampu lainnya akan mati.
if (val1==0 && val2==1) myservo.write(45); artinya jika inpin1 diberi input 0 dan inpin2
diberi input 1 maka motor akan bergerak 45.
digitalWrite (pinled1,LOW); berfungsi untuk menyalakan pinled1
digitalWrite (pinled2,HIGH); berfungsi untuk Mematikan pinled2
digitalWrite (pinled3,LOW); berfungsi untuk mematikan pinled3
digitalWrite (pinled4,LOW); berfungsi untuk mematikan pinled4
dengan kata lain, apabila motor diberi input 0 1 maka motor akan bergerak 45 kemudian
lampu 2 akan menyala dan lampu lainnya akan mati.
if (val1==1 && val2==0) myservo.write(90); artinya jika inpin1 diberi input 1 dan inpin2
diberi input 0 maka motor akan bergerak 90.
digitalWrite (pinled1,LOW); berfungsi untuk menyalakan pinled1
digitalWrite (pinled2,LOW); berfungsi untuk Mematikan pinled2
digitalWrite (pinled3,HIGH); berfungsi untuk mematikan pinled3
digitalWrite (pinled4,LOW); berfungsi untuk mematikan pinled4
dengan kata lain, apabila motor diberi input 1 0 maka motor akan bergerak 90 kemudian
lampu 3 akan menyala dan lampu lainnya akan mati.
if (val1==1 && val2==1) myservo.write(180); artinya jika inpin1 diberi input 1 dan
inpin2 diberi input 1 juga maka motor akan bergerak 180.
digitalWrite (pinled1,LOW); berfungsi untuk menyalakan pinled1
digitalWrite (pinled2,LOW); berfungsi untuk Mematikan pinled2
digitalWrite (pinled3,LOW); berfungsi untuk mematikan pinled3
digitalWrite (pinled4,HIGH); berfungsi untuk mematikan pinled4
dengan kata lain, apabila motor diberi input 1 1 maka motor akan bergerak 180
kemudian lampu 4 akan menyala dan lampu lainnya akan mati.
delay(15); adalah waktu yang diperlukan motor untuk menjalakan program.

F. KESIMPULAN
Pada praktikum ini saya dapat mengetahui bahwa sebuah servo standard dapat
diatur posisinya dari 0 sampai dengan 180 derajat. Juga dapat mengetahui aplikasi dari
servo dengan 2 input serta penambahan LED agar dapat diketahui dan dilihat bahwa pada
saat putaran dengan sudut tertentu, LED akan menyala. Pada saat setelah program telah
diupload, servo akan bergerak ke sudut derajat sesuai dengan program yang telah
dituliskan berulang-ulang dengan pemberian input 1 (HIGH) dan 0 (LOW) seperti pada
program Sweep yang pertama, tetapi pada program sweep pertama itu bergerak secara
otomatis berulang-ulang tanpa input. Tetapi terkadang hasil putaran dari servonya kurang
maksimal, sudut 180 derajat, 90 derajat dan 0 derajat-nya masih belum maksimal.
Untuk putaran servo sendiri pada praktikum ini berlawanan dengan arah jarum
jam (counter clock wise) karena sesuai dengan sudut yang diberikan pada program
Arduinonya yaitu sudut 0, 45, 90 dan seterusnya sampai dengan 180.
Untuk penggunaan Motor servo banyak digunakan pada peranti R/C (remote
control) seperti mobil, pesawat, helikopter, dan kapal, serta sebagai aktuator robot
maupun penggerak pada kamera.