Mahir Arduino Sketch dan Elektro secara praktek

24 - Servo Control

Pada proyek ini adalah pengenalan bagaiman mengatur 1 servo menggunaka potentiometer. (Baca juga Artikel :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