Lompat ke konten Lompat ke sidebar Lompat ke footer

Arduino part 8. Mengendalikan Motor Servo

Motor servo sering digunakan pada pembuatan project arduino seperti pada robot, mobil RC, dan sering juga dipakai untuk  aktuator pada aplikasi industri. 

Pada pembahasan kali ini kita akan mencoba mengotrol motor servo berputar searah jarum jam atau berlawanan arah jarum jam sesuai sudut yang diinginkan dengan menggunakan potensiometer. Jadi saat memutar potensiometer maka akan merubah gerakan pada motor servo.

kontrol motor servo arduino

Potensiometer kita gunakan untuk mengatur tegangan DC agar bisa menghasilkan tegangan variable (bisa diubah-ubah) mulai dari 0 volt hingga 5 volt. Tegangan dari potensiometer akan masuk ke input analog arduino. Pembahasan tentang input analog potensiometer bisa dibaca pada meteri sebelumnya dengan klik di sini

Motor servo yang sering  penulis gunakan ada 2 tipe yaitu tipe SG90 dan MG 996R. Kedua tipe tersebut memiliki 3 buah kabel yaitu :

Sinyal control (kabel warna orange)

+5 volt (kabel warna merah)

Ground (kabel warna coklat tua)

 

motor servo MG996R

Motor Servo MG 996R


motor servo SG90

Motor Servo  Type SG90

Untuk type yang lain bisa saja warna kabelnya berbeda, tetapi urutan kabelnya tetap sama. Kabel positif selalu diletakkan ditengah hal ini guna menjaga keamanan motor servo agar saat kita terbalik memasang soket kabelnya tidak akan merusak motor servo, hanya saja motor servo tidak bisa berfungsi.

Motor servo terdiri dari bagian-bagian seperti motor DC, kontrol elektronik dan sistem gear (roda gigi) dan servo horn/arm. Keuntungan motor servo adalah bisa kita putar sesuai sudut yang kita inginkan, tetapi perputaran rotasinya dibatas tidak lebih dari 180O (tentunya ini akan berbeda pada type motor servo lainnya). Motor servo telah dilengkapi system gear box sehingga bisa meningkatkan torsinya, jadi motor servo akan mampu memutar beban-beban yang cukup berat sesuai spesifikasi motor servo yang digunakan. Untuk melihat kemampuan motor servo mengangkat beban dan pembahasan tentang motor servo bisa lihat di video Motor servo.


motor servo

Kunci pengendalian motor servo ada pada kabel sinyal data kontrolnya. Sinyal kontrolnya harus menggunakan sinyal PWM (Pulse Width Modulation) atau nama lainnya modulasi lebar pulsa. Untuk mengetahui tentang apa itu PWM bisa klik di sini. Dengan mengatur lebar pulsa sinyal PWM maka kita bisa mengatur besarnya perputaran sudut rotasi pada motor servo sesuai dengan yang diinginkan.

Prinsip pergerakan motor servo bisa dilihat pada gambar di bawah ini:

pwm motor servo

Jadi jika kita ingin menggerakkan  motor servo sebesar 0O  maka diatur lebar pulsanya selama 1 mili detik, dan untuk 90O maka diatur lebar pulsanya sebesar 1,5 mili detik, dan jika ingin diputar sebesar 180O maka diatur lebar pulsanya sebesar 2 mili detik.

Untuk mengatur lebar pulsa kita tidak perlu susah-susah memikirkannya seperti  1,5 mili detik, 2 mili detik dsb, karena tugas itu akan dikerjakan oleh program yang ada di dalam board arduino. Kita hanya cukup mengetikkan perintahnya maka lebar pulsa akan keluar dengan sendirinya sesuai program yang dibuat. Itulah kelebihannya jika kita menggunakan  program arduino karena cukup mengubah program sebentar saja maka motor servo bisa  bergerak sesuai keinginan kita.

Pin PWM pada arduino uno yang bisa kita manfaatkan untuk mengendalikan motor servo ada 6 buah yaitu pin nomor : 3,5,6,9,10 dan 11. Kita bisa menggunakan pin mana saja yang penting pada saat akan digunakan pin tersebut belum terpakai pada perangkat I/O lainnya.

Untuk membuat pengontrolan motor servo menggunakan potensiometer,  kita persiapkan alat dan bahan sebagai berikut :

1.      Arduino Uno R3

2.      Projectboard

3.      Motor Servo

4.      Potensiometer

5.      Kabel jumper

Rakitlah motor servo seperti gambar rangkaian di bawah ini :

kontrol motor servo arduino
Setelah selesai merakit maka bukalah aplikasi arduino IDE. Jika baru pertama kali menggunakan motor servo maka harus menambah library motor servo. Caranya silahkan buka menu :

Tools >> Manage Libraries

Setelah itu pada kolom pencarian ketiklah “servo motor”, nanti akan muncul gambar seperti di bawah. Silahkan di install terlebih dahulu library motor servonya.


library arduino motor servo

Langkah berikutnya adalah pembuatan sketch Program arduino guna mengontrol motor servo menggunakan Potensiometer dan Arduino seperti terlihat pada gambar di bawah ini:


pengendali motor servo arduino

Pada sketch program ada beberapa keterangan penting yaitu :

/-------------------------------------------

//--- Putaran motor Servo

//--- Oleh Hendry Kurniawan

//--- www.elektronikahendry.com

//------------------------------------------

#include <Servo.h>  /*memasukkan library motor servo*/

const int PIN_SERVO = 3; /*fungsinya menetapkan nomor pin untuk sinyal PWM motor servo*/

Servo motorServo;  /*menamakan servo dengan “motorServo” */

int Potensiometer = A0; /*mendeklarasikan integer Potensiometer pada pin A0*/

int nilaiServo = 0;  /*mengkondisikan diawal nilai integer nilaiServo adalah 0*/

void setup()

{

Serial.begin(9600); /*menggunakan data serial dengan kecepatan baudrate 9600*/

motorServo.attach(PIN_SERVO); /*menetapkan pin untuk motorServo = 3*/

}

void loop()

{

nilaiServo = analogRead(Potensiometer); /*membaca nilai analog dari potensiometer  nilai analognya pada range (0-1023)*/

nilaiServo = map(nilaiServo, 0, 1023, 0, 180); /*merubah maping nilai dari skala 0-1023 diubah menjadi nilai dengan skala 0-180. maping ini dibutuhkan karena nilai PWM motor servo ini maksimum sudutnya 180*/

motorServo.write(nilaiServo); /*mengirimkan sinyal PWM ke motorServo berdasarkan hasil dari mapping nilaiServo*/

Serial.print("Posisi motor servo = "); /*Tampilkan posisi motor servo di serial monitor*/

Serial.println(nilaiServo);

Serial.println("------------------------");

} 

Setelah selesai silahkan lakukan verify, dan jika tidak ada kesalahan dalam penulisan sketch program maka sudah bisa diupload ke board arduino uno. Lalu cobalah putar potensiometer ke kiri dan ke kanan maka motor servo akan berputar mengikuti putaran pada potensiometer. Untuk melihat berapa pergerakan sudutnya maka bisa di lihat pada serial monitornya. Tampilannya akan seperti ini:


pengendali motor servo arduino

Demikianlah materi tentang mengontrol motor servo menggunakan potensiometer dan arduino uno. Jika ada yang perlu didiskusikan bisa tulis dikomentar. Terimakasih.

Posting Komentar untuk "Arduino part 8. Mengendalikan Motor Servo "