Isi kandungan:

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

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

Video: Arduino: Precision Lib untuk Stepper Motor: 19 Langkah
Video: Arduino Stepper Motor - 28byj-48 #steppermotor #arduino 2024, Julai
Anonim
Image
Image
Pemboleh ubah Global
Pemboleh ubah Global

Hari ini, saya akan menunjukkan perpustakaan untuk pemandu motor langkah penuh dengan suis had, dan pergerakan enjin dengan pecutan dan langkah mikro. Lib ini, yang berfungsi pada Arduino Uno dan Arduino Mega, membolehkan anda menggerakkan enjin berdasarkan bukan hanya pada jumlah langkah, tetapi juga pada milimeter. Dan juga cukup tepat

Ciri penting perpustakaan ini ialah ia membolehkan anda membina mesin CNC anda sendiri, yang tidak semestinya hanya X, Y, tetapi juga pertukaran bahagian, misalnya, kerana ia bukan GRBL yang siap, melainkan pengaturcaraan yang membolehkan anda membuat mesin yang sesuai untuk anda.

Walau bagaimanapun, pernyataan berikut adalah perincian penting! Video ini hanya untuk mereka yang sudah terbiasa dengan pengaturcaraan. Sekiranya anda tidak biasa dengan pengaturcaraan Arduino, pertama anda harus menonton video pengenalan lain di saluran saya. Ini kerana saya membincangkan subjek lanjutan dalam video khusus ini, dan menjelaskan dengan lebih terperinci mengenai Lib yang digunakan dalam video: Step Motor with Acceleration and End of Stroke.

Langkah 1: Perpustakaan StepDriver

Perpustakaan ini merangkumi tiga jenis pemacu yang paling biasa di pasaran: A4988, DRV8825, dan TB6600. Ini mengkonfigurasi pin pemandu, memungkinkan mereka melakukan reset dan penempatan ke mod Tidur, serta mengaktifkan dan menonaktifkan output motor yang bertindak pada pin Aktifkan. Ia juga menetapkan input pin langkah mikro pemandu, dan had suis dan tahap pengaktifannya (tinggi atau rendah). Ia juga mempunyai kod pergerakan motor dengan percepatan berterusan dalam mm / s², kecepatan maksimum dalam mm / s, dan kecepatan minimum dalam mm / s.

Bagi mereka yang menonton bahagian 1 dan 2 video Step Motor with Acceleration and End of Stroke, muat turun perpustakaan baru ini yang tersedia hari ini, kerana saya membuat beberapa perubahan pada fail pertama itu untuk memudahkan penggunaannya.

Langkah 2: Pembolehubah Global

Saya menunjukkan dengan tepat setiap pemboleh ubah global.

Langkah 3: Fungsi - Menetapkan Pin Pemacu

Fungsi - Menetapkan Pin Pemacu
Fungsi - Menetapkan Pin Pemacu

Di sini, saya menerangkan beberapa kaedah.

Saya menetapkan tetapan Pinout dan pin Arduino sebagai output.

Langkah 4: Fungsi - Fungsi Asas Pemandu

Fungsi - Fungsi Asas Pemandu
Fungsi - Fungsi Asas Pemandu

Di bahagian ini, kami bekerja dengan konfigurasi pemacu dan fungsi asasnya.

Langkah 5: Fungsi - Tetapan Langkah Motor

Fungsi - Tetapan Langkah Motor
Fungsi - Tetapan Langkah Motor
Fungsi - Tetapan Langkah Motor
Fungsi - Tetapan Langkah Motor

Dalam langkah kod ini, kita mengkonfigurasi jumlah langkah per milimeter yang mesti dilaksanakan oleh motor.

Langkah 6: Fungsi - Menetapkan Mod Langkah Motor

Fungsi - Menetapkan Mod Langkah Motor
Fungsi - Menetapkan Mod Langkah Motor
Fungsi - Menetapkan Mod Langkah Motor
Fungsi - Menetapkan Mod Langkah Motor
Fungsi - Menetapkan Mod Langkah Motor
Fungsi - Menetapkan Mod Langkah Motor

Jadual ini menunjukkan tetapan untuk mod langkah motor. Berikut adalah beberapa contoh.

Langkah 7: Fungsi - Menetapkan Suis Had

Fungsi - Menetapkan Had Suis
Fungsi - Menetapkan Had Suis

Di sini, saya harus membaca keseluruhan dan nilai boolean. Anda perlu menetapkan sama ada kunci aktif naik atau turun, sambil menetapkan had maksimum dan minimum.

Langkah 8: Fungsi - Membaca Suis Had

Fungsi - Membaca Suis Had
Fungsi - Membaca Suis Had
Fungsi - Membaca Suis Had
Fungsi - Membaca Suis Had
Fungsi - Membaca Suis Had
Fungsi - Membaca Suis Had

Bahagian ini berbeza dengan bahagian Lib yang saya sediakan minggu lalu. Mengapa saya menukarnya? Baiklah, saya membuat eRead untuk menggantikan beberapa yang lain. Di sini, eRead akan membaca LVL, digitalRead (pin), dan akan mengembalikan BENAR. Semua ini perlu dilaksanakan dengan tinggi. Kerja berikut dengan kunci aktif akan berada pada tahap rendah. Saya akan menggunakannya di sini untuk menunjukkan jadual "Kebenaran".

Dalam gambar kod, saya meletakkan rajah yang akan membantu dalam pemahaman bahawa, di bahagian kod sumber ini, saya bergerak ke arah Ascending dan belum mencapai kunci akhir kursus.

Sekarang, dalam bool kod os gambar ini DRV8825, saya menunjukkan mesin masih bergerak ke arah yang semakin meningkat. Walau bagaimanapun, suis had maksimum diaktifkan. Mekanisme itu, mesti menghentikan pergerakan.

