Dalam tutorial ini, Anda
akan mempelajari cara kerja motor servo dan cara mengontrolnya dengan Arduino.
kami telah menyertakan diagram pengkabelan dan contoh program Motor servo
sering digunakan dalam proyek robotika tetapi kalian juga dapat menemukannya di
mobil RC, pesawat, dll. Motor servo sangat berguna ketika kalian membutuhkan
kontrol posisi yang tepat dan torsi tinggi.
Pada bagian pertama
artikel ini, kita akan melihat cara kerja bagian dalam servo dan jenis sinyal
kontrol yang digunakannya. Saya juga menjelaskan apa perbedaan.
Pengertian Motor Servo
Motor Servo adalah sebuah perangkat atau
aktuator putar (motor) yang dirancang dengan sistem kontrol umpan balik loop
tertutup (servo), sehingga dapat di set-up atau di atur untuk menentukan dan
memastikan posisi sudut dari poros output motor.
Motor servo dikendalikan dengan
mengirimkan sinyal PWM (pulse-width modulation) ke jalur sinyal servo. Lebar
pulsa menentukan posisi poros keluaran. Saat Anda mengirim sinyal ke servo
dengan lebar pulsa 1,5 milidetik (ms), servo akan bergerak ke posisi netral (90
derajat). Posisi min (0 derajat) dan maks (180 derajat) biasanya sesuai dengan
lebar pulsa masing-masing 1 ms dan 2 ms. Perhatikan ini dapat sedikit berbeda
antara berbagai jenis dan merek motor servo (misalnya 0,5 dan 2,5 ms). Banyak
servos hanya berputar sekitar 170 derajat (atau bahkan hanya 90) tetapi posisi
tengah hampir selalu pada 1,5 ms.
Servo 360 derajat (kontinu) vs 180 derajat (standar)
Sebagian besar servo RC berasal dari
variasi 180 derajat, yang berarti mereka hanya dapat berputar dalam kisaran 0
hingga 180 derajat. Namun, rotasi terus menerus, juga dikenal sebagai motor servo
360 derajat, juga tersedia.
Servo rotasi kontinu bereaksi berbeda
terhadap sinyal kontrol dibandingkan servo standar 180 derajat. Dengan servo
rotasi kontinu, Anda tidak dapat mengontrol posisi yang tepat dari poros
keluaran, hanya kecepatan dan arahnya. Pulsa 1 ms akan mengatur kecepatan motor
servo ke kecepatan penuh di satu arah dan pulsa 2 ms ke kecepatan penuh di arah
lain. Nilai mendekati 1,5 ms memungkinkan motor berhenti.
Motor servo 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.
Jadi bagaimana cara mengontrol motor servo dengan menggunakan arduino ?
- Siapkan Arduino beserta kabel datanya
- Motor Servo Dc SG90/ dapat dilihat pada gambar diatas
- Kabel jumper secukupnya
Cara merakit rangkaian motor servo dengan arduio dapat dilihat pada gambar diatas
Menghubungkan motor servo sangat mudah
karena kalian hanya perlu menghubungkan tiga kabel: daya, ground, dan sinyal.
Kabel daya biasanya berwarna merah dan perlu disambungkan ke 5 V, untuk
penjelasan lebih rincinya dapat disimak pada keterangan dibawah ini
- Warna merah motor servo, dihubungkan ke pin 5V Arduino
- Warna hitam/coklat motor servo, dihubungkan ke pin Gnd Arduino
- Warna kuning motor servo, dihubungkan ke pin 2 Arduino (dapat digunakan pin lainnya)
Servo mikro seperti SG90 mengkonsumsi
sekitar 10 mA saat idle dan 100 – 250 mA saat berputar, sehingga kalian dapat
menyalakannya secara langsung dengan output 5 V dari Arduino. Namun, kalian harus
berhati-hati saat menggunakan lebih dari satu motor servo. Jika motor servo
kalian mengkonsumsi daya lebih dari 300 mA, kalian harus menggunakan catu daya
eksternal untuk menghindari kerusakan Arduino. Seperti menggunakan catu daya
dari power supply atau yang lainnya.
Program Motor Servo
Untuk mengontrol motor
servo kita akan menggunakan library Servo.h yang sudah diinstal sebelumnya
dengan Arduino IDE. Dengan kode contoh di bawah ini, Anda dapat mengontrol
posisi yang tepat dari motor servo dan juga termasuk kode untuk menggerakkan
lengan servo maju mundur secara otomatis.
kalian dapat menyalin program arduino dibawah ini dan pastekan ke project Arduino IDE kalian.
[program motor servo]
#include //library servo
Servo myservo; // membuat variabel servo untuk dikendalikan
int pos = 0; // deklarasi variabel untuk posisi sudut
void setup()
{
myservo.attach(9); //deklarasi servo pada pin 9
}
void loop()
{
for(pos = 0; pos < 180; pos+= 1) // perulangan untuk posisi 0 sampai 180 derajat
{ // step setiap 1 derajat
myservo.write(pos); // memerintahkan servo ke posisi derajat sesuai nilai variabel pos
delay(15); // menunggu 15 milidetik
}
for(pos = 180; pos>=1; pos-=1) // perulangan untuk posisi 180 sampai 0 derajat
{
myservo.write(pos); // memerintahkan servo ke posisi derajat sesuai nilai variabel pos
delay(15); // menunggu 15 milidetik
}
}
Motor servo
banyak digunakan dalam berbagai pengaplikasian, misalnya pada pesawat
aeromodeling servo digunakan untuk menggerakkan sayap pesawat untuk berbelok,
kemudia pada bidang industri motor servo digunakan untuk lengan lengan robot
tertentu karena servo ini memiliki prinsip sama dengan sendi pada manusia dan
masih banyak lagi alat yang penerapnnya menggunakan motor servo. Sekian penjelasan
dari artikel kali ini semoga bermanfaat dan selamat mencoba...