Cara Mengontrol Motor Servo dengan Arduino

Cara Mengontrol Motor Servo Dengan Arduino



Motor Servo adalah jenis perangkat listrik yang dapat mengubah atau memutar posisi suatu objek dengan presisi tinggi. Pada awalnya mereka digunakan untuk mengendalikan sayap pesawat RC beberapa saat kemudian mereka beralih ke robotika, robot humanoid, dan banyak proyek otomasi. Tidak seperti motor stepper, gerakannya dibatasi antara 0o hingga 180o.

Biasanya motor servo memiliki lengan yang dapat dikendalikan menggunakan Arduino. Motor servo terdiri dari sistem kontrol yang menyediakan: masukan tentang posisi poros motor saat ini, umpan balik ini memungkinkan untuk bergerak dengan sangat presisi.

Pinout Motor Servo

Biasanya, kebanyakan motor servo memiliki tiga pin:







  • Pin Vcc (Biasanya Merah 5V)
  • Pin GND (Biasanya Hitam 0V)
  • Pin Sinyal Input (Menerima sinyal PWM dari Arduino)



Cara Kerja Motor Servo

Kita dapat mengontrol motor servo dengan menghubungkan pin Vcc ke 5V dan pin GND ke 0V. Di terminal warna kuning, kami menyediakan PWM sinyal yang mengontrol sudut putar motor servo. Lebar sinyal PWM memberi kita sudut di mana motor akan memutar lengannya.



Jika kita melihat ke Datasheet motor servo, kita mendapatkan parameter berikut:





  • Periode waktu sinyal PWM
  • Lebar minimum untuk PWM
  • Lebar maksimum untuk PWM

Semua parameter ini telah ditentukan sebelumnya di perpustakaan Arduino Servo.

Motor Servo dengan Arduino

Motor servo sangat mudah dikendalikan dengan Arduino, berkat Perpustakaan Servo yang membantu kita untuk menyesuaikan kode kita sesuai dengan kebutuhan dan memungkinkan kita untuk memutar lengan servo pada sudut yang kita inginkan.



Ketiga Parameter yang disebutkan di atas diperbaiki di perpustakaan Servo. Dengan menggunakan parameter ini, kita dapat mengontrol sudut motor servo dengan cara berikut:

  • Jika lebar sinyal PWM = WIDTH_MAX, servo akan berputar hingga 180o
  • Jika lebar sinyal PWM = WIDTH_MIIN, servo akan berputar ke 0o
  • Jika lebar sinyal PWM terletak di antara WIDTH_MAX dan WIDTH_MIN , motor servo akan berputar antara 0o dan 180o

Kita dapat menghasilkan sinyal PWM yang diinginkan pada beberapa pin Arduino. Sinyal PWM akan diberikan pada pin sinyal input motor servo. Menghubungkan sisa dua pin servo ke 5v dan GND Arduino.

Cara Mengontrol Motor Servo menggunakan Arduino

Disini saya akan menjelaskan bagaimana kita bisa menghubungkan dan memprogram motor servo kita menggunakan Arduino. Yang kamu butuhkan adalah:

  • Arduino UNO
  • kabel USB B
  • Motor servo
  • Kabel jumper

Cara Memprogram Servo dengan Arduino

Berikut ini adalah beberapa langkah sederhana:

Langkah 1: Sertakan perpustakaan servo yang telah ditentukan sebelumnya:

# termasuk < Servo.h >

Langkah 2: Buat Objek Servo:

Servo myservo;

Tip: Jika Anda mengontrol lebih dari satu motor servo, Anda harus membuat lebih banyak objek servo:

Servo myservo1;
Servo myservo2;

Langkah 3: Atur pin kontrol (9) pada Arduino Uno yang mengirimkan sinyal PWM ke port sinyal Input servo:

myservo.attach ( 9 ) ;

Langkah 4: Putar sudut motor servo ke nilai yang diinginkan misalnya 90o:

myservo.write ( pos ) ;

Kode Arduino

Buka program contoh motor servo dari File>Contoh>Servo>Sapu , jendela baru akan terbuka menunjukkan sketsa servo kami:

#sertakan

