Mahir Arduino Sketch dan Elektro secara praktek

26 - Motor Shield

Pada proyek kali ini akan menggunakan motor shield untuk mengatur 2 motor secara terpisah. Disini kita akan belajar mengatur kecepatan dan arah masing-masing motor. Lalu akan kita aplikasikan untuk mengatur gerak 2-wheel robot.

Komponen

  • Motor Shield
  • 2 x DC Motor atau 2 wheel robot base (lihat gambar berikut)
  • Battery Pack

gambar 1 - two wheeled robot base



Skema
Pada proyek kali ini tidak ada skema rumit, lebih ke plug and play. Pasangkan motor shield pada arduino. Dan hubungkan kabel dari DC motor dari robot base.

Perhatian, gunakan daya eksternal untuk motor shield dan motor (jangan diambil dari Arduino board).

Pada contoh proyek ini, digunakan official Arduino motor shield yang dirancang untuk mengendalikan 2 motor. Banyak shield lainnya, seperti dari Adafruit yang disertai library yang bangus (AFMotor.h). Jika Anda menggunakan produk shield lain, kode/sketch pada proyek ini harus diubah sesuai dengan library yang tersedia.

Sketch

#define QUARTER_SPEED 64 
#define HALF_SPEED 128 
#define FULL_SPEED 255 
// Set the pins for speed and direction of each motor 
int speed1 = 3; 
int speed2 = 11; 
int direction1 = 12; 
int direction2 = 13; 

void stopMotor() {   
  // turn both motors off   
  analogWrite(speed1, 0);   
  analogWrite(speed2, 0); 


void setup(){   
  // set all the pins to outputs   
  pinMode(speed1, OUTPUT);   
  pinMode(speed2, OUTPUT);   
  pinMode(direction1, OUTPUT);   
  pinMode(direction2, OUTPUT); 
}  


void loop(){   
  // Both motors forward at 50% speed for 2 seconds   
  digitalWrite(direction1, HIGH);   
  digitalWrite(direction2, HIGH);   
  analogWrite(speed1, HALF_SPEED);   
  analogWrite(speed2, HALF_SPEED);   

  delay(2000);   
  stopMotor(); 
  delay(1000); 

  // Left turn for 1 second   
  digitalWrite(direction1, LOW);   
  digitalWrite(direction2, HIGH);   
  analogWrite(speed1, HALF_SPEED);   
  analogWrite(speed2, HALF_SPEED);   

  delay(1000);   
  stopMotor(); 
  delay(1000); 

  // Both motors forward at 50% speed for 2 seconds   
  digitalWrite(direction1, HIGH);   
  digitalWrite(direction2, HIGH);   
  analogWrite(speed1, HALF_SPEED);   
  analogWrite(speed2, HALF_SPEED);   

  delay(2000);   
  stopMotor(); 
  delay(1000); 

  // rotate right at 25% speed   
  digitalWrite(direction1, HIGH);   
  digitalWrite(direction2, LOW);   
  analogWrite(speed1, QUARTER_SPEED);   
  analogWrite(speed2, QUARTER_SPEED);   

  delay(2000);   
  stopMotor(); 
  delay(1000); 
}

Penjelasan Kode
Sketch diatas sudah cukup jelas dan tidak terlampau rumit.  Semoga bermanfaat.

Related article
Artikel sebelumnya: Basic Stepper Control

No comments:

Post a Comment