Arduino, Electronics, Motor, Project, TUTORIAL

Arduino L293D Motor Driver Shield Tutorial

Dalam tutorial ini, kamu akan mempelajari cara menggerakan motor DC, stepper dan servo menggunakan shield driver motor Arduino L293D.

Komponen yang Digunakan

  1. Motor Driver L293
  2. Motor DC
  3. Motor Stepper
  4. Motor Servo 
  5. Arduino UNO 
  6. Software Arduino IDE (download disini )

Motor & Driver 

Motor merupakan bagian tak terpisahkan dari banyak proyek robotika dan elektronik, dan terdapat berbagai jenis yang dapat digunakan tergantung pada aplikasinya. Berikut beberapa jenis motor :

  1. Motor DC 

Motor DC adalah jenis motor yang paling umum dan dapat digunakan untuk berbagai aplikasi. Kita dapat melihatnya pada mobil kendali jarak jauh, robot, dan lain sebagainya. Motor ini memiliki struktur yang sederhana. Motor akan mulai berputar dengan menerapkan tegangan yang tepat pada ujung-ujungnya dan mengubah arahnya dengan mengubah polaritas tegangan. Kecepatan motor DC dikontrol langsung oleh tegangan yang diterapkan. Ketika tingkat tegangan kurang dari tegangan maksimum yang dapat ditoleransi, kecepatan akan menurun

  1. Motor Stepper 

Dalam beberapa proyek seperti printer 3D, scanner, dan mesin CNC, kita perlu mengetahui langkah putaran motor secara akurat. Dalam kasus ini, kita menggunakan motor stepper. Motor stepper adalah motor listrik yang membagi satu putaran penuh menjadi sejumlah langkah yang sama. Jumlah putaran per langkah ditentukan oleh struktur motor. Motor ini memiliki akurasi yang sangat tinggi.

  1. Motor Servo 

Motor servo adalah motor DC sederhana dengan layanan kontrol posisi. Dengan menggunakan servo, Anda dapat mengontrol jumlah putaran poros dan memindahkannya ke posisi tertentu. Motor ini biasanya berukuran kecil dan merupakan pilihan terbaik untuk lengan robot.

Namun, kita tidak dapat menghubungkan motor-motor ini langsung ke mikrokontroler seperti Arduino untuk mengendalikannya karena kemungkinan membutuhkan arus yang lebih besar daripada yang dapat ditangani oleh mikrokontroler, sehingga kita membutuhkan driver. Driver motor adalah rangkaian untuk mengontrol penggerakan motor. Driver tersedia dalam berbagai jenis. Dalam contoh ini, Anda akan belajar cara kerja driver motor L293D. 

Shield L293D adalah papan driver berbasis IC L293, yang dapat menggerakkan 4 motor DC dan 2 motor stepper atau servo secara bersamaan

Setiap channel modul ini memiliki arus maksimum 1,2A dan tidak akan berfungsi jika tegangan lebih dari 25V atau kurang dari 4,5V. Jadi, berhati hatilah dalam memilih motor yang tepat sesuai dengan tegangan dan arus nominalnya. Untuk fitur lain dari driver ini adalah ada perlindungan elektromagnetik dan termal untuk motor, serta memiliki pemutus arus jika terjadi tegangan yang tidak wajar.

Bagaimana Cara Menggunakan Arduino L293D Motor Driver Shield?

Arduino L293D Motor Driver Shield menggunakan sebagian pin Arduino untuk mengontrol motor. Oleh karena itu, tidak semua pin Arduino dapat digunakan secara bersamaan untuk keperluan lain.

Saat shield terpasang, beberapa pin Arduino secara otomatis dipakai oleh shield, tergantung jenis motor yang digunakan (DC, servo, atau stepper). Pin-pin ini tidak disarankan untuk digunakan kembali karena sudah terhubung langsung ke rangkaian driver motor.

Selain pin digital, keenam pin analog (A0–A5) juga digunakan oleh shield, meskipun secara teori pin analog dapat berfungsi sebagai pin digital.

Penggunaan Pin Berdasarkan Jenis Motor

  1. Motor Servo menggunakan pin 9, 10, dan 2
  2. Motor DC menggunakan pin 11, 3, 5, dan 6 untuk masing-masing motor, serta pin 4, 7, 8, dan 12 sebagai pin kontrol bersama
  3. Motor Stepper menggunakan kombinasi pin yang sama seperti motor DC, namun dengan konfigurasi yang berbeda

