Proyek 19 – Servo Control

Pada lesson ini, proyek akan menggunakan servo control dan cara mengatur 1 servo menggunakan potentiometer.

Komponen

  • Standard RC Servo
  • Rotary Potentiometer
  • 220 ohm resistor

Skema

Proyek Arduino Servo Control

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 Sketch

Pertama include library pendukung untuk mengatur servo

#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 untuk mengatur pin yang digunakan. Pada sketch digunakan satu parameter saja, yaitu pin. Perintah attach bisa menerima 3 parameter, pin, sudut minimum (0 derajat) (default adalah 544), dan sudut maksimum (180 derajat) (default adalah 2400).

Untuk kebutuhan umum, cukup menggunakan 1 parameter saja, yaitu parameter pin.

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 input dari potentiometer pada jangkauan 0 -180, dimana akan mengubah sudut dari lengan servo.

angle=map(angle, 0, 1023, 0, 180);

Setelah diketahui nilai sudut, perintahkan servo untuk mengubah lengannya ke sudut tersebut.

servo1.write(angle); // Write the angle to the servo

Kemudian delay 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.

Sharing is caring: