Daftar Isi:

Arduino: Lib Presisi untuk Motor Stepper: 19 Langkah
Arduino: Lib Presisi untuk Motor Stepper: 19 Langkah

Video: Arduino: Lib Presisi untuk Motor Stepper: 19 Langkah

Video: Arduino: Lib Presisi untuk Motor Stepper: 19 Langkah
Video: BELAJAR ARDUINO #98 - Stepper Motor Dan Driver L298n 2024, Juli
Anonim
Image
Image
Variabel Global
Variabel Global

Hari ini, saya akan menunjukkan kepada Anda perpustakaan untuk driver motor langkah penuh dengan sakelar batas, dan gerakan mesin dengan akselerasi dan langkah mikro. Lib ini, yang bekerja pada Arduino Uno dan Arduino Mega, memungkinkan Anda untuk menggerakkan mesin tidak hanya berdasarkan jumlah langkah, tetapi juga pada milimeter. Dan itu cukup akurat juga.

Fitur penting dari library ini adalah memungkinkan Anda untuk membuat mesin CNC Anda sendiri, yang tidak harus hanya X, Y, tetapi juga sakelar bagian, misalnya, karena ini bukan GRBL yang siap, melainkan pemrograman yang memungkinkan Anda membuat mesin yang ideal untuk Anda.

Namun, pernyataan berikut adalah detail penting! Video ini hanya untuk mereka yang sudah terbiasa dengan pemrograman. Jika Anda tidak terbiasa dengan pemrograman Arduino, Anda harus terlebih dahulu menonton video pengantar lainnya di saluran saya. Ini karena saya membahas subjek lanjutan dalam video khusus ini, dan menjelaskan lebih detail Lib yang digunakan dalam video: Motor Langkah dengan Akselerasi dan Akhir Langkah.

Langkah 1: Perpustakaan StepDriver

Pustaka ini mencakup tiga jenis driver paling umum di pasaran: A4988, DRV8825, dan TB6600. Ini mengonfigurasi pin driver, memungkinkan mereka untuk melakukan reset dan penempatan ke mode Sleep, serta mengaktifkan dan menonaktifkan output motor yang bekerja pada pin Enable. Ini juga mengatur input pin mikro-langkah driver, dan membatasi sakelar dan tingkat aktivasinya (tinggi atau rendah). Ini juga memiliki kode gerakan motor dengan akselerasi terus menerus dalam mm / s², kecepatan maksimum dalam mm / s, dan kecepatan minimum dalam mm / s.

Bagi mereka yang menonton bagian 1 dan 2 dari video Langkah Motor dengan Akselerasi dan Akhir Langkah, unduh perpustakaan baru ini tersedia hari ini, karena saya membuat beberapa perubahan pada file pertama itu untuk memudahkan penggunaannya.

Langkah 2: Variabel Global

Saya menunjukkan dengan tepat untuk apa masing-masing variabel global.

Langkah 3: Fungsi - Mengatur Pin Driver

Fungsi - Mengatur Pin Driver
Fungsi - Mengatur Pin Driver

Di sini, saya menjelaskan beberapa metode.

Saya mengatur pengaturan Pinout dan pin Arduino sebagai output.

Langkah 4: Fungsi - Fungsi Dasar Pengemudi

Fungsi - Fungsi Dasar Pengemudi
Fungsi - Fungsi Dasar Pengemudi

Di bagian ini, kami bekerja dengan konfigurasi driver dan fungsi dasarnya.

Langkah 5: Fungsi - Pengaturan Langkah Motor

Fungsi - Pengaturan Langkah Motor
Fungsi - Pengaturan Langkah Motor
Fungsi - Pengaturan Langkah Motor
Fungsi - Pengaturan Langkah Motor

Dalam langkah kode ini, kami mengonfigurasi jumlah langkah per milimeter yang harus dijalankan oleh motor.

Langkah 6: Fungsi - Mengatur Mode Langkah Motor