Menggerakkan Motor DC

#include <AFMotor.h> 

Library yang diperlukan untuk mengontrol motor

AF_DCMotor motor(1, MOTOR12_64KHZ)

Mendefinisikan motor DC yang Anda gunakan.

Argumen pertama menunjukkan jumlah motor pada shield, dan argumen kedua menunjukkan frekuensi kontrol kecepatan motor. Argumen kedua dapat berupa MOTOR12_2KHZ, MOTOR12_8KHZ, MOTOR12_8KHZ, dan MOTOR12_8KHZ untuk motor nomor 1 dan 2, dan dapat berupa MOTOR12_8KHZ, MOTOR12_8KHZ, dan MOTOR12_8KHZ untuk motor nomor 3 dan 4. Jika tidak dicentang, secara default akan bernilai 1KHZ.

motor.setSpeed(200);

Menentukan kecepatan motor. Kecepatan dapat diatur dari 0 hingga 255.

void loop() { 
motor.run(FORWARD);       
delay(1000); 
motor.run(BACKWARD);      
delay(1000);  
motor.run(RELEASE);       
delay(1000); 
}

Fungsi motor.run() menentukan status gerakan motor. Statusnya bisa berupa MAJU, MUNDUR, dan LEPAS. LEPAS sama dengan rem tetapi mungkin membutuhkan waktu hingga motor berhenti sepenuhnya.

Disarankan untuk menyolder kapasitor 100nF ke setiap pin motor untuk mengurangi kebisingan.

Menggerakkan Motor Servo

#include <servo.h> 

Library yang Anda butuhkan untuk menggerakkan motor servo.

Servo myservo;

Mendefinisikan objek motor servo.

void setup() 
{ 
 myservo.attach(9);   
}

Tentukan pin yang terhubung ke Servo, pada codingan ini menggunakan pin

void loop()  
{  
 myservo.write(val);                   
 delay(15);                            
} 

Tentukan jumlah putaran motor. Antara 0 hingga 360 atau 0 hingga 180, tergantung jenis motornya.

Driving Stepper Motor

#include <AFMotor.h> 

Tentukan library yang Anda butuhkan

 AF_Stepper motor(48, 2);

Mendefinisikan objek motor stepper. Argumen pertama adalah resolusi langkah motor. (misalnya, jika motor Anda memiliki presisi 7,5 derajat/langkah, itu berarti resolusi langkah motor adalah 1,5 derajat/langkah). Argumen kedua adalah nomor motor stepper yang terhubung ke shield.

void setup() { 
 motor.setSpeed(10);   
 motor.onestep(FORWARD, SINGLE);  
 motor.release(); 
 delay(1000); 
} 
void loop() { 
 motor.step(100, FORWARD, SINGLE);  
 motor.step(100, BACKWARD, SINGLE);
 motor.step(100, FORWARD, DOUBLE);  
 motor.step(100, BACKWARD, DOUBLE);
 motor.step(100, FORWARD, INTERLEAVE);  
 motor.step(100, BACKWARD, INTERLEAVE);  
 motor.step(100, FORWARD, MICROSTEP);  
 motor.step(100, BACKWARD, MICROSTEP);  
}

Kecepatan motor stepper diatur dalam satuan RPM (Revolutions Per Minute), yaitu jumlah putaran motor dalam satu menit. Nilai RPM ini menentukan seberapa cepat motor berputar.

motor.setSpeed(10); Baris ini digunakan untuk mengatur kecepatan motor sebesar 10 RPM (putaran per menit). Nilai ini menjadi kecepatan dasar motor saat bergerak.

motor.onestep(FORWARD, SINGLE); Perintah ini menyuruh motor untuk bergerak 1 langkah saja arah maju (FORWARD) menggunakan mode SINGLE (satu kumparan aktif). 

motor.release(); Setelah bergerak arus ke motor diputus motor tidak menahan posisi sehingga poros motor bisa diputar bebas.

Di bagian loop () ini, motor akan bergerak terus-menerus dengan berbagai kombinasi arah dan jenis langkah.

Credit article translated from ElectroPeak hackster.io

Tinggalkan Balasan