Untuk terakhir, saya menunjukkan pergerakan yang sama, tetapi berlawanan arah.

Di sini, anda sudah menghidupkan suis akhir.

Langkah 9: Fungsi - Persediaan Gerakan

Fungsi - Persediaan Gerakan
Fungsi - Persediaan Gerakan

Utiliti utama kaedah motionConfig adalah menukar milimeter sesaat (ukuran yang digunakan dalam mesin CNC) menjadi langkah, untuk memenuhi pengawal motor stepper. Oleh itu, di bahagian ini, saya menunjukkan pemboleh ubah untuk memahami langkah-langkahnya dan bukan milimeter.

Langkah 10: Fungsi - Fungsi Pergerakan

Fungsi - Fungsi Pergerakan
Fungsi - Fungsi Pergerakan

Dalam langkah ini, kita memperlakukan perintah yang bergerak selangkah ke arah yang diinginkan dalam jangka masa dalam mikrodetik. Kami juga menetapkan pin arah pemandu, masa tunda, dan arah suis had.

Langkah 11: Fungsi - Fungsi Pergerakan - Pemboleh ubah

Fungsi - Fungsi Pergerakan - Pemboleh ubah
Fungsi - Fungsi Pergerakan - Pemboleh ubah

Di bahagian ini, kami mengkonfigurasi semua pemboleh ubah yang melibatkan jangka masa kelajuan maksimum dan minimum, jarak lintasan, dan langkah-langkah yang diperlukan untuk mengganggu lintasan, antara lain.

Langkah 12: Fungsi - Fungsi Pergerakan - Pecutan

Fungsi - Fungsi Pergerakan - Pecutan
Fungsi - Fungsi Pergerakan - Pecutan
Fungsi - Fungsi Pergerakan - Pecutan
Fungsi - Fungsi Pergerakan - Pecutan

Di sini, saya mengemukakan beberapa perincian tentang bagaimana kami sampai pada data pecutan, yang dihitung melalui persamaan Torricelli, kerana ini mengambil kira ruang untuk melakukan pecutan dan bukan waktunya. Tetapi, penting di sini untuk memahami bahawa keseluruhan persamaan ini hanya mengenai satu baris kod.

Kami mengenal pasti trapeze pada gambar di atas, kerana RPM awal buruk bagi kebanyakan motor stepper. Perkara yang sama berlaku dengan perlambatan. Oleh kerana itu, kami memvisualisasikan trapezoid dalam jangka masa antara pecutan dan perlambatan.

Langkah 13: Fungsi - Fungsi Gerakan - Kelajuan Berterusan

Fungsi - Fungsi Gerakan - Kelajuan Berterusan
Fungsi - Fungsi Gerakan - Kelajuan Berterusan
Fungsi - Fungsi Gerakan - Kelajuan Berterusan
Fungsi - Fungsi Gerakan - Kelajuan Berterusan

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

Langkah 14: Fungsi - Fungsi Pergerakan - Penurunan

Fungsi - Fungsi Pergerakan - Penurunan
Fungsi - Fungsi Pergerakan - Penurunan
Fungsi - Fungsi Pergerakan - Penurunan
Fungsi - Fungsi Pergerakan - Penurunan

Di sini kita mempunyai persamaan lain, kali ini dengan nilai pecutan negatif. Ini juga ditampilkan dalam garis kod, yang mewakili, dalam gambar di bawah, persegi panjang yang berlabel Deceleration.

Langkah 15: Fungsi - Fungsi Gerakan - Kelajuan Berterusan

Fungsi - Fungsi Gerakan - Kelajuan Berterusan
Fungsi - Fungsi Gerakan - Kelajuan Berterusan
Fungsi - Fungsi Gerakan - Kelajuan Berterusan
Fungsi - Fungsi Gerakan - Kelajuan Berterusan

Kami kembali ke kelajuan berterusan untuk mengerjakan separuh lintasan kedua, seperti yang dilihat di bawah.

Langkah 16: Fungsi - Fungsi Pindah - Pusing Giliran

Fungsi - Fungsi Bergerak - Pusing Giliran
Fungsi - Fungsi Bergerak - Pusing Giliran

Pada bahagian ini, kita menggerakkan mesin dalam sebilangan putaran ke arah yang diinginkan, mengubah jumlah putaran dalam milimeter. Akhirnya, kami menggerakkan motor ke arah yang diminta.

Langkah 17: Carta Gerak - Kelajuan Kedudukan

Carta Gerak - Kelajuan Kedudukan
Carta Gerak - Kelajuan Kedudukan

Dalam grafik ini, saya mempunyai data yang diekstrak dari persamaan yang kami gunakan dalam bahagian Pecutan. Saya mengambil nilai dan bermain di siri Arduino, dan saya pergi dari ini ke Excel, yang menghasilkan jadual ini. Jadual ini menunjukkan kemajuan langkah.

Langkah 18: Carta Gerak - Kedudukan Vs. Kedudukan

Carta Gerak - Kedudukan Vs. Kedudukan
Carta Gerak - Kedudukan Vs. Kedudukan

Di sini, kita mengambil kedudukan, dalam beberapa langkah, dan halaju dan mengubahnya menjadi titik, dalam mikrodetik. Kami perhatikan dalam langkah ini bahawa tempohnya berbanding terbalik dengan halaju.

Langkah 19: Carta Gerak - Velocity Vs. Sebentar

Carta Gerak - Velocity Vs. Sebentar
Carta Gerak - Velocity Vs. Sebentar

Akhirnya, kita mempunyai kelajuan sebagai fungsi sekejap, dan kerana ini, kita mempunyai garis lurus, kerana halaju sebagai fungsi waktu.

Disyorkan: