adafruit arduino lesson 14 servo motors1

13
MODUL 14. Servo Motors Created by Si mon Monk Last updated on 2013-06-11 08:16:06 PM EDT

Upload: sudana-wiyarta

Post on 08-Dec-2015

53 views

Category:

Documents


8 download

DESCRIPTION

Arduino great

TRANSCRIPT

Page 1: Adafruit Arduino Lesson 14 Servo Motors1

MODUL 14. Servo Motors Created by Simon Monk

Last updated on 2013-06-11 08:16:06 PM EDT

Page 2: Adafruit Arduino Lesson 14 Servo Motors1

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

Daftar Isi

Daftar isi 2

Gambaran Umum 3

Parts 4

Part 4

Qty 4

Gambar Breadboard untuk 'Sweep' 6

Jika Servo Berubah 7

Arduino kode untuk 'Sweep' 8

Gambar Breadboard untuk 'Knob' 10

Arduino kode untuk 'Knob' 11

Servo Motors 12

Inside a Servo 13

Other Things to Do 14

Page 3: Adafruit Arduino Lesson 14 Servo Motors1

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

Overview

Dalam pelajaran ini, Anda akan belajar bagaimana mengontrol motor servo

menggunakan Arduino.

Pertama, Anda akan menggunakan servo sweep bolak-balik secara otomatis dan

kemudian Anda akan menambahkan pot untuk mengontrol posisi servo.

Page 4: Adafruit Arduino Lesson 14 Servo Motors1

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

Parts

Untuk membuat proyek yang dijelaskan dalam pelajaran ini, Anda akan

memerlukan peralatan berikut.

Part

Qty

Servo Motor

1

10 kΩ variable resistor (pot)

1

Page 5: Adafruit Arduino Lesson 14 Servo Motors1

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

Page 6: Adafruit Arduino Lesson 14 Servo Motors1

The Breadboard Layout for 'Sweep'

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

Untuk percobaan ini, satu-satunya hal yang terhubung ke Arduino adalah motor

servo.

Servo motor memiliki tiga warna kaki. Warna kaki bervariasi antara motor servo,

tapi ujung merah selalu 5V dan GND berwarna hitam atau coklat. Warna lainnya adalah

kontrol dan ini biasanya berwarna oranye atau kuning. Kaki kontrol ini terhubung ke pin

digital 9.

Servo yang nyaman dihentikan dalam soket di mana kita dapat menggunakan kabel

jumper, untuk menghubungkannya dengan papan breadboard dan kemudian ke Arduino.

Page 7: Adafruit Arduino Lesson 14 Servo Motors1

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

The Breadboard Layout for 'Knob'

Servo Anda mungkin bergerak tak menentu, dan Anda mungkin menemukan bahwa

ini hanya terjadi ketika Arduino dicolokkan ke port USB tertentu. Hal ini terjadi karena

servo menarik cukup banyak power, terutama ketika motor bekerja, dan permintaan yang

tinggi ini bisa cukup untuk membuat drop tegangan pada papan Arduino, sehingga me-

reset sendiri.

Jika ini terjadi, maka Anda biasanya dapat diperbaiki dengan menambahkan sebuah

kapasitor bernilai tinggi (470uF atau lebih) antara GND dan 5V pada papan breadboard.

Kapasitor bertindak sebagai reservoir listrik untuk motor untuk digunakan, sehingga

ketika mulai, dibutuhkan biaya dari kapasitor serta pasokan Arduino.

Semakin panjang kaki kapasitor adalah kaki positif dan ini harus terhubung ke 5V.

Kaki negatif juga sering ditandai dengan symbol '-'.

Page 8: Adafruit Arduino Lesson 14 Servo Motors1

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

The Breadboard Layout for 'Knob'

Masukkan kode program berikut ke Arduino Anda. Anda harus mengetahui bahwa

servo mulai mengubah arah pertama dalam satu arah dan kemudian kembali ke arah yang

lain..

Kode ini didasarkan pada standar 'sweep' kode yang dapat Anda temukan dalam

contoh-contoh Arduino di bawah folder 'servo'. Jika anda lebih suka anda dapat

mengunakan kode itu.

/*

Adafruit Arduino - Lesson 14. Sweep

*/

#inc lude <Servo.h>

int servoPin = 9;

Servo servo;

int angle = 0; // servo position in degrees

void setup()

{

servo.attac h(servoPin);

}

void loop()

{

// sc an from 0 to 180 degrees

for(angle = 0; angle < 180; angle++)

{

servo.write(angle);

delay(15);

}

// now sc an bac k from 180 to 0 degrees

for(angle = 180; angle > 0; angle--)

{

servo.write(angle);

delay(15);

}

}

