5 Menit Menangani Motor Servo dengan Arduino

Motor servo adalah motor DC yang memiliki output umpan balik yang menunjukkan posisi putaran motor. Motor servo banyak digunakan sebagai aktuator yang membutuhkan posisi putaran motor yang presisi. Jika motor DC biasa hanya dapat dikendalikan kecepatannya dan arah putaran, maka motor servo ini ada satu tambahan besaran parameter yang dapat dikendalikan, yakni posisi berdasarkan sudut/derajat.

Pada tutorial kali ini saya akan mencontohkan eksperimen dengan motor servo tipe mikro (micro servo) yang banyak beredar di pasaran. Motor servo ini disebut micro servo karena memang ukurannya yang kecil dan memutuhkan arus/tegangan yang kecil. Spesifikasinya kurang lebih sebagai berikut :

– tegangan kerja : 4,8 – 6 Vdc
– torsi : 1,6 kg/cm
– arus : < 500 mA
– dimensi : 22 x 12,5 x 29,5 cm
– berat : 9 gr
– kecepatan putaran: 0,12 detik/60 derajat

Untuk menangani motor servo menggunakan Arduino caranya cukup mudah, bahkan mungkin Anda dapat melakukannya kurang dari 5 menit saja! Kuncinya terletak pada library ‘Servo.h’ yang sudah disediakan Arduino. Dengan mendeklarasikan library ini, Anda dapat menciptakan sebuah objek yang memiliki method ‘write(derajat)’ dengan parameter ‘derajat’ berupa besaran sudut putaran yang dituju. Untuk produk di atas, sudut putaran yang dapat dituju maksimal adalah 1800, jadi Anda memiliki range sudut putaran antara 00 s.d 1800 yang dapat ditempuh motor servo tipe ini. Dengan menggunakan motor servo ini kita sudah tidak berbicara lagi mengenai putar searah (CW) atau berlawanan arah jarum jam (CCW) tapi sudut 00, 450, 900 dan seterusnya sampai dengan 1800. Jadi jika Anda mengeluarkan perintah myservo.write (90); setelah myservo.write (0); maka motor servo akan bergerak berlawanan arah jarum jam. Namun jika Anda mengeluarkan perintah  myservo.write (90); setelah perintah myservo.write (180); maka otomatis motor servo akan bergerak searah jarum jam. Jadi posisi 00 s.d 1800 sudah ditentukan oleh kontroller internal motor servo, dan Anda cukup memberikan perintah pada sudut mana motor akan berputar melalui perintah myservo.write (derajat);

Untuk memulai eksperimen, siapkan komponen-komponennya sebagai berikut :

– Arduino (Uno atau yang lain). Kali ini saya menggunakan Arduino Mega, kebetulan Arduino Uno-nya sedang dipake untuk project yang lain he he he.
– kabel jumper (3 buah)
– Motor servo (misalnya tipe micro servo)

motor servo tipe micro

Untuk motor servo, jika Anda menggunakan tipe yang sama dengan punya saya maka Anda akan mendapati tiga buah kabel :

– Warna merah adalah kabel power, dihubungkan ke pin 5V Arduino
– Warna hitam/coklat adalah kabel ground, dihubungkan ke pin Gnd Arduino
– Warna orange  adalah kabel data/perintah, dihubungkan ke pin 9 Arduino (bisa diganti pin yang lain)

Kemudian jumper antara motor servo dan Arduino dengan konfigurasi seperti di atas atau bisa juga dilihat pada gambar di bawahgambar rangkaian motor servo dengan arduino

Kurang lebih prototipe rangkaian adalah seperti gambar di bawah

prototipe rangkaian motor servo dengan arduino .png

Setelah prototipe rangkaian selesai dibuat, kini saatnya mengisi program/sketch handlernya ke Arduino. Salin sketch Arduino di bawah ke Arduino IDE Anda, dan upload-lah ke Arduino. Jika belum tahu caranya bisa dibaca di artikel ini.

