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