Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Menguasai Pengontrolan Motor Stepper dengan Arduino & Driver A4988 – Panduan Langkah demi Langkah

Dalam Tutorial Arduino ini kita akan mempelajari cara mengontrol Motor Stepper menggunakan Driver Stepper A4988. Anda dapat menonton video berikut atau membaca tutorial tertulis di bawah ini.

Ringkasan

A4988 adalah driver microstepping untuk mengontrol motor stepper bipolar yang memiliki penerjemah bawaan untuk operasi yang mudah. Ini berarti kita dapat mengontrol motor stepper dengan hanya 2 pin dari kontroler kita, atau satu untuk mengontrol arah rotasi dan yang lain untuk mengontrol langkah.

Menguasai Pengontrolan Motor Stepper dengan Arduino & Driver A4988 – Panduan Langkah demi Langkah

Driver menyediakan lima resolusi langkah berbeda: full-step, half-step, quarter-step, eight-step dan sixteenth-step. Juga, memiliki potensiometer untuk menyesuaikan output arus, shutdown termal over-temperature dan perlindungan arus lintas.

Tegangannya logis dari 3 hingga 5,5 V dan arus maksimum per fase adalah 2A jika pendinginan tambahan yang baik disediakan atau 1A arus kontinu per fase tanpa heatsink atau pendinginan.

Menguasai Pengontrolan Motor Stepper dengan Arduino & Driver A4988 – Panduan Langkah demi Langkah

Pinout Driver Stepper A4988

Sekarang mari kita lihat lebih dekat pinout driver dan hubungkan dengan motor stepper dan kontroler. Jadi kita akan memulai dengan 2 pin di pojok kanan bawah untuk menyediakan daya pada driver, pin VDD dan Ground yang perlu kita hubungkan ke sumber daya 3 hingga 5,5 V dan dalam kasus kita itu akan menjadi kontroler kita, Papan Arduino yang akan menyediakan 5 V. 4 pin berikutnya adalah untuk menghubungkan motor. Pin 1A dan 1B akan terhubung ke satu gulungan motor dan pin 2A dan 2B ke gulungan motor lainnya. Untuk menyediakan daya pada motor kita menggunakan 2 pin berikutnya, Ground dan VMOT yang perlu kita hubungkan ke Sumber Daya 8 hingga 35 V dan juga kita perlu menggunakan kapasitor decoupling dengan setidaknya 47 µF untuk melindungi papan driver dari lonjakan tegangan.

Menguasai Pengontrolan Motor Stepper dengan Arduino & Driver A4988 – Panduan Langkah demi Langkah

2 pin berikutnya, Step dan Direction adalah pin yang kita gunakan untuk mengontrol gerakan motor. Pin Direction mengontrol arah rotasi motor dan kita perlu menghubungkannya ke salah satu pin digital pada mikrokontroler kita, atau dalam kasus saya saya akan menghubungkannya ke nomor pin 4 dari Papan Arduino saya.

Dengan pin Step kita mengontrol mikro-langkah motor dan dengan setiap pulsa yang dikirim ke pin ini motor bergerak satu langkah. Jadi itu berarti kita tidak memerlukan pemrograman yang kompleks, tabel urutan fase, garis kontrol frekuensi dan seterusnya, karena penerjemah bawaan Driver A4988 mengurus semuanya. Di sini kita juga perlu menyebutkan bahwa pin 2 ini tidak ditarik ke tegangan apa pun secara internal, jadi kita tidak boleh membiarkan mereka floating dalam program kita.

Selanjutnya adalah PIN SLEEP dan logika rendah akan menempatkan papan dalam mode tidur untuk meminimalkan konsumsi daya saat motor tidak digunakan.

Selanjutnya, pin RESET mengatur penerjemah ke status Home yang telah ditentukan. Status Home atau Posisi Mikro-langkah Home ini dapat dilihat dari Gambar ini dari Datasheet A4988. Jadi ini adalah posisi awal tempat motor memulai dan berbeda tergantung pada resolusi mikro-langkah. Jika status input ke pin ini adalah logika rendah semua input STEP akan diabaikan. Pin Reset adalah pin floating jadi jika kita tidak berniat untuk mengontrolnya dengan program kita kita perlu menghubungkannya ke pin SLEEP untuk membawa ke tinggi dan mengaktifkan papan.

