Kontrol Motor Stepper dengan L293D Motor Driver Shield & Arduino

Kontrol Motor Stepper dengan L293D Motor Driver Shield & Arduino

Kontrol Motor Stepper dengan L293D Motor Driver Shield & Arduino

Jika Anda berencana untuk merakit robot baru Anda, pada akhirnya Anda akan ingin belajar tentang cara mengendalikan berbagai motor seperti motor DC, motor Stepper & servo. Salah satu cara termudah dan murah untuk melakukannya adalah dengan menghubungkan L293D Motor Driver Shield dengan Arduino. Ini adalah shield motor berfitur lengkap untuk banyak proyek robot dan CNC.

Shield ini dapat mendorong:

  • 4 motor DC dua arah dengan pemilihan kecepatan 8-bit (0-255)
  • 2 motor stepper (unipolar atau bipolar) dengan single coil, double coil, interleaved atau micro-stepping.
  • 2 motor servo

Driver Motor L293D & Register Shift 74HC595


L293D adalah driver motor H-Bridge saluran ganda yang mampu menggerakkan sepasang motor DC atau motor stepper tunggal.

Karena shield ini dilengkapi dengan dua chipset driver motor L293D, yang berarti dapat menggerakkan hingga empat motor DC secara individual sehingga ideal untuk membangun platform robot roda empat.

Shield ini menawarkan total 4 H-Bridges dan setiap H-bridge dapat mengirimkan hingga 0,6A ke motor.

Shield ini juga dilengkapi dengan register geser 74HC595 yang memperluas 4 pin digital Arduino ke 8 pin kontrol arah dari dua chip L293D.

Sumber Daya listrik


Ada tiga skenario ketika harus memasok daya untuk motor melalui Shield.

Catu daya DC tunggal untuk Arduino dan motor: Jika Anda ingin memiliki catu daya DC tunggal untuk Arduino dan motor, cukup colokkan ke jack DC pada Arduino atau blok EXT_PWR 2-pin pada Shield. Tempatkan jumper daya pada Shield motor. Anda dapat menggunakan metode ini hanya jika tegangan suplai motor kurang dari 12V.

(Disarankan) Arduino didukung melalui USB dan motor melalui catu daya DC: Jika Anda ingin Arduino dimatikan dari USB dan motor dimatikan dari catu daya DC, colokkan kabel USB. Kemudian hubungkan suplai motor ke blok EXT_PWR pada Shield. Jangan letakkan jumper pada Shield.

Dua catu daya DC terpisah untuk Arduino dan motor: Jika Anda ingin memiliki 2 catu daya DC terpisah untuk Arduino dan motor. Colokkan suplai untuk Arduino ke jack DC, dan hubungkan suplai motor ke blok EXT_PWR. Pastikan jumper dilepas dari Shield motor.

Peringatan:

JANGAN menyuplai daya ke input EXT_PWR saat jumper dipasang. Ini dapat merusak Shield motor dan juga Arduino Anda!

Sebagai bonus, Shield menawarkan fitur-fitur di bawah ini:

  • Shield ini dilengkapi dengan rangkaian resistor pull-down untuk menjaga agar motor tetap mati selama power-up.
  • LED terpasang menunjukkan catu daya motor dalam keadaan Baik. Jika tidak menyala maka motor tidak akan berjalan.
  • RESET tidak lain adalah tombol reset Arduino. Itu hanya dibawa ke atas untuk kenyamanan.

Terminal Output


Saluran keluaran dari kedua chip L293D dipecah ke tepi Shield dengan dua terminal sekrup 5-pin yaitu. M1, M2, M3 & M4. Anda dapat menghubungkan empat motor DC yang memiliki tegangan antara 4,5 hingga 25V ke terminal ini.

Setiap saluran pada modul dapat mengirimkan hingga 600mA ke motor DC. Namun, jumlah arus yang disuplai ke motor tergantung pada catu daya sistem.

Anda juga dapat menghubungkan dua motor stepper ke terminal keluaran. Satu motor stepper ke port motor M1-M2 dan lainnya ke M3-M4.

Terminal GND juga disediakan jika Anda kebetulan memiliki motor stepper unipolar. Anda dapat menghubungkan tap tengah kedua motor stepper ke terminal ini.

shield mengeluarkan jalur keluaran PWM 16bit ke dua header 3-pin tempat Anda dapat menghubungkan dua motor servo.

Pin yang tidak digunakan pada Shield L293D

Pin digital # 2, # 13 dan pin analog A0-A5 tidak digunakan oleh Shield.