Fungsi - Mengatur Mode Langkah Motor
Fungsi - Mengatur Mode Langkah Motor
Fungsi - Mengatur Mode Langkah Motor
Fungsi - Mengatur Mode Langkah Motor
Fungsi - Mengatur Mode Langkah Motor
Fungsi - Mengatur Mode Langkah Motor

Tabel ini menunjukkan pengaturan untuk mode langkah motor. Berikut adalah beberapa contoh.

Langkah 7: Fungsi - Mengatur Saklar Batas

Fungsi - Mengatur Saklar Batas
Fungsi - Mengatur Saklar Batas

Di sini, saya harus membaca nilai keseluruhan dan boolean. Penting untuk mengatur apakah tombol aktif naik atau turun, sambil mengatur endpin batas maksimum dan minimum.

Langkah 8: Fungsi - Membaca Limit Switch

Fungsi - Membaca Saklar Batas
Fungsi - Membaca Saklar Batas
Fungsi - Membaca Saklar Batas
Fungsi - Membaca Saklar Batas
Fungsi - Membaca Saklar Batas
Fungsi - Membaca Saklar Batas

Bagian ini berbeda dari yang ada di Lib yang saya sediakan minggu lalu. Mengapa saya mengubahnya? Yah, saya membuat eRead untuk menggantikan beberapa yang lain. Di sini, eRead akan membaca LVL, digitalRead (pin), dan akan mengembalikan TRUE. Semua ini perlu dilakukan pada tingkat tinggi. Pekerjaan berikut dengan kunci aktif akan berada di level rendah. Saya akan menggunakannya di sini untuk menunjukkan kepada Anda tabel "Kebenaran".

Pada gambar kode, saya menempatkan diagram yang akan membantu dalam pemahaman bahwa, di bagian kode sumber ini, saya bergerak menuju Ascending dan belum menekan tombol akhir saja.

Nah, pada gambar ini kode os bool DRV8825, saya tunjukkan mesin masih bergerak ke arah yang berkembang. Namun, sakelar batas maksimum diaktifkan. Mekanisme, kemudian, harus menghentikan gerakan.

Untuk yang terakhir, saya menunjukkan gerakan yang sama, tetapi dalam arah yang berlawanan.

Di sini, Anda sudah mengaktifkan sakelar akhir kursus.

Langkah 9: Fungsi - Pengaturan Gerak

Fungsi - Pengaturan Gerak
Fungsi - Pengaturan Gerak

Utilitas utama dari metode motionConfig adalah mengubah milimeter per detik (pengukuran yang digunakan dalam mesin CNC) menjadi langkah, untuk memenuhi pengontrol motor langkah. Oleh karena itu, di bagian inilah saya membuat instance variabel untuk memahami langkah-langkahnya dan bukan milimeternya.

Langkah 10: Fungsi - Fungsi Gerakan

Fungsi - Fungsi Gerakan
Fungsi - Fungsi Gerakan

Dalam langkah ini, kami memperlakukan perintah yang menggerakkan langkah ke arah yang diinginkan dalam periode mikrodetik. Kami juga mengatur pin arah pengemudi, waktu tunda, dan arah sakelar batas.

Langkah 11: Fungsi - Fungsi Gerakan - Variabel

Fungsi - Fungsi Gerakan - Variabel
Fungsi - Fungsi Gerakan - Variabel

Di bagian ini, kami mengkonfigurasi semua variabel yang melibatkan periode kecepatan maksimum dan minimum, jarak lintasan, dan langkah-langkah yang diperlukan untuk menginterupsi lintasan, antara lain.

Langkah 12: Fungsi - Fungsi Gerakan - Akselerasi

Fungsi - Fungsi Gerakan - Akselerasi
Fungsi - Fungsi Gerakan - Akselerasi
Fungsi - Fungsi Gerakan - Akselerasi
Fungsi - Fungsi Gerakan - Akselerasi