Menguasai Pengontrolan Motor Stepper dengan Arduino & Driver A4988 – Panduan Langkah demi Langkah

3 pin berikutnya (MS1, MS2 dan MS3) adalah untuk memilih salah satu dari lima resolusi langkah sesuai dengan tabel kebenaran di atas. Pin-pin ini memiliki resistor pull-down internal jadi jika kita membiarkan mereka tidak terhubung, papan akan beroperasi dalam mode full step.

Terakhir, pin ENABLE digunakan untuk menyalakan atau mematikan output FET. Jadi logika tinggi akan menjaga output tetap dinonaktifkan.

Komponen yang Diperlukan untuk Tutorial Arduino Ini

Anda dapat mendapatkan komponen dari salah satu situs di bawah ini:

  • Motor Stepper (NEMA17)………..
  • Driver Stepper A4988……………..
  • Adapter 12V 2A……………………….
  • Power Jack………………………………
  • Papan Arduino …………………………
  • Breadboard dan Kabel Jumper …….

Skema Rangkaian

Berikut adalah skema rangkaian lengkap. Saya akan menggunakan driver dalam mode Full Step jadi saya akan membiarkan 3 pin MS tidak terhubung dan hanya menghubungkan pin Direction dan Step dari driver ke nomor pin 3 dan 4 pada Papan Arduino dan juga pin Ground dan 5 V untuk menyediakan daya pada papan. Juga saya akan menggunakan kapasitor 100µF untuk decoupling dan adapter 12V, 1,5A untuk menyediakan daya pada motor. Saya akan menggunakan Motor Stepper Bipolar NEMA 17 dan kabel A dan C-nya akan terhubung ke pin 1A dan 1B dan kabel B dan D ke pin 2A dan 2B.

Menguasai Pengontrolan Motor Stepper dengan Arduino & Driver A4988 – Panduan Langkah demi Langkah

Pembatasan Arus A4988

Sebelum kita menghubungkan motor kita harus menyesuaikan pembatasan arus driver sehingga kita yakin bahwa arus berada dalam batas arus motor. Kita dapat melakukannya dengan menyesuaikan tegangan referensi menggunakan potensiometer pada papan dan mempertimbangkan persamaan ini:

Menguasai Pengontrolan Motor Stepper dengan Arduino & Driver A4988 – Panduan Langkah demi Langkah

Namun persamaan ini tidak selalu benar karena ada berbagai pabrikan papan driver A4988. Berikut adalah demonstrasi kasus saya: Saya menyesuaikan potensiometer dan mengukur 0,6V tegangan referensi. Jadi pembatasan arus harus menjadi nilai 0,6*2, sama dengan 1,2 A.

Menguasai Pengontrolan Motor Stepper dengan Arduino & Driver A4988 – Panduan Langkah demi Langkah

Sekarang karena saya menggunakan Driver dalam mode Full Step dan sesuai dengan Datasheet A4988 dalam mode ini arus gulungan hanya dapat mencapai 70% dari batas arus, 1,2A*0,7 sama dengan 0,84A. Untuk memeriksa ini saya mengunggah kode sederhana yang mengirim logika tinggi terus-menerus ke pin Step (sehingga kita dapat lebih memperhatikan arus) dan menghubungkan meter saya dalam seri dengan satu gulungan motor dan menyediakan daya. Yang saya dapatkan adalah 0,5A yang berarti persamaan tersebut tidak benar untuk kasus saya.

Menguasai Pengontrolan Motor Stepper dengan Arduino & Driver A4988 – Panduan Langkah demi Langkah

Kode Arduino dan A4988

Berikut adalah contoh kode. Pertama kita harus menentukan pin Step dan Direction. Dalam kasus ini mereka adalah nomor pin 3 dan 4 pada Papan Arduino dan mereka dinamai stepPin dan dirPin dan di bagian setup kita harus menentukan mereka sebagai output.

