Pada proyek ini adalah pengenalan bagaiman mengatur 1 servo menggunaka potentiometer. (Baca juga Artikel :Pengenalan Servo Control)
Komponen
Skema
Sketch
#include <Servo.h>
Servo servo1;
void setup(){
servo1.attach(5);
}
void loop(){
int angle = analogRead(0); // Read the pot value
angle=map(angle, 0, 1023, 0, 180);
servo1.write(angle); // Write the angle to the servo
delay(15); // Delay of 15ms to allow servo to reach position
}
Pembahasan Kode
Pertama kita include library yang digunakan
#include <Servo.h>
Kemudian deklarasi objek servo:
Servo servo1; // Create a servo object
Pada fungsi loop, attach servo1 pada pin 5
servo1.attach(5);
Perintah attach digunakan objek servo untuk mengatur pin yang digunakan. Pada proyek digunakan 1 parameter saja, yaitu pin. Namun perintah attach bisa menerima 3 parameter, yaitu, parameter pertama adalah pin, parameter kedua adalah sudut minimum (0 derajat) (default adalah 544), parameter adalah sudut maksimum (180 derajat) (default adalah 2400).
Untuk kebutuhan umum, cukup menggunakan 1 parameter saja, yaitu parameter pin.
Kita dapat menghubungkan 12 servo pada Arduino Duemilanove (atau sejenis) dan hingga 48 servos pada Arduino Mega—cocok untuk aplikasi robotik.
Perhatian
Library ini mendisable fungsi analogWrite (PWM) function pada pin 9 dan 10. Pada Arduino Mega kita dapat menggunakan 12 motors tanpa menginterfensi fungsi PWM.
Pada main loop, baca nilai analog dari potentiometer yang terhubung ke pin analog 0.
int angle = analogRead(0); // Read the pot value
Petakan nilai bacaan dari potentiometer pada jangkauan 0 -180, dimana akan mengubah sudut dari lengan servo.
angle=map(angle, 0, 1023, 0, 180);
Setelah diketahui nilai sudut, kita perintahkan servo untuk mengubah lengannya ke sudut tersebut
servo1.write(angle); // Write the angle to the servo
Kemudian beri waktu 15 ms untuk memberi waktu bagi servo menggerakan keposisi yang diperintahkan.
delay(15); // Delay of 15ms to allow servo to reach position
Sebagai tambahan, kita dapat menggunakan perintah detach() servo dari pin, hingga pin dapat untuk keperluan lainnya. Atau kita juga bisa menggunakan perintah read() untuk membaca sudut saat ini.
Untuk lebih lanjut mengenai library servo, bisa dibaca di http://arduino.cc/en/Reference/Servo.
Nah, semoga artikel pengenalan servo ini bermanfaat. Selamat berkreasi.
Artikel Sebelumnya : Display Suhu
Artikel Berkaitan Pengenalan Servo Control
Komponen
- Standard RC Servo
- Rotary Potentiometer
- 220 ohm resistor
Skema
Sketch
#include <Servo.h>
Servo servo1;
void setup(){
servo1.attach(5);
}
void loop(){
int angle = analogRead(0); // Read the pot value
angle=map(angle, 0, 1023, 0, 180);
servo1.write(angle); // Write the angle to the servo
delay(15); // Delay of 15ms to allow servo to reach position
}
Pembahasan Kode
Pertama kita include library yang digunakan
#include <Servo.h>
Kemudian deklarasi objek servo:
Servo servo1; // Create a servo object
Pada fungsi loop, attach servo1 pada pin 5
servo1.attach(5);
Perintah attach digunakan objek servo untuk mengatur pin yang digunakan. Pada proyek digunakan 1 parameter saja, yaitu pin. Namun perintah attach bisa menerima 3 parameter, yaitu, parameter pertama adalah pin, parameter kedua adalah sudut minimum (0 derajat) (default adalah 544), parameter adalah sudut maksimum (180 derajat) (default adalah 2400).
Untuk kebutuhan umum, cukup menggunakan 1 parameter saja, yaitu parameter pin.
Kita dapat menghubungkan 12 servo pada Arduino Duemilanove (atau sejenis) dan hingga 48 servos pada Arduino Mega—cocok untuk aplikasi robotik.
Perhatian
Library ini mendisable fungsi analogWrite (PWM) function pada pin 9 dan 10. Pada Arduino Mega kita dapat menggunakan 12 motors tanpa menginterfensi fungsi PWM.
Pada main loop, baca nilai analog dari potentiometer yang terhubung ke pin analog 0.
int angle = analogRead(0); // Read the pot value
Petakan nilai bacaan dari potentiometer pada jangkauan 0 -180, dimana akan mengubah sudut dari lengan servo.
angle=map(angle, 0, 1023, 0, 180);
Setelah diketahui nilai sudut, kita perintahkan servo untuk mengubah lengannya ke sudut tersebut
servo1.write(angle); // Write the angle to the servo
Kemudian beri waktu 15 ms untuk memberi waktu bagi servo menggerakan keposisi yang diperintahkan.
delay(15); // Delay of 15ms to allow servo to reach position
Sebagai tambahan, kita dapat menggunakan perintah detach() servo dari pin, hingga pin dapat untuk keperluan lainnya. Atau kita juga bisa menggunakan perintah read() untuk membaca sudut saat ini.
Untuk lebih lanjut mengenai library servo, bisa dibaca di http://arduino.cc/en/Reference/Servo.
Nah, semoga artikel pengenalan servo ini bermanfaat. Selamat berkreasi.
Artikel Sebelumnya : Display Suhu
Artikel Berkaitan Pengenalan Servo Control
No comments:
Post a Comment