Di sini, saya menyajikan beberapa detail tentang bagaimana kita sampai pada data percepatan, yang dihitung melalui persamaan Torricelli, karena ini memperhitungkan ruang untuk mengerjakan percepatan dan bukan waktu. Tapi, penting di sini untuk memahami bahwa seluruh persamaan ini hanya tentang satu baris kode.

Kami mengidentifikasi trapeze pada gambar di atas, karena RPM awal buruk untuk sebagian besar motor stepper. Hal yang sama terjadi dengan perlambatan. Karena itu, kami memvisualisasikan trapesium dalam periode antara percepatan dan perlambatan.

Langkah 13: Fungsi - Fungsi Gerak - Kecepatan Kontinu

Fungsi - Fungsi Gerak - Kecepatan Kontinu
Fungsi - Fungsi Gerak - Kecepatan Kontinu
Fungsi - Fungsi Gerak - Kecepatan Kontinu
Fungsi - Fungsi Gerak - Kecepatan Kontinu

Di sini kita menjaga jumlah langkah yang digunakan dalam akselerasi, kita terus dalam kecepatan terus menerus, dan tetap dengan kecepatan maksimum, yang dapat dilihat pada gambar di bawah ini.

Langkah 14: Fungsi - Fungsi Gerakan - Perlambatan

Fungsi - Fungsi Gerakan - Perlambatan
Fungsi - Fungsi Gerakan - Perlambatan
Fungsi - Fungsi Gerakan - Perlambatan
Fungsi - Fungsi Gerakan - Perlambatan

Di sini kita memiliki persamaan lain, kali ini dengan nilai percepatan negatif. Itu juga ditampilkan dalam baris kode, yang mewakili, pada gambar di bawah, persegi panjang berlabel Perlambatan.

Langkah 15: Fungsi - Fungsi Gerak - Kecepatan Kontinu

Fungsi - Fungsi Gerak - Kecepatan Kontinu
Fungsi - Fungsi Gerak - Kecepatan Kontinu
Fungsi - Fungsi Gerak - Kecepatan Kontinu
Fungsi - Fungsi Gerak - Kecepatan Kontinu

Kami kembali ke kecepatan terus menerus untuk mengerjakan paruh kedua lintasan, seperti yang terlihat di bawah ini.

Langkah 16: Fungsi - Pindahkan Fungsi - Pindahkan Putaran

Fungsi - Pindahkan Fungsi - Pindahkan Putaran
Fungsi - Pindahkan Fungsi - Pindahkan Putaran

Di bagian ini, kami menggerakkan mesin dalam jumlah putaran tertentu ke arah yang diinginkan, mengubah jumlah putaran dalam milimeter. Akhirnya, kami menggerakkan motor ke arah yang diminta.

Langkah 17: Diagram Gerak - Kecepatan Posisi

Diagram Gerak - Kecepatan Posisi
Diagram Gerak - Kecepatan Posisi

Dalam grafik ini, saya memiliki data yang diambil dari persamaan yang kami gunakan di bagian Percepatan. Saya mengambil nilainya dan bermain di serial Arduino, dan saya beralih dari ini ke Excel, yang menghasilkan tabel ini. Tabel ini menunjukkan kemajuan langkah.

Langkah 18: Diagram Gerak - Posisi Vs. Posisi

Diagram Gerak - Posisi Vs. Posisi
Diagram Gerak - Posisi Vs. Posisi

Di sini, kami mengambil posisi, dalam langkah, dan kecepatan dan mengubahnya menjadi periode, dalam mikrodetik. Kami mencatat dalam langkah ini bahwa periode berbanding terbalik dengan kecepatan.

Langkah 19: Diagram Gerak - Kecepatan Vs. Momen

Diagram Gerak - Kecepatan Vs. Momen
Diagram Gerak - Kecepatan Vs. Momen

Akhirnya, kami memiliki kecepatan sebagai fungsi instan, dan karena ini, kami memiliki garis lurus, karena kecepatan sebagai fungsi waktu.

Direkomendasikan: