Motor Servo: Pengertian, Cara Kerja, Kelebihan, Kekurangan dan Aplikasinya
Apa itu Motor Servo?
Dikutip dari Sparkfun, motor servo (servomechanism) adalah sebuah mekanisme dimana motor (jenis apa pun) yang dikendalikan menggunakan sistem kontrol umpan balik (close loop control).
Dikutip dari Wikipedia, motor servo bukan merupakan kelas motor tertentu, meskipun istilah servo motor sering digunakan untuk merujuk pada motor yang cocok untuk digunakan dalam sistem kontrol tertutup.
Oleh karenanya tipe motor tidak terlalu penting bagi servo motor dan berbagai jenis motor dapat digunakan. Pada motor servo yang sederhana biasa menggunakan motor DC, sedangkan motor servo kelas industri kecil umumnya menggunakan motor brushless.
Motor servo bekerja berdasarkan mekanisme close loop control, dimana terdapat umpan balik (informasi) berupa posisi poros dan kecepatan yang diberikan kembali ke kontrol internal motor servo, walaupun umumnya hanya ada umpan balik posisi.
Sensor yang digunakan pada motor servo biasanya adalah potensiometer pada servo sederhana dan rotary encoder pada servo yang lebih baru. Algoritma kendali pada motor servo umumnya menggunakan kontrol PID (Proportional Integral and Derivative).
Rekomendasi Artikel: Menggunakan Sensor HC-SR04 Tanpa Library Pada Arduino
Apa maksud sistem kendali umpan balik?
Maksudnya adalah di dalam servo terdapat sebuah sensor untuk mendeteksi sudut servo secara langsung. Kemudian informasi tersebut dikirim lagi ke pengendali. Sensor yang paling umum digunakan pada motor servo standar adalah berupa potensiometer. jadi apabila sudut motor servo belum mencapai target maka motor akan terus berputar hingga mencapai target.
Motor servo sederhana biasanya memiliki 3 buah kabel berwarna hitam/cokelat, merah dan oranye/kuning.
- Kabel berwarna merah adalah kabel power, besarnya tegangan tergantung dari tipe motor servo yang dapat ditemukan pada datasheet motor servo, namun biasanya berkisar antara (5V-9V).
- Kabel berwarna hitam/cokelat adalah kabel ground.
- Kabel berwarna oranye/kuning adalah kabel pulsa/data.
Rekomendasi Artikel: Memperhalus Pembacaan Sensor pada Arduino
Cara Kerja
- Motor DC.
- Rangkaian pengendali.
- Potensiometer atau rotary encoder.
Bagian utama pada motor servo (sumber: Sparkfun) |
Motor DC umumnya akan terhubung dengan gearbox sebelum ke poros utama, hal ini guna meningkatkan torsi motor. Rangkaian pengendali berfungsi untuk menerima sinyal masukan dari pengontrol eksternal (seperti mikrokontroler), kemudian menggerakkan motor DC sesuai dengan perintah tersebut. Sedangkan potensiometer berfungsi sebagai sensor pendeteksi posisi poros keluaran.
Kelebihan Menggunakan Motor Servo
Kelebihan menggunakan motor servo adalah:
- Tidak bergetar dan tidak beresonansi saat beroperasi.
- Daya yang dihasilkan sebanding dengan ukuran dan berat motor.
- Penggunaan arus listik sebanding dengan beban yang diberikan.
- Resolusi dan akurasi dapat diubah dengan hanya mengganti encoder yang dipakai.
- Tidak berisik saat beroperasi dengan kecepatan tinggi.
- Sangat presisi.
Rekomendasi Artikel: Menggunakan Sensor Suhu LM35 dengan Arduino dan Tampilan LCD
Kekurangan Motor Servo
Kelemahan menggunakan motor servo adalah:
- Harga motor servo tergolong mahal.
- Berpotensi rusak jika terjadi overload.
Rekomendasi Artikel: Tutorial Lengkap Menggunakan Driver L298N dengan Arduino
Aplikasi Motor Servo
Penggunaan motor servo sangat luas terutama dalam bidang robotika. Berikut aplikasi motor servo:
-
Sebagai penggerak (aktuator) pada kaki robot. Motor servo banyak
digunakan pada proyek robotika karena motor servo mudah dikendalikan
serta memiliki torsi (kekuatan) yang baik, sehingga sangat cocok untuk
menggerakkan keseluruhan badan robot.
-
Lengan robot. Yang satu ini masih dalam bidang robotika, motor servo
banyak digunakan pada lengan robot karena motor servo mudah dikendalikan
serta akurasi dan presisi yang sangat baik.
- Penggerak alat lainnya.
Rekomendasi Artikel: Pengertian Mikrokontroler, Struktur dan Jenis-Jenisnya
Cara Kontrol Motor Servo Menggunakan Arduino
Cara mengontrol motor servo menggunakan Arduino sangat mudah karena Arduino memiliki perpustakaan sendiri untuk menggunakan servo. Kali ini kita akan mencoba untuk mengontrol servo agar servo dapat berputar ke posisi yang kita ingin kan, misalnya mengatur motor servo berputar ke sudut 90°.
Rekomendasi Artikel: Mengenal Fungsi constrain() pada Arduino
Alat Dibutuhkan
Berikut alat yang dibutuhkan:
- 1x Motor Servo (saya pakai Micro Servo MG90s).
- 1x Arduino Uno (tipe lain juga bisa).
Hubungan Antara Motor Servo dan Arduino
Berikut adalah cara menghubungkan kabel pada motor servo ke Arduino:
- Kabel hitam/cokelat terhubung ke ground.
- Kabel kuning/oranye terhubung ke port 7 Arduino.
- Kabel merah terhubung ke sumber tegangan (sebaiknya mengambil dari sumber tegangan eksternal).
Sumber tegangan eksternal:
Sumber tegangan dari Arduino:
Kode Program
Di bawah ini adalah kode program yang akan kita gunakan untuk mengontrol motor servo dengan Arduino. Salin kode program di bawah ini kemudian tempel di software Arduino IDE.
#include <Servo.h> Servo myServo; void setup() { myServo.attach(7); delay(100); } void loop() { myServo.write(0); delay(1000); myServo.write(90); delay(1000); }
Penjelasan Kode Program
#include <Servo.h>
Baris program di atas berfungsi untuk menyertakan sebuah library yang bernama Servo.h. Library ini adalah library yang sejak awal sudah kita singgung sebagai library bawaan Arduino IDE agar kita dapat mengendalikan motor servo dengan mudah.
Servo myServo;
Baris program di atas berfungsi untuk mendeklarasikan atau menginisialisasi sebuah variabel servo yang bernama myServo. Jika kita ingin mengontrol 2 buah motor servo sekaligus, kita dapat langsung menambahkan variabel servo baru misalnya dengan nama myServo_2. Nama antara servo satu dengan yang lainnya tidak boleh sama.
myServo.attach(7);
Baris program di atas berfungsi untuk menginisialisasi pin Arduino yang terhubung pada pin data motor servo (kabel oranye/kuning). Di sini kita menggunakan pin 7 pada Arduino untuk mengontrol motor servo.
delay(100);
Baris program di atas berfungsi untuk memberi jeda waktu selama 1 detik (1000 ms).
myServo.write(0);
Baris program di atas berfungsi untuk mengontrol motor servo agar berputar ke sudut 0°.
delay(1000);
Baris program di atas berfungsi untuk memberi jeda waktu selama 1 detik (1000 ms).
myServo.write(90);
Baris program di atas berfungsi untuk mengontrol motor servo agar berputar ke sudut 90°.
delay(1000);
Baris program di atas berfungsi untuk memberi jeda waktu selama 1 detik (1000 ms).
Langkah-Langkah
Berikut adalah langkah-langkahnya.
- Pertama buatlah rangkaian yang menghubungkan antara Arduino dengan motor servo seperti gambar di atas.
- Jika sudah hubungkan Arduino dengan PC/laptop menggunakan kabel USB.
- Kemudian salin keseluruhan kode program di atas dan tempelkan pada software Arduino IDE.
- Pada software Arduino IDE pilih tab tools dan atur jenis Arduino yang Anda gunakan serta pilih PORT USB dimana papan Arduino kamu terhubung.
- Jika sudah benar, tekan tombol upload atau unggah kalau Anda menggunakan Bahasa Indonesia.
- Jika proses upload sudah selesai seharusnya servo sudah bergerak seperti gambar di bawah.
Hasil
Penutup
Itulah dia cara pengertian motor servo serta cara mengontrolnya. Semoga artikel ini membantu dan jangan lupa untuk membaca artikel kami lainnya tentang tutorial Arduino.
Gabung dalam percakapan