#include <Servo.h>

Servo myservo; 

void setup()
{
myservo.attach(9); 
}

void loop() 
{ 
myservo.write(0); 
delay(1000); 
myservo.write(90); 
delay(1000);
myservo.write(180); 
delay(1000);
myservo.write(90); 
delay(1000);
}

Setelah sketch diupload ke Arduino dan jika koneksi wiring Anda sudah benar, maka seharusnya motor servo sekarang akan berputar ke posisi yang dituliskan dalam sketch dengan jeda sekitar 1 detik. Perhatikan bahwa motor akan berputar searah/berlawanan arah jarum jam secara otomatis untuk menuju posisi yang ditulis dalam sketch dari posisi terakhirnya.

0 0 votes
Article Rating

Leave a Reply

184 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Nanda Fitra

Thanks ilmunya 🙂
Btw, cara ngepause dan resume servo gimana yah gan, misal servo bergerak 90derajat kemudian berhenti 15 detik. kemudian bergerak 15derajat dan berhenti.
Mohon sarannya 🙂

redo

gan klo servonya di buat otomatis gimana?kayak bikin solar cell tracking pake teganggan dr solar cellnya untuk perintah servonya supaya mencari tegangan tertinggi

redo

kalau tanpa sensor??misal servo mencari tegangan tertinggi yg di dapat solarcell??

redo

bagaimana membuat program servo otomatis,,seperti solarcell tracking ??dengan menjadikan outputan solarcell sebagai sensor,,mencari tegangan yg tertinggi

miftahul ihsan

kalo dalam pengaturan servo 360 continous gmana gan? saat diam program nya gmana gan?? searah jarum jam gmana ? dan berlawana jarum jam gmana gan?? tolong pencerahannya gan

thanks

syadza

kalo cara mengatur kecepatan motor servo gimana??saya menggunakan servo 360.

Asep

Gan kalo cara ngatur pergerakan servo dari 0 ke 90 derajat terus pengen balik lagi ke 0 derajatnya saya yang atur. Gimana caranya. Makasih

agung

kalo coding agar motor servo gerak 90drajat lalu diam selama 20dtk lalu kembali ke posisi awal gmna ??

daniel

gimana cara agar motor servo bila dijalankan bersamaan berlawanan arah???

wadud

Mau nanya mas, klo motor servonya gerak dari 0 ke 90 trus dari 90 ke 0 trus berhenti total gimna programnya mas

Jalal

mas ijin nanya caranya servo di gerakan oleh sensor pir dari 0 ke 180, berhenti, kemudian 180 ke 0 di kendalikan oleh delphi

Jalal

apakah ada pada web ini tulisan delphi -> Serial Port -> arduino -> servo atau buku yang anda tulis, jika ada mohon infokan saya, terima kasih,

heru

Mas ajie,alamat trainingnya mana mas e??

Hamdan nasruddin

Kalo mau mengaplikasikan servo dan aurdino ke kaki robot quadrop gimana gan? Apa pake sistem delay juga ? Trus gimana susunannya dari 4 kaki ? Trims

alfianto

mas kalau program arduino untuk menjalankan motor servo menggunakan sensor cahaya mau diterapkan di solar cell gmna cra nya mas, solar cell nya mengikuti arah matahari mas,, tlg penjelasan nya mas

Budi Santoso

om ajie mau tanya donk boleh tau coding motor servo membaca sensor ultrasonik HC-sr04 contoh pengaplikasiannya untuk membuka tutup tempat sampah otomatis dalam artian jika sensor membaca jarak tertentu misalkan 50cm maka memerintahkan servo untuk bergerak dari titik 0 ke 90(membuka tutup saja), please om ajie mohon bantuannya untuk info coding tersebut ya…makasih sebelumnya

atrio

mas, kalo servo ny berhenti di 90 derjat waktu limitswitch nya bernilai 1 trus kembali ke 0 derjat waktu limit switch ny bernilai 0 gmn mas?
pencerahan ny mas… 😀

