Mengendalikan Motor Servo dengan Arduino


Motor servo adalah salah satu jenis motor yang sering digunakan di dunia robotika dan otomasi. Morot ini berbeda dengan motor DC biasa. Motor DC biasa apabila kita beri sumber listrik maka akan berputar terus-menerus. Motor servo berbeda, motor ini dapat kita kendalikan posisinya dan motor akan mempertahankan agar tetap berada pada posisi tersebut. Contoh penggunaan motor servo misalnya untuk kendali palang pintu atau kendali moncong tembakan tank.

Motor servo penting karena dapat digunakan untuk membuat semua jenis lengan, kaki, atau bahkan mekanisme pan-and-tilt yang berguna untuk membuat robot yang benar-benar keren yang bisa berjalan, mengambil barang, atau memindahkan benda. Dalam tingkat yang lebih lanjut kita dapat mempelajari dengan menggabungkannya dengan shield untuk mengontrol kecepatan dan arah seluruh set servos untuk membangun robot hexapod (laba-laba) yang berjalan.

Dasar Motor Servo

Motor servo agak mirip dengan motor DC; Namun, ada perbedaan penting. Notor DC pada umumnya dirancang untuk bergerak secara kontinu — berputar 360 derajat pada kecepatan tertentu — servo umumnya dirancang untuk bergerak dalam sekumpulan sudut terbatas. Di dunia motor DC, kita biasanya ingin motor berputar dengan kecepatan rotasi kontinu yang dapat kita kendalikan. Sedangkan di motor servo, kita ingin motor bergerak ke posisi tertentu secara presisi dan tetap berada pada posisi tersebut.

Mengontrol servos cukup sederhana. Perangkat ini memiliki tiga kabel yang terhubung: satu untuk koneksi ground (biasanya warna hitam atau coklat), satu untuk tegangan kutub positif (warna kabel merah), dan yang ketiga adalah sinyal kontrol PWM (kabel warna orange). 

Sinyal adalah gelombang persegi yang dinyalakan dan dimatikan pada tingkat yang ditetapkan, biasanya sekitar 500 Hz. Rasio panjang waktu sinyal aktif ke waktu sinyal mati menentukan sudut servo yang diinginkan.

Arduino dapat mengontrol servos menggunakan dua pendekatan berbeda. Yang pertama adalah menghubungkan servos langsung ke Arduino. Sayangnya, jika kita memiliki banyak motor servo, cara ini kadang-kadang dapat menarik lebih banyak arus daripada yang dapat diberikan Arduino, yaitu 40 mA. Untuk mengatasi masalah ini maka kita gunakan cara kedua. Kita harus menggunakan shield yang dapat terhubung ke sumber daya eksternal. Kemudian, Arduino dan shield Anda dapat memberikan tegangan dan arus sehingga Anda dapat mengontrol banyak servos. 

Menghubungkan motor servo langsung ke Arduino


Langkah pertama dalam menghubungkan motor servo ke Arduino adalah benar-benar mendapatkan motor servo. Gambar berikut ini menunjukkan motor servo yang khas, Hitec HS-311, tersedia di sebagian besar toko hobi atau Kontrol RC.

Untuk menghubungkan motor servo ini ke Arduino, kita akan memerlukan beberapa kabel jumper tanpa kabel male. Kita akan melihat bahwa ada tiga kawat yang datang dari servo. Dua di antaranya memasok tegangan dan arus ke servo. Yang ketiga menyediakan sinyal kontrol yang memberi tahu servo ke mana dan bagaimana bergerak. 

Kita akan menghubungkan ketiga kabel ini ke pin di Arduino. Kabel hitam pada servo adalah ground; kita akan menghubungkannya ke pin GND di Arduino. Kabel merah pada servo adalah koneksi VCC; hubungkan itu ke pin 5 V di Arduino. Pin oranye adalah pin kontrol pada servo; hubungkan itu ke salah satu pin DIGITAL (PWM ~) pada Arduino, misalnya, pin 11, seperti yang ditunjukkan pada gambar berikut:






Cara ini bekerja dengan baik dengan servo tunggal; Kita tidak akan ingin menggunakan metode ini untuk lebih dari satu atau dua servo. Sekarang setelah kita membuat rangkaian ini, kita siap untuk menulis kode untuk membuat servo bergerak.

Mengontrol servos dengan program
Sekarang setelah perangkat keras terhubung, Anda harus menyediakan sinyal kontrol untuk membuat servos Anda bergerak. Untuk mengontrol servo Anda, buka Arduino IDE. Pastikan Arduino dan port yang tepat dipilih. Kemudian masukkan baris kode seperti yang ditunjukkan pada tangkapan layar berikut:

Kode ini menggunakan library Servo yang diinstal dengan IDE Arduino standar. Tiga bagian kode yang perlu kita pahami adalah sebagai berikut:

  • Variabel global servo, servoPin, dan angle digunakan oleh program. Jenis data Servo menambahkan serangkaian fungsi sehingga kita dapat mengontrol servo. Ini termasuk fungsi servo.attach (servoPin) dan servo.write (angle), yang akan kita gunakan dalam program ini untuk mengirim servo ke sudut tertentu. Untuk mengetahui semua fungsi berbeda yang tersedia, kunjungi http://arduino.cc/en/reference/servo.
  • Fungsi setup () menghubungkan fungsionalitas servo ke pin yang tepat dan kemudian menginisialisasi port serial.
  • Fungsi loop () membaca port serial, dan kemudian menggunakan data itu untuk mengirim servo ke sudut yang tepat dengan menggunakan servo.write (sudut).


Setelah kita memasukkan kode, unggah program. Saat dijalankan, buka jendela serial monitor melalui menu Tools | Serial Monitor. Kita kemudian dapat memasukkan sudut yang diinginkan, seperti yang ditunjukkan pada tangkapan layar berikut:


Sekarang kita dapat membayangkan untuk menambahkan banyak rangkaian servos, yang dikendalikan oleh pin keluaran digital yang berbeda pada Arduino. Namun, Arduino sendiri akan segera kehabisan kemampuan untuk memasok arus yang cukup untuk mengendalikan lebih banyak servo. Jadi jika kita memiliki proyek yang membutuhkan lebih dari satu atau dua servo, kita sebaiknya menggunakan shield untuk mengatasi masalah kekuarangan daya tersebut.
Mengendalikan Motor Servo dengan Arduino Mengendalikan Motor Servo dengan Arduino Reviewed by vatin furoida on Agustus 14, 2019 Rating: 5
Diberdayakan oleh Blogger.