0% found this document useful (0 votes)
69 views14 pages

Adafruit Arduino Lesson 14 Servo Motors - En.id

sistem sensor dan aktuator

Uploaded by

Habibul Chair
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
69 views14 pages

Adafruit Arduino Lesson 14 Servo Motors - En.id

sistem sensor dan aktuator

Uploaded by

Habibul Chair
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 14

Pelajaran Arduino 14.

Servo Motors
Dibuat oleh Simon Monk

Terakhir diperbarui pada 2013/06/11 20:16:06 EDT


Isi panduan

Panduan Isi Ikhtisar 2

Bagian 3

bagian 4

Qty 4

The Breadboard Tata Letak untuk 'Sapu' Jika Servo 6

bertingkah Arduino Kode untuk 'Sapu' The 78

Breadboard Tata Letak untuk 'Knob' Arduino Kode 10

untuk 'Knob' Servo Motors Di dalam Servo Hal Lain 11

yang Dapat Dilakukan 12

13

14

© Adafruit Industries http://learn.adafruit.com/adafruit-arduino-lesson-14-servo-motors Halaman 2 dari 14


Ikhtisar

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.

© Adafruit Industries http://learn.adafruit.com/adafruit-arduino-lesson-14-servo-motors Halaman 3 dari 14


bagian

Untuk membangun proyek-proyek yang dijelaskan dalam pelajaran ini, Anda akan perlu bagian-bagian berikut.

Bagian qty

Motor servo 1

10 kΩ variable resistor (pot) 1

© Adafruit Industries http://learn.adafruit.com/adafruit-arduino-lesson-14-servo-motors Page 4 of 14


Half-size Breadboard 1

Arduino Uno R3 1

Jumper wire pack 1

100 µF capacitor Optional

© Adafruit Industries http://learn.adafruit.com/adafruit-arduino-lesson-14-servo-motors Page 5 of 14


The Breadboard Layout for 'Sweep'

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.

© Adafruit Industries http://learn.adafruit.com/adafruit-arduino-lesson-14-servo-motors Page 6 of 14


If the Servo Misbehaves

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.

© Adafruit Industries http://learn.adafruit.com/adafruit-arduino-lesson-14-servo-motors Page 7 of 14


Arduino Code for 'Sweep'

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 ;

int sudut = 0 ; // posisi servo dalam derajat

kosong mempersiapkan () { servo . melampirkan ( servoPin

); }

kosong putaran () { // memindai 0-180 derajat

untuk ( sudut = 0 ; sudut < 180 ; sudut ++) { servo . menulis ( sudut

);
menunda ( 15 ); } // sekarang memindai kembali 180-0 derajat

untuk ( sudut = 180 ; sudut > 0 ; sudut -) { servo . menulis ( sudut

);
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:

© Adafruit Industries http://learn.adafruit.com/adafruit-arduino-lesson-14-servo-motors Halaman 8 dari 14


# memasukkan <Servo.h>

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:

servo . melampirkan ( servoPin );

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:

servo . menulis ( sudut );

memberitahu servo untuk memperbarui posisinya ke sudut disediakan sebagai parameter.

© Adafruit Industries http://learn.adafruit.com/adafruit-arduino-lesson-14-servo-motors Halaman 9 dari 14


The Breadboard Tata Letak untuk 'Knob'

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.

© Adafruit Industries http://learn.adafruit.com/adafruit-arduino-lesson-14-servo-motors Halaman 10 dari 14


Kode Arduino untuk 'Knob'

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 ;

kosong mempersiapkan () { servo . melampirkan ( servoPin

); }

kosong putaran () { int bacaan = analogRead ( potPin );

// 0-1023
int sudut = bacaan / 6 ; // 0-180-ish
servo . menulis ( sudut ); }

Sekarang ada variabel kedua disebut 'potPin'.

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.

© Adafruit Industries http://learn.adafruit.com/adafruit-arduino-lesson-14-servo-motors Halaman 11 dari 14


servo Motors

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.

© Adafruit Industries http://learn.adafruit.com/adafruit-arduino-lesson-14-servo-motors Halaman 12 dari 14


Di dalam Servo sebuah

Video pendek berikut menunjukkan apa yang terjadi di dalam servo.

Hati-hati meskipun, jika Anda membongkar servo Anda seperti ini, ada kesempatan baik bahwa itu tidak akan kembali bersama-sama
benar.

© Adafruit Industries http://learn.adafruit.com/adafruit-arduino-lesson-14-servo-motors Halaman 13 dari 14


Hal lain yang Dapat Dilakukan

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

Pemrograman Raspberry Pi (http://adafru.it/aM5) .

© Adafruit Industries Terakhir Diperbarui: 2013/06/11 20:16:07 EDT Halaman 14 dari 14

You might also like