Kontrol Motor Servo: Panduan Lengkap
Pembelajaran Utama:
Definisi Kontrol Motor Servo: Kontrol motor servo memungkinkan manipulasi presisi dari posisi, kecepatan, dan percepatan motor melalui sinyal elektronik.
Mekanisme Umpan Balik: Sistem umpan balik, sering kali berupa potensiometer atau encoder, memastikan output motor sesuai dengan input kontrol secara tepat.
Sinyal PWM: Modulasi lebar pulsa (PWM) sangat penting untuk menentukan posisi servo dengan mengubah durasi pulsa listrik.
Arduino dan Motor Servo: Menggunakan papan Arduino adalah cara yang populer dan efektif untuk memrogram dan mengontrol motor servo dengan setup perangkat keras minimal.
Aplikasi Motor Servo: Motor servo sangat penting untuk proyek yang membutuhkan kontrol posisi akurat, seperti robotika dan sistem otomatis.
Motor servo adalah motor yang dirancang untuk presisi tinggi dan akurasi dalam rotasi. Ini berbeda dari motor DC biasa karena kemampuannya untuk mempertahankan posisi tertentu daripada berputar terus menerus. Fitur ini membuat motor servo ideal untuk robotika, otomatisasi, dan proyek hobi.
Artikel ini menjelaskan bagaimana fungsi kontrol motor servo, jenis-jenis motor servo yang berbeda, serta berbagai metode dan perangkat kontrol. Artikel ini juga memberikan contoh aplikasi dan proyek motor servo.
Apa itu Motor Servo?
Motor servo didefinisikan sebagai aktuator yang memungkinkan kontrol presisi posisi (sudut), kecepatan, dan percepatan. Motor servo standar terdiri dari tiga komponen utama: motor DC, rangkaian kontrol, dan perangkat umpan balik.
Motor DC memberikan daya pada servo dan terhubung ke gigi yang mengurangi kecepatan dan meningkatkan torsi pada poros output.

Poros output adalah bagian dari servo yang berputar dan menggerakkan beban.
Rangkaian kontrol bertanggung jawab untuk menerima dan memproses sinyal input dari pengontrol eksternal. Sinyal-sinyal ini memberitahu servo posisi, kecepatan, atau arah mana yang harus dipindahkan. Rangkaian kontrol juga mengirim daya ke motor DC untuk menggerakkannya.
Perangkat umpan balik biasanya adalah potensiometer atau encoder yang mengukur posisi saat ini dari poros output.

Perangkat umpan balik mengirim data posisi kembali ke rangkaian kontrol, yang kemudian menyesuaikan daya motor DC untuk menyelaraskan posisi aktual dengan posisi yang diinginkan dari sinyal input.
Loop umpan balik antara rangkaian kontrol dan perangkat umpan balik memastikan bahwa servo dapat bergerak dan mempertahankan posisi apa pun dalam rentang gerakannya dengan akurat.
Bagaimana Cara Mengontrol Motor Servo?
Motor servo dikendalikan dengan mengirim sinyal PWM (modulasi lebar pulsa) ke jalur sinyal servo. PWM adalah teknik yang beralih-beralih sinyal on dan off dengan cepat untuk menciptakan pulsa dengan lebar yang berbeda. Lebar pulsa menentukan posisi poros output.
Misalnya, ketika Anda mengirim sinyal PWM dengan lebar pulsa 1,5 milidetik (ms), servo akan bergerak ke posisi netral (90 derajat).

