CV. ZENTRONIC - Perusahaan Jasa Listrik dan Elektronika

Tampilkan postingan dengan label Motor Stepper. Tampilkan semua postingan
Tampilkan postingan dengan label Motor Stepper. Tampilkan semua postingan

Jumat, 07 April 2023

Kontrol Motor Stepper dengan Driver Motor L298N dan Arduino


 

Dalam panduan pengguna ini, kita akan mempelajari cara mengontrol motor stepper menggunakan Driver Motor L298N dengan Arduino. Ini adalah panduan cepat di mana kita akan belajar bagaimana menghubungkan driver motor L298N dengan papan Arduino dan akhirnya belajar bagaimana mengendalikan motor stepper bipolar dalam kasus NEMA 17 kita dengannya. Kami akan menunjukkan kepada Anda sketsa Arduino yang akan mengontrol kecepatan dan arah motor stepper bipolar (NEMA 17) dengan mudah.

Pendahuluan Stepper Motor

Motor stepper adalah motor DC brushless dan sinkron. Mereka berputar dalam langkah-langkah terpisah dari nilai yang telah ditentukan dan dapat berputar searah jarum jam dan berlawanan arah jarum jam. Tidak seperti motor DC lainnya, motor ini memberikan kontrol posisi yang presisi sesuai dengan jumlah langkah per revolusi yang dirancang untuk motor tersebut. Itu berarti revolusi lengkap motor stepper dibagi menjadi beberapa langkah terpisah. Mereka umumnya digunakan dalam mesin CNC, Robotika, printer 2D dan 3D.

L298N Motor Driver Module

Modul driver motor L298N sangat mudah digunakan dengan Arduino dan juga relatif murah. Ini banyak digunakan dalam mengendalikan robot karena kita dapat menghubungkan hingga empat motor sekaligus tetapi jika kita ingin mengontrol kecepatan dan arah juga maka memungkinkan dua motor dc atau satu motor stepper untuk dihubungkan. Jadi, sangat cocok untuk robot roda dua. Modul ini terutama digunakan dalam robotika dan dalam mengendalikan motor dc dan stepping.

Modul driver motor L298N terdiri dari IC driver motor L298N, regulator 78M05 5V, pengaktif jumper 5V, LED daya, heat sink, resistor, dan kapasitor yang semuanya digabungkan dalam sirkuit terpadu. Diagram di bawah ini menunjukkan semua komponen yang terdapat di dalam modul.

 IC driver Motor L298N dibangun dengan kuat dengan heat sink yang besar. Ini adalah driver motor jembatan H saluran ganda yang dapat dengan mudah digunakan untuk menggerakkan satu motor stepper tunggal.

Modul ini juga memiliki regulator 78M05 5V yang diaktifkan melalui jumper. Menjaga jumper tetap utuh, berarti regulator 5V diaktifkan. Jika catu daya motor kurang dari 12V maka kami akan memberi daya pada modul melalui pengatur tegangan. Pin 5V dalam hal ini bertindak sebagai output untuk menyalakan mikrokontroler. Jika catu daya lebih dari 12V, pastikan jumper tidak utuh dan catu daya 5V melalui pin secara terpisah.

Antarmuka Driver Motor DC L298N dengan Arduino dan NEMA 17 Stepper Motor

Peralatan yang Dibutuhkan

    Arduino UNO

    L289N Modul driver motor

    Motor stepper NEMA 17

    Catu daya eksternal 12 V

    Menghubungkan Kabel

Rakit sirkuit seperti yang ditunjukkan pada diagram koneksi di bawah ini.

 

Untuk motor stepper mana pun yang Anda gunakan, lihat lembar datanya untuk menemukan kabel berwarna yang benar untuk membedakan kabel A+, A-, B+, dan B-. Ini akan memungkinkan kita untuk menghubungkan motor dengan benar dengan pin OUT1, OUT2, OUT3 dan OUT4 dari modul driver. Hubungkan kabel berwarna motor stepper dengan pin output yang benar dari modul driver. Dalam kasus kami, kabel hitam adalah A+ dan kabel hijau adalah A- maka mereka akan terhubung masing-masing dengan OUT1 dan OUT2. Demikian juga, kabel merah adalah B+ dan kabel biru adalah B- maka mereka akan terhubung masing-masing dengan OUT3 dan OUT4.

Hubungkan terminal positif catu daya 12V dengan terminal 12V dan terminal negatif catu daya dengan ground yang sama.

Kami menjaga jumper 5V Enable di tempatnya karena akan menyalakan driver motor L298N. Kemudian kita hubungkan pin input IN1, IN2, IN3 dan IN4 dengan pin digital Arduino UNO. Kami telah menggunakan masing-masing GPIO9, GPIO8, GPIO7 dan GPIO6 untuk terhubung dengan masing-masing pin input driver motor.