Servo myservo; // objek servo dibuat untuk mengendalikan motor servo
int pos = 0 ; // untuk menyimpan posisi servo, variabel baru dibuat
batalkan pengaturan ( ) {
myservo.attach ( 9 ) ; // ini akan mengatur Pin Arduino 9 untuk keluaran PWM
}
lingkaran kosong ( ) {
untuk ( pos = 0 ; pos = 0 ; pos -= 1 ) { // pergi dari 180 ke 0 derajat
myservo.write ( pos ) ; // beri tahu servo untuk pergi ke posisi 'pos'
menunda ( 5 ) ; // menunggu untuk 5 ms sehingga servo dapat mencapai posisi
}
}

Setelah program dikompilasi dan diunggah, motor servo akan mulai berputar perlahan dari posisi awal 0 derajat hingga 180 derajat, satu derajat pada satu waktu seperti langkah-langkah. Ketika motor telah menyelesaikan putaran 180 derajat, motor akan memulai putarannya dalam arah yang berlawanan menuju titik awalnya yaitu 0 derajat.

skema

Cara Mengontrol Motor Servo menggunakan Potensiometer

Kami juga dapat mengontrol posisi motor servo dengan tangan. Untuk melakukan ini kita perlu Potensiometer . Potensiometer memiliki tiga pin. Hubungkan dua pin luar ke 5V Vcc dan GND Arduino dan yang tengah ke pin A0 di papan Arduino.

Cara Memprogram Servo dengan Potensiometer

Sebagian besar sketsa untuk potensiometer sama dengan contoh sebelumnya. Satu-satunya perbedaan adalah Variabel baru nilai dan subpin didefinisikan sebelum bagian setup dan loop kode.

int potpin = A0;
int nilai;

Di bagian loop pin analog A0 digunakan untuk membaca nilai Potensiometer dengan fungsi analogBaca() . Papan Arduino berisi 10-bit ADC (Analog to Digital Converter) yang memberi kita nilai antara 0 dan 1023 tergantung pada posisi potensiometer:

val = analogBaca ( subpin ) ;

Terakhir, kami telah menggunakan peta() berfungsi untuk memetakan kembali angka dari 0 hingga 1023 sesuai dengan sudut Servo seperti yang kita ketahui Motor servo hanya dapat berputar antara 00 dan 1800.

val = peta ( val, 0 , 1023 , 0 , 180 ) ;

Kode Arduino

Buka sketsa tombol yang tersedia di Arduino IDE, buka File>Contoh>Servo>Knob . Jendela baru akan terbuka yang menunjukkan sketsa tombol untuk servo:

#sertakan
Servo myservo; // Membuat nama objek servo myservo
int potpin = A0; // mendefinisikan pin analog untuk potensiometer
int nilai; // variabel yang akan Baca nilai pin analog untuk potensiometer

batalkan pengaturan ( ) {
myservo.attach ( 9 ) ; // pin yang ditentukan 9 untuk Sinyal input PWM servo pada Arduino
}
lingkaran kosong ( ) {
val = analogBaca ( subpin ) ; // membaca nilai dari potensiometer ( nilai diantara 0 dan 1023 )
val = peta ( val, 0 , 1023 , 0 , 180 ) ; // skala nilai untuk digunakan dengan servo ( nilai diantara 0 dan 180 )
myservo.write ( nilai ) ; // mengatur posisi servo dengan nilai skala
menunda ( limabelas ) ; // menunggu untuk servo untuk sampai ke posisi
}

Kode di atas akan membantu kita untuk mengontrol poros motor servo menggunakan potensiometer, poros akan berputar antara 0 dan 180 derajat. Kita juga bisa menjaga kecepatan seiring dengan arah servo yang menggunakannya.

Diagram Sirkuit

Berapa banyak Motor Servo yang dapat Saya Hubungkan dengan Arduino?

Jumlah maksimum motor servo yang dapat ditangani Arduino UNO adalah hingga 12 dengan perpustakaan Arduino untuk servo, dan maksimum 48 servo dapat dihubungkan dengan papan seperti Mega.

Tip: Kita dapat langsung menjalankan servo menggunakan arus Arduino tetapi ingat jika motor servo menarik lebih dari 500mA maka papan Arduino Anda dapat secara otomatis mengatur ulang dan kehilangan daya. Disarankan untuk selalu menggunakan catu daya khusus untuk motor servo.

Kesimpulan

Dalam tutorial ini, kami telah membahas mekanisme pengontrolan motor servo dengan Arduino. Kami membahas dasar-dasar pengontrolan posisi dan kecepatan servo menggunakan potensiometer. Sekarang Anda sudah mendapat ide tentang servo dan kemungkinan untuk robotika, proyek RC, dan otomatisasi Anda menggunakan servo tidak terbatas.