Ketika Anda mengirim sinyal PWM dengan lebar pulsa 1 ms, servo akan bergerak ke posisi minimum (0 derajat). Ketika Anda mengirim sinyal PWM dengan lebar pulsa 2 ms, servo akan bergerak ke posisi maksimum (180 derajat).
Sinyal PWM memiliki frekuensi 50 Hz, yang berarti ia berulang setiap 20 ms. Lebar pulsa dapat bervariasi dari 1 ms hingga 2 ms dalam periode ini.
Ada banyak cara untuk menghasilkan dan mengirim sinyal PWM ke motor servo. Beberapa metode yang paling umum adalah:
Menggunakan papan Arduino atau mikrokontroler lainnya
Menggunakan potensiometer atau sensor analog lainnya
Menggunakan joystick atau perangkat input digital lainnya
Menggunakan pengontrol atau driver servo khusus
Dalam bagian berikutnya, kita akan menjelajahi setiap metode ini lebih detail dan melihat beberapa contoh cara kerjanya.
Mengontrol Motor Servo dengan Arduino
Arduino adalah salah satu platform paling populer untuk mengontrol motor servo. Papan Arduino memiliki keluaran PWM bawaan yang dapat digunakan untuk mengirim sinyal ke servo. Arduino juga memiliki library Servo yang memudahkan penulisan kode untuk kontrol servo.
Untuk mengontrol motor servo dengan Arduino, Anda akan membutuhkan:
Papan Arduino (seperti Arduino UNO)
Motor servo standar (seperti SG90)
Kabel jumper
Breadboard (opsional)
Kabel merah dari servo terhubung ke 5V pada papan Arduino. Kabel hitam dari servo terhubung ke GND pada papan Arduino. Kabel putih dari servo terhubung ke pin 9 pada papan Arduino.
Untuk memprogram papan Arduino, Anda akan memerlukan Arduino IDE (online atau offline). Anda dapat menggunakan salah satu contoh dari library Servo atau menulis kode Anda sendiri.
Kode berikut menunjukkan cara menyapu motor servo bolak-balik sepanjang 180 derajat menggunakan loop for:
#include <Servo.h> // Include Servo library
Servo myservo; // Buat objek Servo
int pos = 0; // Variabel untuk posisi
void setup() {
myservo.attach(9); // Pasangkan objek Servo ke pin 9
}
void loop() {
for (pos = 0; pos <= 180; pos += 1) { // Loop dari 0 hingga 180 derajat
myservo.write(pos); // Tulis posisi ke objek Servo
delay(15); // Tunggu 15 ms
}
for (pos = 180; pos >= 0; pos -= 1) { // Loop dari 180 hingga 0 derajat
myservo.write(pos); // Tulis posisi ke objek Servo
delay(15); // Tunggu 15 ms
}
}
Kode ini menggunakan dua loop untuk menambah dan mengurangi variabel posisi dari 0 hingga 180 derajat dan sebaliknya. Kemudian menulis nilai ini ke objek Servo menggunakan myservo.write(pos). Itu juga menambahkan jeda 15 ms antara setiap langkah untuk memperlambat gerakan.
Unggah kode ini ke papan Arduino Anda menggunakan tombol Upload IDE, dan lihat motor servo Anda menyapu bolak-balik dengan mulus.
Mengontrol Motor Servo dengan Potensiometer
Potensiometer adalah sensor analog yang dapat mengubah resistensinya tergantung pada seberapa jauh Anda memutar knob-nya. Anda dapat menggunakan potensiometer sebagai perangkat input untuk mengontrol motor servo.
Untuk mengontrol motor servo dengan potensiometer, Anda akan membutuhkan:
Papan Arduino (seperti Arduino UNO)
Motor servo standar (seperti SG90)
Potensiometer (10k Ohm)
Kabel jumper
Breadboard
Diagram koneksi untuk menghubungkan potensiometer dan motor servo ke papan Arduino ditunjukkan di bawah ini:
Kabel merah dari potensiometer terhubung ke 5V pada papan Arduino. Kabel hitam dari potensiometer terhubung ke GND pada papan Arduino. Kabel hijau dari potensiometer terhubung ke pin A0 pada papan Arduino.
Kabel merah dari servo terhubung ke 5V pada baris lain di breadboard. Kabel hitam dari servo terhubung ke GND pada baris lain di breadboard. Kabel putih dari servo terhubung ke pin D9 pada baris lain di breadboard.
Untuk memprogram papan Arduino Anda, Anda akan memerlukan kode yang sama dengan contoh sebelumnya tetapi mengubah beberapa baris:
#include <Servo.h> // Include Servo library
Servo myservo; // Buat objek Servo
int potpin = A0; // Pin terhubung ke potensiometer
int val = 0; // Variabel untuk membaca nilai potensiometer
void setup() {
myservo.attach(9); // Pasangkan objek Servo ke pin D9
}
void loop() {
val = analogRead(potpin); // Baca nilai dari potensiometer (0 -1023)
val = map(val,0,1023,0,180); // Map range nilai (0 -180)
myservo.write(val); // Tulis nilai yang dimapping ke objek Servo
delay(15); // Tunggu 15 ms
}
Kode ini menggunakan fungsi analogRead(potpin) untuk membaca nilai dari potensiometer yang terhubung ke pin A0. Kemudian menggunakan fungsi map(val,0,1023,0,180) untuk memetakan range nilai dari 0 -1023 menjadi 0 -180 derajat. Kemudian menulis nilai yang dimapping ke objek Servo menggunakan fungsi myservo.write(val). Juga menambahkan jeda, sama seperti contoh sebelumnya.
Anda dapat mengunggah kode ini ke papan Arduino Anda menggunakan tombol Upload IDE. Anda seharusnya melihat motor servo Anda bergerak sesuai dengan posisi knob potensiometer.
Mengontrol Motor Servo dengan Joystick
Joystick adalah perangkat input digital yang dapat mendeteksi arah dan magnitudo gerakan sepanjang dua sumbu. Anda dapat menggunakan joystick untuk mengontrol motor servo dengan memetakan sumbu x joystick ke sudut servo.
Untuk mengontrol motor servo dengan joystick, Anda akan membutuhkan:
Papan Arduino (seperti Arduino UNO)
Motor servo standar (seperti SG90)
Modul joystick (seperti KY-023)
Kabel jumper
Breadboard
Diagram koneksi untuk menghubungkan modul joystick dan motor servo ke papan Arduino ditunjukkan di bawah ini:
!https://www.makerguides.com/wp-content/uploads/2019/01/Servo-motor-control-with-Arduino-and-joystick-wiring-diagram.png
Kabel merah dari modul joystick terhubung ke 5V pada papan Arduino. Kabel hitam dari modul joystick terhubung ke GND pada papan Arduino. Kabel hijau dari modul joystick terhubung ke pin A0 pada papan Arduino.
Kabel merah dari servo terhubung ke 5V pada baris lain di breadboard. Kabel hitam dari servo terhubung ke GND pada baris lain di breadboard. Kabel putih dari servo terhubung ke pin D9 pada baris lain di breadboard.
Untuk memprogram papan Arduino Anda, Anda akan memerlukan kode yang sama dengan contoh sebelumnya tetapi mengubah beberapa baris:
#include <Servo.h> // Include Servo library
Servo myservo; // Buat objek Servo
int joyX = A0; // Pin terhubung ke sumbu x joystick
int val = 0; // Variabel untuk membaca nilai joystick
void setup() {
myservo.attach(9); // Pasangkan objek Servo ke pin 9
}
void loop() {
val = analogRead(joyX); // Baca nilai dari sumbu x joystick (0 - 1023)
val = map(val, 0, 1023, 0, 180); // Map range nilai (0 - 180)
myservo.write(val); // Tulis nilai yang dimapping ke objek Servo
delay(15); // Tunggu 15 ms
}
Kode ini menggunakan fungsi analog. Read(joyX) untuk membaca nilai dari sumbu x joystick yang terhubung ke pin A0. Kemudian menggunakan fungsi map(val, 0, 1023, 0, 180) untuk memetakan range nilai dari 0 – 1023 ke 0 – 180 derajat. Kemudian menulis nilai ini ke objek Servo menggunakan fungsi myservo.write(val). Juga menambahkan jeda 15 ms antara setiap langkah.
Anda dapat mengunggah kode ini ke papan Arduino Anda menggunakan tombol Upload di IDE. Anda seharusnya melihat motor servo Anda bergerak sesuai dengan posisi joystick.
Mengontrol Motor Servo dengan Pengontrol Servo