abdul

Om mau nanya kalau make motor servo yang 10V,sedangkan arduino cmn 5V. Biar bisa ngedrivenya make penguat dayanya make apa ya ?

tanding

klo menggunakan avr gimana ya bang untuk putaran 0derajat 30 60 dan 90 derajat

Dina Ucha

gan, saya mau buat pembuka tirai dgn servo dan sensor pir. jadi kalau kita masuk keradius sensor, servo akan memutarkan 180 derajat. tapi ketika kita tidak ada diradius sensor tsb, servo yg gerakin tirai itu ga ikut balik lagi alias tirai tetap terbuka. namun saat kita masuk keradius sensor tersebut servo yg gerakin tirai akan menutup tirai alias kembali ke posisi semula. itu bagaimana ya utk kodingannya gan? mohon bantu terimakasih:)

baayu

mas mau tanya cara untuk mengatur sudut motor servo dengan beberapa sudut tidak hanya satu sudut itu gimna mas contoh, dari 0 derajat trus ke 45 derajat trus ke 90 derajat trus setiap sudut itu make push button ngaturnya mas? mohon bimbingannya

agus

mas ajie mau tanya, untuk koding yang 360 derajat sama aja kah? untuk listing buat sensor hujan gimana ya? misalkan kalau baca hujan, dia putar hanya 5 * 360 derajat dan berhenti. tlong mas ajie dibantu, please

Nuraini

mas bagaimana jika kita hendak membuat putarannya 720 derjat kemdudian berhenti . kemudian berputar lagi 720 derjat tetapi beda arah dengan yang sebelumnya. terimakasih

Nuraini

saya sudah coba pakai microseconds tapi hanya bisa kekiri saja atau kekanan saja, saya mau kekiri sekian derjat lalu berhnti. dan jika saya mau ke kanan , bisa dibikin ke kanan juga lalu berhenti

Mare

mas kalo misalnya saya mau jalanin motor servonya pakai sensor tekanan udara/cahaya nah itu apakah pake if then atau gimana?, jadi kondisi servo bergerak/tidaknya itu tergantung nilai dari sensornya sendiri atau bagaimana?, hehe makasih mas

Mare

berarti kalo ngatur servonya langsung masukin nilai dari kondisi sensor didalam ifnya ya mas?
IF(kondisi sensor) then servo(0) ?

Basyari

mas aji mau tanya kalau membuat pintu otomatis yg membuka pintunya menggunakan keypad kemudian kan biasanya ada delay nya baru pintu nutup kembali, tetapi apabila ditambahkan dengan sensor pir seperti prinsip di lift, apabila ada orang yang tertinggal pintu masih bisa terbuka bagaimana caranya? tinggal meambahkan program sensor pir yg belum bisa mas

Mare

mas saya punya permasalahan seperti ini, saya punya 1 sensor dan 1 motor servo, disini sensornya menggunakan BMP180(tekanan udara), tujuan saya yaitu menghubungkan sensor dengan motor servo, ketika nilai sensor segini maka motor servo kondisinya begini, tapi disini saya bingung sensor bekerja dengan baik serta di COM print kondisinya jalan dan sudah saya buat program untuk tersambung ke servo, tapi servo berkata lain, ketika saya ubah hasil sensor tetap tidak ada respon dari servo, bahkan saya sudah mengujinya dengan ganti sensor(LDR) dan servonya baik baik saja, apa ada masukan mas? terimakasih

Mare