Pin pengaktifan jumper ENA dan ENB tidak dilepas. Ini akan memastikan bahwa motor stepper tetap diaktifkan.

Arduino Sketch: Kontrol Stepper Motor menggunakan L298N Motor Driver

Buka Arduino IDE Anda dan buka File> New. File baru akan terbuka. Salin kode yang diberikan di bawah ini dalam file itu dan simpan.

Sketsa dasar ini akan menunjukkan kepada kita bagaimana mengendalikan kecepatan dan arah putaran motor stepper menggunakan driver motor L298N.

#include <Stepper.h>

const int steps_per_rev = 200; //Set to 200 for NIMA 17

#define IN1 9

#define IN2 8

#define IN3 7

#define IN4 6

Stepper motor(steps_per_rev, IN1, IN2, IN3, IN4);

void setup()

{

  motor.setSpeed(60);

  Serial.begin(115200);

}

void loop()

{

  Serial.println("Rotating Clockwise...");

  motor.step(steps_per_rev);

  delay(500);

  Serial.println("Rotating Anti-clockwise...");

  motor.step(-steps_per_rev);

  delay(500);

}

 

Demontrasi

Untuk melihat demonstrasi kode di atas, unggah kode ke Arduino. Sebelum mengunggah kode, pastikan untuk memilih Arduino UNO dari Tools > Board.

 

Juga, pilih port COM yang benar yang terhubung dengan papan Arduino dari Tools > Port.

Setelah kode diunggah ke papan Anda, motor akan mulai berputar.

Motor stepper akan mulai berputar searah jarum jam dan kemudian berlawanan arah jarum jam berulang kali.

Di Arduino IDE Anda, buka monitor serial dan Anda juga dapat melihat status putaran motor.


 


Video




Senin, 27 Maret 2023

TB6600 Stepper Motor Driver dengan Arduino

Driver motor stepper TB6600 digunakan untuk mengontrol motor stepper bipolar dua fase yang lebih besar seperti motor NEMA 23 yang digunakan dalam printer 3D, mesin CNC, dan robot. Dalam tutorial ini saya akan menjelaskan perangkat keras driver motor TB6600 secara detail dan juga menunjukkan cara mengontrol driver dengan Arduino. 


 

Deskripsi perangkat keras driver Motor Stepper TB6600.

Driver motor Stepper TB6600 awalnya dibangun di sekitar IC motor stepping TB6600HG yang dibuat oleh Toshiba. Namun saat ini banyak dari driver ini memiliki IC TB67S109AFTG yang juga dibuat oleh Toshiba.

Chip ini hampir serupa dalam kinerja dan spesifikasi tetapi TB6600HG lebih besar dan memiliki peringkat arus puncak yang lebih tinggi hingga 5A dibandingkan dengan chip TB67S109AFTG yang lebih kecil dengan peringkat arus puncak 4A. Selain itu, TB6600HG hanya mendukung hingga 1/16 microstepping sedangkan TB67S109AFTG mencapai 1/32.

Driver memiliki over-current, under-voltage shutdown, dan proteksi overheating. Spesifikasi lain dapat sedikit berbeda tergantung pabrikannya dan oleh karena itu Anda harus selalu memeriksa datasheet driver Anda sebelum digunakan.

Menghubungkan driver motor Stepper TB6600 ke Arduino.

Koneksi agak sederhana dan dilakukan seperti yang diilustrasikan di bawah ini. Saya akan menghubungkan driver dalam konfigurasi katoda umum, yaitu, semua sisi negatif dari sinyal kontrol akan dihubungkan ke ground.

 

Pastikan Anda tidak menghubungkan motor stepper dengan nilai arus lebih dari 3,5 A ke driver.

A+,A- dan B+,B- adalah sambungan untuk fase atau kumparan motor stepper bipolar 4 kawat. Sepasang kabel dari satu koil motor dihubungkan ke A- dan A+ dan yang lainnya ke B- dan B+.

 

 

Adjusting Microsteps and Current

Driver motor stepper TB6600 memiliki sakelar DIP yang digunakan untuk mengatur langkah mikro dan arus tergantung pada spesifikasi dan aplikasi motor stepper yang digunakan. Tabel dengan microstep dan pengaturan saat ini dicetak di atas casing driver.

Dalam mode langkah penuh, motor stepper biasanya menghasilkan 200 langkah per putaran yang menghasilkan ukuran langkah 1,8°. Driver TB6600 mendukung mode microstepping yang memungkinkan resolusi lebih tinggi untuk motor stepper dengan memungkinkan lokasi langkah menengah melalui pemberian energi fase motor dengan level arus menengah.

