Arduino Servo Motors
Motor servo adalah perangkat hebat yang dapat beralih ke posisi yang ditentukan.
Biasanya, mereka memiliki lengan servo yang bisa berputar 180 derajat. Menggunakan Arduino, kita dapat memberi tahu servo untuk pergi ke posisi yang ditentukan dan itu akan pergi ke sana. Sesimpel itu!
Motor servo pertama kali digunakan di dunia Remote Control (RC), biasanya untuk mengendalikan kemudi mobil RC atau flap pada pesawat RC. Seiring waktu, mereka menemukan kegunaannya dalam robotika, otomatisasi, dan tentu saja, dunia Arduino.
Di sini kita akan melihat bagaimana menghubungkan motor servo dan kemudian bagaimana mengubahnya ke posisi yang berbeda.
Motor pertama yang saya sambungkan ke Arduino, tujuh tahun lalu, adalah motor Servo. Saat nostalgia selesai, kembali bekerja!
Kami akan membutuhkan hal-hal berikut:
- Papan Arduino terhubung ke komputer melalui USB
- Motor servo
- Kabel pelompat
Ada beberapa nama besar di dunia motor servo. Hitec dan Futaba adalah produsen servo RC terkemuka. Tempat bagus untuk membelinya adalah Servocity, Sparkfun, dan Hobbyking.
Ini dapat diinstruksikan dan banyak lagi dapat ditemukan di Buku Masak Pengembangan Arduino saya tersedia di sini. : DLangkah 1: Cara Menghubungkan Mereka

Motor servo memiliki semua yang ada di dalamnya: motor, sirkuit umpan balik, dan yang paling penting, seorang pengemudi motor. Hanya perlu satu saluran listrik, satu ground, dan satu pin kontrol.
Berikut ini adalah langkah-langkah untuk menghubungkan motor servo ke Arduino:
- Motor servo memiliki konektor perempuan dengan tiga pin. Yang paling gelap atau bahkan hitam biasanya adalah tanah. Hubungkan ini ke Arduino GND.
- Sambungkan kabel daya yang dalam semua standar harus berwarna merah sampai 5V pada Arduino.
- Hubungkan saluran yang tersisa pada konektor servo ke pin digital pada Arduino.
Periksa gambar untuk melihat servo yang terhubung ke Arduino.
Langkah 2: Kode
Kode berikut akan mengubah motor servo ke 0 derajat, menunggu 1 detik, lalu mengubahnya menjadi 90, tunggu satu detik lagi, putar menjadi 180, dan kemudian kembali.
// Sertakan pustaka ServoJika motor servo terhubung pada pin digital lain, cukup ubah nilai servoPin ke nilai pin digital yang telah digunakan.
#include // Deklarasikan pin Servo int servoPin = 3; // Buat objek servo Servo Servo1; void setup () {// Kita perlu melampirkan servo ke nomor pin yang digunakan Servo1.attach (servoPin); } void loop () {// Buat servo ke 0 derajat Servo1.write (0); keterlambatan (1000); // Buat servo ke 90 derajat Servo1.write (90); keterlambatan (1000); // Buat servo ke 180 derajat Servo1.write (180); keterlambatan (1000); }
Lampiran
Unduh Servo_motor.ino
Langkah 3: Cara Kerjanya

