Oleh :
I. Tujuan :
1. Mengetahui cara kerja motor servo
2. Mengetahui cara mengendalikan motor servo
3. Mengetahui algoritma pemrograman pengaturan motor servo
II. Teori :
Motor servo adalah perangkat yang banyak digunakan dalam pengaturan posisi.
Pada umumnya, sistem motor servo terdiri dari sebuah motor DC, potensiometer, dan
perangkat elektronik yang berupa error detection amplifier. Diagram blok rangkaian motor
servo ditunjukkan pada Gambar 1.
Sumber : qncctech.blogspot.com
Gambar 1 Diagram blok rangkaian motor servo
Selain menggunakan motor servo seperti pada Gambar 2, mekanisme motor servo
juga bisa dibentuk dengan menggunakan sebuah motor DC dan sebuah potensiome ter.
Dengan cara ini, perangkat error detection amplifier sebagaimana yang ditunjukkan dalam
Gambar 1 bisa direalisasikan dengan menggunakan Arduino. Mekanisme tersebut terdapat
pada lengan robot eurobtec R5 yang tampilannya ditunjukkan dalam Gambar 3. Lengan
robot Eurobtec R5 mempunyai 5 sendi (5 derajat kebebasan) dan sebuah grip. Tiga
sendinya (base, shoulder, dan elbow), masing-masing digerakkan oleh sebuah motor DC
6V. Tiap sendi tersebut juga dilengkapi oleh potensiometer untuk mendeteksi posisi sendi.
2. Tuliskan program seperti di bawah ini. Jika dalam library belum terdapat modul
servo, downloadlah dengan cara memilih Tools, dilanjutkan dengan Manage
Library.
Servo myservo;
int pos = 0; // deklarasi dan inisialisasi posisi servo pada sudut 0 derajat
void setup(){
myservo.attach(3); // kontrol servo pada pin no 3
}
void loop(){
myservo.write(pos);
}
Percobaan 2
#include <Servo.h>
Servo myservo;
int deg = 180; // deklarasi dan inisialisasi posisi servo pada sudut 0
derajat
void setup(){
myservo.attach(3); // kontrol servo pada pin no 3
}
void loop(){
myservo.write(de
g);
}
Program diatas telah bergerak sesuai dengan perintah yang diinginkan, yaitu motor akan
bergerak 180 derajat. Pergerakan ini dikarenakan adanya baris program
“myservo.write(deg);” dimana variabel deg bernilai 180.
Percobaan 3
#include <Servo.h>
Servo myservo;
int pos = 0; // deklarasi dan inisialisasi posisi servo pada sudut 0 derajat
void setup(){
myservo.attach(3); // kontrol servo pada pin no 3
}
Percobaan 4
#include <Servo.h>
Servo myservo;
int pos = 0; // deklarasi dan inisialisasi posisi
servo pada sudut 0 derajat int kali = 3;
void setup(){
myservo.attach(3); // kontrol servo pada
pin no 3 myservo.write(0);
}
void
loop(){
if(kali!=
0){
for (pos = 0; pos <= 180; pos += 1) {//start dari 0 derajat sampai 180
derajat myservo.write(pos);
delay(5);
Percobaan 5
#include <Servo.h>
Servo myservo;
int pot; // analog pin yang digunakan
potensiometer int derajat;
void setup(){
myservo.attach(3); // kontrol servo pada pin no 3
}
void loop(){
VI. Kesimpulan :
Dari percobaan yang telah dilakukan dapat disimpulkan bahwa gerakan lengan
motor servo dapat diatur dengan menggunakan arduino yang telah diprogram sesuai dengan
kebutuhan dan deskripsi kerjanya. Selain itu motor servo juga dapat diprogram dan
digerakkan dengan menggunakan potensiometer sesuai pengaturan batas atas dan batas
bawah potensiometer kemudian nilai ADC dari potensiometer perlu diubah agar
mendapatkan range yang sesuai (0 sampai 180).