Misalnya, saat dalam mode ½ langkah, motor stepper akan menghasilkan 400 langkah mikro per putaran dan dalam mode ¼ langkah akan menghasilkan 800 langkah mikro per putaran.

Pengaturan microstep TB6600 dapat diubah dengan mengaktifkan atau menonaktifkan sakelar DIP S1, S2, dan S3 dalam urutan tertentu seperti yang ditunjukkan pada tabel di bawah ini. Pengaturan di bawah ini adalah untuk driver microstepping 1/32.

 


Pengaturan microstep yang lebih kecil akan menghasilkan pengoperasian yang lebih mulus dan tenang, tetapi akan membatasi kecepatan tertinggi yang dapat Anda capai saat mengontrol driver motor stepper dengan mikrokontroler.

 

 

Jangan sesuaikan sakelar DIP saat driver dihidupkan.

Sakelar S4, S5 dan S6 digunakan untuk mengatur arus yang masuk ke motor saat sedang berjalan. Lebih baik memulai dengan level arus 1 A dan jika motor kehilangan langkah atau macet; Anda dapat terus meningkatkan level saat ini.

 


Kode untuk mengendalikan driver motor Stepper TB6600 dengan Arduino.

Mikrokontroler seperti Arduino dapat digunakan untuk mengontrol kecepatan, jumlah putaran dan arah putaran motor stepper. Kode di bawah ini adalah contoh bagaimana hal ini dapat dicapai.

const int stepPin = 5;

const int dirPin = 2;

const int enPin = 8;

 

void setup() {

  pinMode(stepPin,OUTPUT);

  pinMode(dirPin,OUTPUT);

  pinMode(enPin,OUTPUT);

  digitalWrite(enPin,LOW);

 }

 void loop() {

  digitalWrite(dirPin,HIGH); // Enables the motor to move in a particular direction

  for(int x = 0; x < 800; x++) {

    digitalWrite(stepPin,HIGH);

    delayMicroseconds(500);

    digitalWrite(stepPin,LOW);

    delayMicroseconds(500);

  }

  delay(1000); // One second delay

  digitalWrite(dirPin,LOW); //Changes the direction of rotation

  for(int x = 0; x < 800; x++) {

    digitalWrite(stepPin,HIGH);

    delayMicroseconds(500);

    digitalWrite(stepPin,LOW);

    delayMicroseconds(500);

  }

  delay(1000);

}

 

Deskripsi kode

Pertama, pin langkah (PUL+), arah (DIR+), dan aktifkan (ENA+) dideklarasikan dengan pin Arduino masing-masing sebagai 5, 2, dan 8.

Di bagian setup(), semua pin kontrol motor dinyatakan sebagai OUTPUT digital. Saya juga mengaktifkan driver dengan menyetel pin aktifkan  LOW.

Bagian loop() menentukan jumlah langkah yang akan diambil motor. Empat baris kode di bawah ini akan mengirimkan pulsa ke pin step sehingga menghasilkan satu microstep.

digitalWrite(stepPin, HIGH);

delayMicroseconds(500);

digitalWrite(stepPin, LOW);

delayMicroseconds(500);

 

Mengontrol jumlah langkah atau putaran:

Perulangan for mengulangi baris kode di atas beberapa kali yang mewakili langkah-langkah per revolusi. Misalnya, jika driver disetel ke mode ¼ langkah, maka kode di for loop harus dieksekusi 800 kali untuk mendapatkan 1 putaran, yaitu,

for(int i = 0; i < 800; i++) {

    digitalWrite(stepPin,HIGH);

    delayMicroseconds(500);

    digitalWrite(stepPin,LOW);

    delayMicroseconds(500);

  }

Jika motor diatur ke mode 1/8 langkah, maka putaran for di atas akan menghasilkan setengah putaran.

Mengontrol arah putaran motor.

Arah putaran motor stepper ditentukan dengan menyetel pin arah (DIR+) baik  HIGH atau  LOW dan tergantung pada bagaimana Anda menghubungkan motor stepper, saat pin DIR disetel HIGH, motor akan berputar searah jarum jam dan saat disetel  LOW berputar berlawanan arah jarum jam.

Mengontrol kecepatan putaran motor.

Kecepatan motor stepper ditentukan oleh frekuensi pulsa yang kita kirim ke pin STEP yang diatur menggunakan fungsi delayMicroseconds(). Semakin pendek penundaannya, semakin tinggi frekuensinya dan karenanya semakin cepat motor bekerja.


 

 

 

 

 

 

 

 

Video


 

Arduino – LM35 Temperature Sensor

  Sensor Suhu seri LM35 adalah perangkat suhu sirkuit terpadu presisi dengan tegangan keluaran yang berbanding lurus dengan suhu Celcius. ...