Sunday, March 11, 2012

Motorshield ElMarino mengendalikan motor DC

Mengendalikan Motor DC pada Arduino/mikrokontroler diperlukan driver/penguat (karena maksimum beban arus yang dapat 'ditangani' oleh Arduino/mikrokontroler terbatas, yaitu sekitar 40mA), solusinya adalah menggunakan Motorshield.
Motorshield  Elmarino dirangkai  dengan menggunakan IC L298 yang dapat menangani beban maksimum 2A (Data sheet menunjukan Peak Current 4A), Motorshield ini dapat mengatur 2 motor DC (tiap motor dpt diatur fwd,backward,stop), pada Arduino hanya membutuhkan 3 pin kendali saja dan kecepatan bisa diatur dengan sinyal PWM, selain itu Motorshield ini dapat juga digunakan untuk mengatur gerakan stepper motor dan Servo Motor.
Satu hal lagi keunggulan Motorshield Elmarino sudah merupakan shield untuk Arduino (Severino/ Duemilanove/ UNO) pin-pin kaki (default) yang digunakan adalah 9,10,11. 

Motorshield Elmarino 

Contoh Aplikasi Elmarino Motorshield untuk mengendalikan 2 motor DC dengan (Arduino) Severino:
1.Rakit 2 motor DC sebagai penggerak roda mobil/tank
2.Pasang Board (Arduino) Severino
 3.Pasang MotorShield Elmarino ke Severino
4.Hasil Instalasi Motorshield pada (Arduino) Severino
 
 5.Hubungkan terminal-terminal motor ke Terminal Block Motor A dan B pada Motorshield Elmarino
 6.Hubungkan Sumber tegangan ke Severino,Motorshield Elmarino dan Motor
 7.Program Severino dengan IDE Arduino melalui komunikasi Serial (saat pemrograman,hubungan
    sumber tegangan untuk Motor di LEPAS)

Contoh Program:


/*
 Kendali 2 motor DC dengan Motorshield Elmarino
 Pin  9  Enable/Disable
         sinyal PWM akan mengatur kecepatan putaran
         0 Stop - 255 kecepatan maksimum
 
 Pin 10 Motor B -> HIGH=Forward, LOW=Backward
 Pin 11 Motor A -> HIGH=Forward, LOW=Backward 
 Oleh : Aan Darmawan
 Blog : http://valfa.blogspot.com
 Date : 10 Maret 2011  */

void maju(int kecepatan){
  digitalWrite(10,HIGH);
  digitalWrite(11,HIGH);     
  analogWrite(9,kecepatan);
}

void mundur(int kecepatan){
  digitalWrite(10,LOW);
  digitalWrite(11,LOW);     
  analogWrite(9,kecepatan);
}

void henti(void){
  analogWrite(9,0);
}

void putarkiri(int kecepatan){
  digitalWrite(10,HIGH);
  digitalWrite(11,LOW);     
  analogWrite(9,kecepatan);
}

void putarkanan(int kecepatan){
  digitalWrite(10,LOW);
  digitalWrite(11,HIGH);     
  analogWrite(9,kecepatan);
}

void setup() {        
  //Serial.begin(9600);  
  pinMode(10,OUTPUT);  // Kendali Motor A
  pinMode(11,OUTPUT);  // Kendali Motor B
  pinMode(9,OUTPUT);  // Enable Motor (PWM ->Speed)
  delay(1000);
}
int n;
// main program 
void loop() {
  // maju 2 detik
  maju(255); //kecepatan penuh
  delay(2000);
  henti();
  delay(300);
  // mundur 2 detik
  mundur(255); //kecepatan penuh
  delay(2000);
  henti();
  delay(300);
  // putar kiri
  putarkiri(155);  //kecepatan ~60% 
  delay(2000);
  henti();
  delay(300);
  // putar kanan
  putarkanan(155);  //kecepatan ~60% 
  delay(2000);
  henti();
  delay(300);
} 
 
Video Hasil Uji:






10 comments:

Yoko said...

Pak pak...

itu yg biru biru ada baut nya namanya apa..?? trus buat apa?

Aan Darmawan H said...

Terminal Block...untuk di hubungkan ke Motor DC dan sumber tegangan...lihat penjelasan contoh di atas.....

Franzy said...

kenapa ga pake sambungan pin aja pak..??

Aan Darmawan H said...

Berdasarkan pengalaman (umumnya), motor DC ujung kabelnya 'polos' (ga ada female pin header),alasan lain untuk motor DC yang berdaya besar kadang diameter kabelnya cukup besar sehingga sulit dipasang female pin header... jadi agar pemakai mudah menghubungkan kabel motornya,ga usah repot memasang female pin header pada ujung kabel motornya,disediakan koneksinya melalui terminal block,jadi tinggal sekrup aja.... (Kalau dalam 'demo foto' sih kebetulan saja motor DC nya sudah ada female pin header yang notabene saya pasang sendiri, jadi 'terpaksa' saya sambung pin header ke terminal block nya.....)

andy said...

pak saya butuh yang 10A, apakah ada?

Aan Darmawan H said...

Harus Pesan khusus Pa Andy.... PM aja ke valfa007@gmail.com
Trims...

Franzy said...

Pak mau tanya... itu yang pin 9 yang buat ngatur kecepatan disambung ke motor shield nya di sebelah mana ya?

Aan Darmawan H said...

Kalau motorshield ElMarino yang versi ini sudah disambungkan dari rangkaian PCB nya (supaya lebih praktis), jadi tinggal kontrol via program saja...

Franzy said...

Pak..

Itu gearbox belinya dmn..??
bapak jual ga?
saya dr kmarin nyari ga ketemu2... hehehe...

Aan Darmawan H said...

Maksudnya gearbox+motor nya? cari di Prasimax
http://www.mikron123.com/index.php/Motor-Gearbox/View-all-products.html