Servo adalah perangkat pintar. Dengan hanya menggunakan satu pin input, mereka menerima posisi dari Arduino dan mereka pergi ke sana. Secara internal, mereka memiliki driver motor dan sirkuit umpan balik yang memastikan lengan servo mencapai posisi yang diinginkan. Tapi sinyal apa yang mereka terima pada pin input?
Ini adalah gelombang persegi mirip dengan PWM. Setiap siklus dalam sinyal berlangsung selama 20 milidetik dan untuk sebagian besar waktu, nilainya RENDAH. Pada awal setiap siklus, sinyalnya TINGGI untuk waktu antara 1 dan 2 milidetik. Pada 1 milidetik itu mewakili 0 derajat dan pada 2 milidetik itu mewakili 180 derajat. Di antara, itu mewakili nilai dari 0-180. Ini adalah metode yang sangat bagus dan dapat diandalkan. Grafik membuatnya sedikit lebih mudah dimengerti.
Ingatlah bahwa menggunakan perpustakaan Servo secara otomatis menonaktifkan fungsionalitas PWM pada pin PWM 9 dan 10 pada Arduino UNO dan papan serupa.
Rincian kode
Kode hanya menyatakan objek servo dan kemudian menginisialisasi servo dengan menggunakan fungsi servo.attach () . Kita tidak boleh lupa untuk memasukkan perpustakaan servo. Dalam loop (), kita mengatur servo ke 0 derajat, tunggu, lalu atur ke 90, dan kemudian ke 180 derajat.
Langkah 4: Lebih Banyak Hal Tentang Servos
Mengontrol servos itu mudah, dan berikut adalah beberapa trik yang bisa kita gunakan:
Mengontrol waktu pulsa yang tepat
Arduino memiliki fungsi bawaan servo.write (derajat) yang menyederhanakan kontrol servos. Namun, tidak semua servos menghormati timing yang sama untuk semua posisi. Biasanya, 1 milidetik berarti 0 derajat, 1, 5 milidetik berarti 90 derajat, dan, tentu saja, 2 milidetik berarti 180 derajat. Beberapa servos memiliki rentang yang lebih kecil atau lebih besar.
Untuk kontrol yang lebih baik, kita dapat menggunakan fungsi servo.writeMicroseconds (kita), yang menggunakan jumlah persis mikrodetik sebagai parameter. Ingat, 1 milidetik sama dengan 1.000 mikrodetik.
Lebih banyak servos
Untuk menggunakan lebih dari satu servo, kita perlu mendeklarasikan beberapa objek servo, melampirkan pin yang berbeda untuk masing-masing, dan menangani setiap servo secara individual. Pertama, kita perlu mendeklarasikan objek servo — sebanyak yang kita butuhkan:
// Buat objek servo Servo Servo1, Servo2, Servo3;
Maka kita perlu melampirkan setiap objek ke satu motor servo. Ingat, setiap motor servo menggunakan pin individual:
Servo1.attach (servoPin1); Servo2.attach (servoPin2); Servo3.attach (servoPin3);
Pada akhirnya, kita hanya perlu menangani setiap objek servo secara individual:
Servo1.write (0); // Atur Servo 1 ke 0 derajat Servo2.write (90); // Atur Servo 2 hingga 90 derajat
Dari segi koneksi, alasan dari servos menuju ke GND pada Arduino, daya servo ke 5V atau VIN (tergantung pada input daya), dan pada akhirnya, setiap jalur sinyal harus terhubung ke pin digital yang berbeda. Berlawanan dengan kepercayaan umum, servos tidak perlu dikontrol oleh pin PWM — pin digital apa pun akan berfungsi.
Servo rotasi kontinu
Ada jenis khusus servos yang berlabel servos rotasi kontinu . Sementara servo normal pergi ke posisi tertentu tergantung pada sinyal input, servo rotasi kontinu baik berputar searah jarum jam atau berlawanan arah jarum jam pada kecepatan yang sebanding dengan sinyal. Misalnya, fungsi Servo1.write (0) akan membuat servomotor berputar berlawanan arah jarum jam dengan kecepatan penuh. Fungsi Servo1.write (90) akan menghentikan motor dan Servo1.write (180) akan memutar motor searah jarum jam dengan kecepatan penuh.
Ada beberapa kegunaan untuk servos tersebut; Namun, mereka sangat lambat. Jika Anda sedang membangun microwave dan membutuhkan motor untuk menghidupkan makanan, ini adalah pilihan Anda. Tapi hati-hati, gelombang mikro berbahaya!
Langkah 5: Lihat Lebih Banyak
Topik lainnya mengenai motor seperti brushless, driver transistor atau kontrol kecepatan motor dapat ditemukan di Arduino Development Cookbook saya yang tersedia di sini. : D