Adafruit Arduino Lesson 14 Servo Motors - En.id
Adafruit Arduino Lesson 14 Servo Motors - En.id
Servo Motors
Dibuat oleh Simon Monk
Bagian 3
bagian 4
Qty 4
13
14
Dalam pelajaran ini, Anda akan belajar bagaimana mengendalikan motor servo menggunakan Arduino.
Pertama, Anda akan mendapatkan servo untuk menyapu bolak-balik secara otomatis dan kemudian Anda akan menambahkan pot untuk
mengontrol posisi servo.
Untuk membangun proyek-proyek yang dijelaskan dalam pelajaran ini, Anda akan perlu bagian-bagian berikut.
Bagian qty
Motor servo 1
Arduino Uno R3 1
For this experiment, the only thing connected to the Arduino is the servo motor.
The servo motor has three leads. The color of the leads varies between servo motors, but the red lead is always 5V and GND will either be
black or brown. The other lead is the control lead and this is usually orange or yellow. This control lead is connected to digital pin 9.
The servo is conveniently terminated in a socket into which we can push jumper wires, to link it to the breadboard and then to the Arduino.
Your servo may behave erratically, and you may find that this only happens when the Arduino is plugged into certain USB ports. This is
because the servo draws quite a lot of power, especially as the motor is starting up, and this sudden high demand can be enough to drop the
voltage on the Arduino board, so that it resets itself.
If this happens, then you can usually cure it by adding a high value capacitor (470uF or greater) between GND and 5V on the breadboard.
The capacitor acts as a reservoir of electricity for the motor to use, so that when it starts, it takes charge from the capacitor as well as
the Arduino supply.
The longer lead of the capacitor is the positive lead and this should be connected to 5V. The negative lead is also often marked with a '-'
symbol.
Load up the following sketch onto your Arduino. You should find that the servo immediately begins to turn first in one direction and
then back in the other.
The sketch is based on the standard 'sweep' sketch that you can find in the Arduino Examples under the folder 'servo'. You can if you
prefer just run that sketch.
/*
Adafruit Arduino - Pelajaran 14. Sapu
*/
# memasukkan <Servo.h>
int servoPin = 9 ;
servo servo ;
); }
untuk ( sudut = 0 ; sudut < 180 ; sudut ++) { servo . menulis ( sudut
);
menunda ( 15 ); } // sekarang memindai kembali 180-0 derajat
);
menunda ( 15 ); }}
Servo motors are controlled by a series of pulses and to make it easy to use them, an Arduino library has been created so that you can just
instruct the servo to turn to a particular angle.
Perintah untuk menggunakan servo seperti built-in perintah Arduino, tetapi karena Anda tidak selalu akan menggunakan servo dalam
proyek Anda, mereka disimpan dalam sesuatu yang disebut perpustakaan. Jika Anda akan menggunakan perintah di perpustakaan servo,
Anda perlu memberitahu IDE Arduino yang Anda gunakan perpustakaan dengan perintah ini:
Seperti biasa, kita kemudian menggunakan variabel 'servoPin' untuk menentukan pin yang mengontrol servo.
baris ini:
servo servo ;
mendefinisikan variabel baru 'servo' tipe 'Servo'. perpustakaan telah memberikan kita dengan jenis baru, seperti 'int' atau 'melayang' yang mewakili
servo. Anda benar-benar dapat menentukan hingga delapan servos dengan cara ini, jadi jika kita memiliki dua servos, maka kita bisa menulis
sesuatu seperti ini:
servo servo1 ;
servo servo2 ;
Dalam fungsi 'pengaturan' kita perlu menghubungkan variabel 'servo' ke pin yang akan mengontrol servo menggunakan perintah ini:
Variabel 'angle' digunakan untuk mengandung sudut saat ini servo dalam derajat. Dalam fungsi 'lingkaran', kita menggunakan dua 'untuk'
loop untuk pertama meningkatkan sudut dalam satu arah dan kemudian kembali yang lain ketika sampai ke 180 derajat.
Perintah:
Langkah kami selanjutnya adalah menambahkan pot sehingga kita dapat mengontrol posisi servo dengan memutar tombol.
Anda hanya perlu menambahkan pot dan memimpin dari slider untuk A0 pada Arduino.
Kode untuk membuat servo mengikuti posisi knob adalah sederhana daripada untuk membuatnya menyapu.
/*
Adafruit Arduino - Pelajaran 14. Knob
*/
# memasukkan <Servo.h>
int potPin = 0 ;
int servoPin = 9 ;
servo servo ;
); }
// 0-1023
int sudut = bacaan / 6 ; // 0-180-ish
servo . menulis ( sudut ); }
Untuk mengatur posisi servo, kita mengambil pembacaan analog dari A0. Ini memberi kita nilai antara 0 dan 1023. Sejak servo hanya
dapat memutar melalui 180 derajat, kita perlu skala ini turun. Membaginya dengan enam akan memberi kita sudut antara 0 dan 170,
yang akan baik-baik saja.
Posisi motor servo diatur oleh panjang pulsa. servo mengharapkan untuk menerima pulsa kira-kira setiap 20 milidetik. Jika itu pulsa tinggi
untuk 1 milidetik, maka sudut servo akan menjadi nol, jika 1,5 milidetik, maka akan di posisi tengah dan jika itu adalah 2 milidetik itu akan
berada di 180 derajat.
Akhir poin dari servo dapat bervariasi dan banyak servos hanya mengubah melalui sekitar 170 derajat. Anda juga dapat membeli 'terus
menerus' servos yang dapat memutar melalui penuh 360 derajat.
Hati-hati meskipun, jika Anda membongkar servo Anda seperti ini, ada kesempatan baik bahwa itu tidak akan kembali bersama-sama
benar.
Buka 'menyapu' sketsa dan mencoba mengurangi penundaan dari 15 milidetik untuk mengatakan 5 milidetik. Perhatikan
bagaimana jauh lebih cepat servo berubah.
Cobalah memodifikasi 'tombol' sketsa sehingga alih-alih mengambil sudut servo dari posisi kenop, dibutuhkan dari Monitor Serial,
sehingga Anda dapat mengontrol servo dari komputer Anda.
Petunjuk: untuk membuat sketsa Anda membaca jumlah derajat dari Monitor Serial, Anda dapat menggunakan fungsi Serial.parseInt (). Ini
membaca nomor dari Monitor Serial.
tentang Penulis
Simon Monk adalah penulis sejumlah buku yang berkaitan dengan Open Source Hardware. Buku-buku berikut ditulis oleh Simon tersedia
dari Adafruit: Pemrograman Arduino (http://adafru.it/1019) . 30 Proyek Arduino untuk Evil Genius (http://adafru.it/868) dan