/* Simple Stepper Motor Control Exaple Code * * by Dejan Nedelkovski, www.HowToMechatronics.com * */ // defines pins numbers const int stepPin = 3; const int dirPin = 4; void setup() { // Sets the two pins as Outputs pinMode(stepPin,OUTPUT); pinMode(dirPin,OUTPUT); } void loop() { digitalWrite(dirPin,HIGH); // Enables the motor to move in a particular direction // Makes 200 pulses for making one full cycle rotation for(int x = 0; x < 200; x++) { digitalWrite(stepPin,HIGH); delayMicroseconds(500); digitalWrite(stepPin,LOW); delayMicroseconds(500); } delay(1000); // One second delay digitalWrite(dirPin,LOW); //Changes the rotations direction // Makes 400 pulses for making two full cycle rotation for(int x = 0; x < 400; x++) { digitalWrite(stepPin,HIGH); delayMicroseconds(500); digitalWrite(stepPin,LOW); delayMicroseconds(500); } delay(1000); } Code language: Arduino (arduino)

Di bagian loop pertama kita akan mengatur pin Direction pada keadaan tinggi yang akan memungkinkan motor bergerak dalam arah tertentu. Sekarang menggunakan for loop ini kita akan membuat motor melakukan satu rotasi siklus penuh. Karena driver diatur pada mode Full Step dan Motor Stepper kita memiliki sudut langkah 1,8 derajat, atau 200 langkah, kita perlu mengirim 200 pulsa ke pin Step untuk melakukan satu rotasi siklus penuh. Jadi for loop akan memiliki 200 iterasi dan setiap kali akan mengatur pin Step pada keadaan tinggi dan kemudian rendah untuk membuat pulsa. Di antara setiap digitalWrite kita perlu menambahkan beberapa delay dari mana kecepatan motor akan bergantung.

Setelah rotasi siklus penuh ini kita akan memberikan jeda satu detik, kemudian mengubah arah rotasi dengan mengatur dirPin pada keadaan rendah dan sekarang membuat 2 rotasi siklus penuh dengan loop ini sebanyak 400 iterasi. Pada akhirnya ada jeda satu detik lagi. Sekarang mari kita unggah kode dan lihat bagaimana caranya bekerja.

Saya telah membuat satu contoh lagi untuk tutorial ini, di mana saya mengontrol kecepatan motor menggunakan potensiometer. Berikut adalah kode sumber dari contoh tersebut:

/* Simple Stepper Motor Control Exaple Code * * by Dejan Nedelkovski, www.HowToMechatronics.com * */ // Defines pins numbers const int stepPin = 3; const int dirPin = 4; int customDelay,customDelayMapped; // Defines variables void setup() { // Sets the two pins as Outputs pinMode(stepPin,OUTPUT); pinMode(dirPin,OUTPUT); digitalWrite(dirPin,HIGH); //Enables the motor to move in a particular direction } void loop() { customDelayMapped = speedUp(); // Gets custom delay values from the custom speedUp function // Makes pules with custom delay, depending on the Potentiometer, from which the speed of the motor depends digitalWrite(stepPin, HIGH); delayMicroseconds(customDelayMapped); digitalWrite(stepPin, LOW); delayMicroseconds(customDelayMapped); } // Function for reading the Potentiometer int speedUp() { int customDelay = analogRead(A0); // Reads the potentiometer int newCustom = map(customDelay, 0, 1023, 300,4000); // Convrests the read values of the potentiometer from 0 to 1023 into desireded delay values (300 to 4000) return newCustom; }Code language: Arduino (arduino)

Proses manufaktur

  1. Bangun Tabung Pintar: Kendalikan Penerima Koin dengan Arduino Nano
  2. Kontrol LED melalui Bluetooth dengan Arduino – Panduan DIY Sederhana
  3. Kendalikan Dua Motor Stepper dengan Arduino Nano dan Joystick – Tutorial Sederhana
  4. Arduino & MPU6050: Kontrol Servo Motor Presisi dengan SG90 & MG996R
  5. Membaca Suhu dan Kelembaban dengan DHT11 pada Blynk – Tutorial Arduino Langkah demi Langkah
  6. Buat Nada Musik dengan Arduino: Panduan Langkah demi Langkah
  7. Kendali Jarak Jauh Mobil Menggunakan Arduino Uno & Bluetooth: Panduan Langkah demi Langkah
  8. Panduan Lengkap Modbus pada Arduino: Langkah demi Langkah
  9. Kontrol Motor Stepper Presisi: 28BYJ-48 dengan Arduino UNO & Joystick
  10. Robot Asisten AI Sendirian dengan Arduino dan Python