Motor servo dikendalikan oleh serangkaian pulsa dan membuatnya mudah untuk

menggunakannya, library Arduino telah dibuat sehingga Anda hanya dapat menginstruksi

Servo untuk beralih ke sudut tertentu.

Page 9: Adafruit Arduino Lesson 14 Servo Motors1

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

The Breadboard Layout for 'Knob'

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 library. Jika Anda akan menggunakan perintah di library servo, Anda

perlu memberitahu IDE Arduino yang Anda gunakan library dengan perintah ini:

#inc lude <Servo.h>

Seperti biasa, kita kemudian menggunakan 'servoPin' variabel untuk menentukan

pin yang mengontrol servo..

Baris ini:

Servo servo;

Mendefinisikan variabel 'servo' baru tipe 'Servo'. Library telah memberikan kita

dengan jenis baru, seperti 'int' atau 'float' yang mewakili servo. Anda benar-benar dapat

membuat hingga delapan servos dengan cara ini, jadi jika kita memiliki dua servos, maka

kita bisa menulis sesuatu seperti ini:

Servo servo1;

Servo servo2;

Dalam 'setup' fungsi kita perlu menghubungkan 'servo' variabel ke pin yang akan

mengontrol servo menggunakan perintah ini:

servo.attac h(servoPin);

Variabel 'angle' digunakan untuk menampung sudut saat ini servo dalam derajat.

Dalam fungsi 'loop', kita menggunakan dua 'for' loop untuk pertama meningkatkan sudut

dalam satu arah dan kemudian kembali yang lain ketika sampai 180 derajat.

The command:

servo.write(angle);

Memberitahu servo untuk memperbarui posisinya ke sudut disediakan sebagai parameter.

Page 10: Adafruit Arduino Lesson 14 Servo Motors1

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

The Breadboard Layout for 'Knob'

Langkah selanjutnya kami adalah untuk menambahkan pot sehingga kita dapat

mengontrol posisi servo dengan memutar tombol.

Anda hanya perlu menambahkan pot dan kaki dari slider untuk A0 pada Arduino.

Page 11: Adafruit Arduino Lesson 14 Servo Motors1

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

Arduino Code for 'Knob'

Kode untuk membuat servo mengikuti posisi knob sederhana daripada untuk

membuatnya sweep .

/*

Adafruit Arduino - Lesson 14. Knob

*/

#inc lude <Servo.h>

int potPin = 0;

int servoPin = 9;

Servo servo;

void setup()

{

servo.attac h(servoPin);

}

void loop()

{

int reading = analogRead(potPin); // 0 to 1023

int angle = reading / 6; // 0 to 180-ish

servo.write(angle);

}

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 bisa 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.

Page 12: Adafruit Arduino Lesson 14 Servo Motors1

Other Things to Do

© Adafruit Industries Last Updated: 2013-06-11 08:16:07 PM EDT Page 14 of 14

Posisi motor servo diatur oleh panjang pulsa. Servo mengharapkan untuk menerima

pulsa kira-kira setiap 20 milidetik. Jika denyut nadi yang tinggi untuk 1 milidetik, maka

sudut servo akan menjadi nol, jika 1,5 milidetik, maka akan di posisi tengah dan jika 2

milidetik itu akan berada di 180 derajat.

Poin akhir servo dapat bervariasi dan banyak servos hanya mengaktifkan melalui

sekitar 170 derajat. Anda juga dapat membeli servos 'terus menerus' yang dapat memutar

melalui penuh 360 derajat. Berikut video singkat 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.

Buka 'sweep’ sketsa dan mencoba mengurangi penundaan dari 15 milidetik untuk

mengatakan 5 milidetik. Perhatikan bagaimana jauh lebih cepat servo berubah.

Cobalah memodifikasi 'knob' sketsa sehingga alih-alih mengambil sudut servo dari posisi

knob, dibutuhkan dari Monitor Serial, sehingga Anda dapat mengontrol servo dari

komputerAnda.

Page 13: Adafruit Arduino Lesson 14 Servo Motors1

Other Things to Do

© Adafruit Industries Last Updated: 2013-06-11 08:16:07 PM EDT Page 14 of 14

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 berhubungan dengan Open Source

Hardware.

The following books written by Simon are available from Adafruit: Programming

Arduino (http://adafru.it/1019), 30 Arduino Projects for the Evil Genius (http://adafru.it/868) and

Programming the Raspberry Pi (http://adafru.it/aM5).