Pin analog pecah di pojok kanan bawah dimana pin 2 memiliki breakout kecil. Jika Anda ingin menggunakan pin ini, Anda dapat menghubungkan beberapa header ke sana.

Memasang AFMotor Library

Untuk berkomunikasi dengan perisai, kita perlu menginstal pustaka AFMotor.h sehingga kita dapat mengeluarkan perintah sederhana untuk mengontrol motor DC, stepper & servo.

Untuk menginstal library, navigasikan ke Sketch> include library> manage library ... Tunggu manager library untuk mengunduh indeks perpustakaan dan memperbarui daftar perpustakaan yang diinstal.


Filter penelusuran Anda dengan mengetik 'Shield motor'. Harus ada beberapa entri. Cari perpustakaan Adafruit Motor Shield (V1 Firmware) oleh Adafruit. Klik entri itu, lalu pilih Instal.


Untuk stepper bipolar NEMA 17

Jika Anda menggunakan stepper bipolar NEMA 17, motor tersebut memiliki nilai 12V dan menawarkan 200 langkah per revolusi. Jadi, hubungkan catu daya 12V eksternal ke terminal EXT_PWR.

Ingatlah untuk melepaskan jumper PWR.

Sekarang, hubungkan motor ke terminal motor stepper M1-M2 (port # 1) atau M3-M4 (port # 2). Dalam percobaan kami, kami menghubungkannya ke M3-M4.


Kode Arduino

Sketsa berikut akan memberi Anda pemahaman lengkap tentang cara mengontrol motor stepper unipolar atau bipolar dengan Shield L293D dan sama untuk kedua motor kecuali parameter stepsPerRevolution.

Ubah parameter ini sesuai spesifikasi motor Anda sebelum mencoba sketsa. Misalnya, untuk NEMA 17 atur ke 200 dan untuk 28BYJ-48 atur ke 48.

#include <AFMotor.h>

// Number of steps per output rotation
// Change this as per your motor's specification
const int stepsPerRevolution = 48;

// connect motor to port #2 (M3 and M4)
AF_Stepper motor(stepsPerRevolution, 2);

void setup() {
  Serial.begin(9600);
  Serial.println("Stepper test!");

  motor.setSpeed(10);  // 10 rpm   
}

void loop() {
  Serial.println("Single coil steps");
  motor.step(100, FORWARD, SINGLE); 
  motor.step(100, BACKWARD, SINGLE); 

  Serial.println("Double coil steps");
  motor.step(100, FORWARD, DOUBLE); 
  motor.step(100, BACKWARD, DOUBLE);

  Serial.println("Interleave coil steps");
  motor.step(100, FORWARD, INTERLEAVE); 
  motor.step(100, BACKWARD, INTERLEAVE); 

  Serial.println("Micrsostep steps");
  motor.step(100, FORWARD, MICROSTEP); 
  motor.step(100, BACKWARD, MICROSTEP); 
}

Penjelasan Kode:

Sketsa dimulai dengan memasukkan pustaka AFMotor.h.

Baris kedua AF_Stepper motor(48, 2); membuat objek library. Di sini Anda perlu meneruskan langkah-per-revolusi motor dan nomor port yang dihubungkan dengan motor, sebagai parameter.

Di bagian penyetelan dan putaran kode, kita cukup memanggil dua fungsi di bawah ini untuk mengontrol kecepatan dan arah putaran motor.

setSpeed(rpm) berfungsi mengatur kecepatan motor, dimana rpm adalah berapa putaran per menit yang anda inginkan agar stepper berputar.

Fungsi step(#steps, direction, steptype) dipanggil setiap kali Anda ingin motor bergerak. #steps adalah jumlah langkah yang Anda ingin lakukan. direction adalah FORWARD atau BACKWARD, dan nilai yang valid untuk gaya langkah adalah:

SINGLE - Satu kumparan diberi energi pada satu waktu.

DOUBLE - Dua kumparan diberi energi pada satu waktu untuk lebih banyak torsi.

INTERLEAVE - Bergantian antara tunggal dan ganda untuk membuat setengah langkah di antaranya. Hal ini dapat menghasilkan pengoperasian yang lebih lancar, tetapi karena langkah setengah ekstra, kecepatannya juga berkurang setengahnya.

MICROSTEP - Kumparan yang berdekatan dinaikkan ke atas dan ke bawah untuk membuat sejumlah 'micro-step' di antara setiap langkah penuh. Ini menghasilkan resolusi yang lebih halus dan rotasi yang lebih halus, tetapi dengan hilangnya torsi.

Untuk lebih jelasnya bisa lihat vide berikut!



Selamat mencoba


Post a Comment

Previous Post Next Post

Contact Form