sudah dicoba seperti itu mas, dan untuk sensornya itu sendiri hasil di print serialnya berubah: sesuaikeadaan(ini nda masalah karena bisa diatur pakai >=/<=) lalu dari kedua program(sensor dan servo) berjalan dengan baik nah setelah digabung kedua program tersebut tidak mau sinkron padahal pin yang diletakan sudah benar dan program sukses di compiled , setelah diupload ya begitu mas tetep nda ada responnya padahal sudah diupload ke arduinonya, dan saya udah nyoba kalau disengajain sensornya bakalan jalan dengan nilai input yang sama dan sebelum itu delay pada inputannya saya naikin agar inputannya tetep segitu(nda berubah dan nilai yang dicocokin ke servo… Read more »

ardian

hebat mas tutorialnya, mudah dimengerti

Triyono

Mas Ajie, kalau tipe motor ini bisa buat memompa air nggak?

rian

Mas kalo misal servonya harus berputar tiap 4 jam sekali pake timer kah?

Nabil Bachroin

mas kalau mau menggerakkan 3 servo itu gimana sketch nya ?

fauzan

Mas gmna cra menjalankan servo dengan button , setelah sensor warna mendeteksi warna maka bisa d tekan button untuk nenjalankan servo? Mohob pencerahn nya mas

fauzan

Contoh program if nya gmna mas?

teddy

mas ini ak coba punyamu dan aku ganti sudutnya. nah biar setiap masing masing sudut nanti kembali ke 0 lagi gimana? misal sudut nya 0 ke 90, 90 ke 0 lalu 0 ke 120 kemudian 120 ke 0. tolong tuliskan sketch nya

fatur

mas, gimana ya program menggerakkan tangan kanan kiri robot keatas kebawah ketika di berikan input dari analog dengan potensio >500 akan menyala dan kurang <500 berhenti

Rafan

Mas, cara membuat dua motor servo bergerak secara bersamaan dan berlawan arah secara bersamaan caranya bagaimana?
saya ingin membuat miniatur pintu otomatis tetapi servonya bergeraknya secara bergantian servo 1 lalu baru servo 2

wildan ilhami

Asalmualaikum mas saya mua tanya bagaimana mengendalikan 3 servo sekaligus menggukan kan sensor mpu-6050 dan cara kalibrasi nya gimana yaa..

putra

mas,cara membuat range sudut servo dari -90 sampai 90 gimana mas?

putra

mas,kalau data input pada servo nya pake koma bisa mas?atau datanya harus integer?

newbie

om mohon bantuan ny coding ny ga ada eror dan ketika d upload sudah ad tulisan upload done..tetapi tidak ad pergerakan dari servo

Newbie

Koneksi kabel ny seperti ny baik2 saja om… kalau pertama arduino d nyalakan ad sedikit pergerakan dari servo

aku

halo,,bos..mudah” dlm keadaan sehat ni..bos saya mau tanya ni..
misalkan kita kontrol servo dengan bluethooth..
sikontrolya dengan button.
yg mau sya tanyakan..bisa tidak bilaman kita kita tekan button dikontrol dia ke sudut 30° dan apibala kita lepas ,maka ia balik ke sudut 0°klo bisa ..coding ya bos

Vita

Mas kira kira motor servo saya kenapa ya dia bergetar tapi tidak mau bergerak? Kebetulan saya pake yg 360. Kira kira apa problem nya? Terimakasih

budi

Selamat siang mas.. saya mau tanya,, saya punya servo MG 996 R.. saat dijalankan kenapa arduino nya restart sendiri ya mas saat servo dijalankan ?? penyebabnya apa ya mas ?? terima kasih.

aldyprakoso

mas mau tanya, kalo gabungin kodingan sensor hujan dengan motor servo gimana ya, kalo cara kerjanya “jika sensor hujan terkena air maka motor servo tersebut akan berputar” ?
soalnya saya sudah coba tapi hasilnya kedua komponen tersebut malah jalan berbarengan mas hehehe, terima kasih.

aldyprakoso

kodingannya sperti ini mas, saya sudah pakai if tapi ko sekarang motor servonya gak berputar ya mas malah bergetar saja hehe.
mohon pencerahannya mas 🙂 ,terima kasih

cont int sensor_hujan = 12;
cont int LED = 13;
#include ;
Servo servo1;

void setup() {
pinMode (sensor_hujan, INPUT);
pinMode (LED, OUTPUT);
servo1.attach(9);
}

void loop() {
int (kondisi_sensor = digitalRead(sensor_hujan);
if (sensor_hujan == 12);
digitalWrite (LED, HIGH);
servo1.write(180);
{
if (sensor_hujan == 0);
digitalWrite (LED, LOW);
servo1.write(90);
}
}

aldyprakoso

Maaf mas boleh tulisin kodingan nya gak yg bener yg mana gtu, soalnya saya sudah coba tapi ko tetep servonya gak mau berputar ya, cmn sensor hujan nya aja yg hidup.

Terima kasih mas 🙂

aldyprakoso

mas kalo mengatur putaran motor servo agar bisa kekanan dan kekiri dan sudutnya 90 derajat tapi motor servonya hanya memakai 1 buah, gmna ya ?
soalnya saya untuk menggerakan wiper mas, mohon pencerahanya mas terima kasih 🙂

andi

Mas kalo motor servo kita bikin menjadi continuous gearnya dibuang,,, kita hanya pake modul ic 555 nya doang bisa ga di atur kecepatan dan arah nya,, gimana codenya? Terimakasih

nurkhasan

mas ajie mau nnya, cara kontrol 2 servo tpi yg satuny tidak ikut gerak itu gimna. kaya klo ada mobil msuk 2 pntu gerbang buka tapi kalo ada motor msuk cuma satu pintu yg terbuka

bincar

mass, gimana kalau servo aktif berdasarkan jam, apa harus pasang komponen tambahan?

nurkhasan

Selamat malam mas mau nnya lagi. Yg waktu itu sudah bisa bergerak 2 servo. Tpi ini mas klo mau gerakkan servony sama semua itu gimna yaa, soalny saya mau gerakin pintu pagar nah yg pintu satuny kebukany kedalam udah bener tapi yg pintu satunya malah berlawanan mas. Tolong mas saya udah cri keliling gak ktemu msalahnya dimna a…

muhammad

misi mas ajie bagaimana merubah set point 0 menjadi 180 dan 180 menjadi 0

dhani

mas servo saya waktu di tes bisa tapi pas dicoba pakek gctrl processing terus masukin code buat nulis gk bisa gerak kenapa ya

febri

mas saya mau tanya saya memakai sensor warna tcs3200 dan memakai motor servo sg 90 ,,nah bisa ga ya gan motor servo aktif pada saat sensor warna mendeteksi misal warna putih nah si motor otomatis jalan gimana cara kodingnya ya mas mohon pencerahannya

febri

mas blh minta kontak email or wanya ga?

febri

mas mau tanya menggerakan 2 motor servo menggunakan baterai, Baterai yang di gunakan berapa volt ya ??

007

Misalkan
Void getColor ()
{
readRGB ();
If (red > 12 && red 40 && grn 33 && blu <70) color = "Red"
Myservo.attach(6);
Myservo.write(80);
delay(5000);
Myservo.write(150);
delay(5000)
ko tidak jalan pada saat deteksi warna merah dlu ya mas malah jalan terus
Mohon pencerahannya?

007

Mas saya coba masih jalan sendiri servonya ad apa ya

007

Sudah mas saya lakukan tetap klo di gabungin
Klo terpisah okey

Zidny

Maaf melenceng Gan boleh “privat” online tentang arduino ndak, saya buat rc plane pernah konek dan bergerak tp Sekarang cuma konek dan g ada pergerakan baik servo maupun brushlees, saya sudah muter kemana mana tp belum ketemu jawabannya,

fiky

mas ajie mnta bantuan kalo mau nambahin menampilkan nilai berapa nilai derajat servo gmna ya mas ajie mohon bantuannya

hanny

Mau tanya mas apakah motor servo bisa di kombinasikan dengan sensor kompas hmc5883L???

184
0
Would love your thoughts, please comment.x
()
x