Sabtu, 23 April 2016

Belajar Servo

Pada kesempatan yang baik ini marilah kita berlatih Mikrokontroller Arduina dengan motor servo 180 derajat. Bahan yang kita butuhkan adalah :


1. Mikrokontroller Arduino
2. Motor Servo 180


 Motor Servo yg digunakan kebetulan towerpro MG995 yang mempunyai 3 kabel dengan 3 warna yang berbeda untuk pedomannya adalah seperti gambar di bawah ini :


Hubungkanlah Motor servo dengan mikrokontroller Arduino dengan susunan seperti keterangan di bawah ini :

* Kaki Servo warna Oranye dihubungkan dengan kaki Arduino no 9
 * Kaki Servo warna Merah dihubungkan dengan kaki Arduino 5 Volt
* Kaki Servo warna Hitam dihubungkan dengan kaki Arduino Ground
Sebagai catatan untuk yang baru belajar Mikrokontroller Arduino Bahwa kabel servo warna oranye tidak harus dihubungkan dengan kaki Arduino nomor 9, bisa juga dihubungkan dengan kaki yang lain dengan catatan pada listing programnya disesuaikan.




Bukalah contoh program yang tersedia di ide arduino. Klik file-examples-servo-sweep
listing programnya adalah seperti di bawah ini...

************************************************************************

/* Sweep
 by BARRAGAN <http://barraganstudio.com>
 This example code is in the public domain.

 modified 8 Nov 2013
 by Scott Fitzgerald
 http://arduino.cc/en/Tutorial/Sweep
*/

#include <Servo.h>

Servo myservo;  // create servo object to control a servo
                // twelve servo objects can be created on most boards

int pos = 0;    // variable to store the servo position

void setup()
{
  myservo.attach(9);  // attaches the servo on pin 9 to the servo object
}

void loop()
{
  for(pos = 0; pos <= 180; pos += 1) // goes from 0 degrees to 180 degrees
  {                                  // in steps of 1 degree
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
    delay(15);                       // waits 15ms for the servo to reach the position
  }
  for(pos = 180; pos>=0; pos-=1)     // goes from 180 degrees to 0 degrees
  {                               
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
    delay(15);                       // waits 15ms for the servo to reach the position
  }
}


************************************************************************



Setelah dicoba didownload ke mikrokontroller arduino ternyata hasilnya adalah motor servo berputar 180 derajat kekanan dan kekiri. terus menerus.  inilah latihan dasar servo yang akan kita kembangkan.
sekarang listing programnya akan dirubah seperti dibawah ini


************************************************************************

#include <Servo.h>

Servo myservo;  // create servo object to control a servo
                // twelve servo objects can be created on most boards

int pos = 0;    // variable to store the servo position

void setup()
{
  myservo.attach(9);  // attaches the servo on pin 9 to the servo object

  for(pos = 0; pos <= 180; pos += 1) // goes from 0 degrees to 180 degrees
  {                                  // in steps of 1 degree
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
    delay(15);                       // waits 15ms for the servo to reach the position
  }
  for(pos = 180; pos>=0; pos-=1)     // goes from 180 degrees to 0 degrees
  {                               
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
    delay(15);                       // waits 15ms for the servo to reach the position
  }
}

void loop()
{

}

************************************************************************
Perubahan listing programnya sangat sederhana, baris program yang ada di loop dipindah ke bagian setup. ini mengakibatkan baris program hanya akan dilaksanakan satu kali saja dan tidak akan berulang ulang dan hasilnya adalah motor akan berputar dari 0 derajat ke 180 derajat kemudian akan kembali lagi ke 0 derajat dan akhirnya diam.

Nah marilah sekarang kita berlatih menggerakan motor servo dengan saklar digital bila rekan rekan belum belajar Mikrokontroller Arduino dengan saklar digital ada baiknya kunjungi sejenak blog dengan link di bawah ini  untuk mempelajari saklar digital.


Arduino dan Saklar digital

Jika rekan rekan sudah siap marilah kita lanjutkan dengan menambahkan dua rangkaian saklar digital yang nantinya akan digunakan untuk menggerakan servo searah jarum jam dan saklar yang satunya lagi menggerakkan servo berlawanan arah jarum jam

Rangkaiannya adalah seperti gambar di bawah ini yaa



Program yang akan kita coba adalah pengembanngan dari program di atas. perhatikan listing program di bawah ini dan bandingkan dengan yang di atas dan coba pelajari bagaimana perbedaannya
************************************************************************
 #include <Servo.h>

Servo myservo;  // create servo object to control a servo
                // twelve servo objects can be created on most boards

int pos = 0;    // variable to store the servo position
int n;
void setup()
{
pinMode(22,INPUT);
pinMode(26,INPUT);
  myservo.attach(9);  // attaches the servo on pin 9 to the servo object
  for(pos = 0; pos <= 180; pos += 1) // goes from 0 degrees to 180 degrees
  {                                  // in steps of 1 degree
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
    delay(15);                       // waits 15ms for the servo to reach the position
  }
  for(pos = 180; pos>=0; pos-=1)     // goes from 180 degrees to 0 degrees
  {                              
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
    delay(15);                       // waits 15ms for the servo to reach the position
  }
delay(2215);}

void loop()
{
if (digitalRead(22)==1) {
    myservo.write(n); n+=1;           
    delay(25);   if(n>179) n=179;                  
}
if (digitalRead(26)==1) {
    myservo.write(n); n-=1;           
    delay(25);   if(n<0) n=0;                  
}}

************************************************************************
Setelah di upload programnya coba tekan saklar tekannya dan perhatikan apa yang terjadi pada motor servo. yaaaa ... biasanya motor servo di gerakan dengan potensiometer, tetapi dalam latihan kali ini. kakang mengajak rekan rekan untuk belajar servo dengan cara dikendalikan melalui saklar tekan.
Bersambung Ke latihan Berikutnya





Tidak ada komentar:

Posting Komentar