Sabtu, 10 Juni 2017

Kontrol Servo Dengan Arduino

Motor servo adalah sebuah motor dengan sistem umpan balik tertutup dimana posisi dari motor akan diinformasikan kembali ke rangkaian kontrol yang ada di dalam motor servo. Motor ini terdiri dari sebuah motor DC, serangkaian gear, potensiometer dan rangkaian kontrol. Potensiometer berfungsi untuk menentukan batas sudut dari putaran servo. Sedangkan sudut dari sumbu motor servo diatur berdasarkan lebar pulsa yang dikirim melalui kaki sinyal dari kabel motor. 

Secara umum terdapat 2 jenis motor servo. Yaitu motor servo standard dan motor servo Continous. Servo motor tipe standar hanya mampu berputar 180 derajat. Motor servo standard sering dipakai pada sistim robotika misalnya untuk membuat " Robot Arm" ( Robot Lengan ). sedangkan Servo motor continuous dapat berputar sebesar 360 derajat. motor servo Continous sering dipakai untuk Mobile Robot. Pada badan servo tertulis tipe servo yang bersangkutan. Motor servo standar yang kali ini dipakai memiliki 3 buah kabel yaitu, power, ground dan signal.


  • Kabel warna merah merupakan kabel power yang berfungsi untuk mengkoneksikan dengan tegangan 5V pada board arduino. 
  • Kabel yang berwarna coklat/hitam merupakan kabel ground yang nantinya akan dihubungkan dengan ground yang ada pada board arduino. 
  • Kabel kuning yang merupakan kabel pin signal servo yang akan dihubungkan dengan pin 9 pada board arduino. 
Alat dan Bahan

  • Arduino Uno
  • Servo
  • Kabel Jumper

Gambar Rangkaian




Sourcecode


/** Workshop Dasar Mikrokontroler
2014 RADE - Robotics AnD Embedded Systems STMIK STIKOM Bali 
**/
#include  
// membuat nama objek servo untuk pengontrolan servo 
Servo myservo;          
// variable untuk menyimpan posisi servo 
int pos = 0;            
void setup() 
{ 
 // objek servo diletakan pada pin 9 
 myservo.attach(9);     
} 
void loop() 
{ 
 // start dari 0 derajar sampai 180 derajat 
 for(pos = 0; pos < 180; pos += 1)  
 {
  // pada posisi 1 derajat
  // memberitahu servo untuk pergi ke posisi  'pos'
  myservo.write(pos);
  // tunggu 15ms untuk pencapaian  posisi servo    
  delay(15);                  
 } 
 // start dari 180 derajat ke 0 derajat 
 for(pos = 180; pos>=1; pos-=1)  
 {
  // memberitahu servo untuk pergi ke posisi  'pos'                                
  myservo.write(pos);                 
  // tunggu 15ms untuk pencapaian  posisi servo    
  delay(15);                        
 }
}

Tidak ada komentar:

Posting Komentar