- Kaedah operasi di Stepper Motor
- Membuat Muka Pengguna Grafik MATLAB untuk mengawal Motor Stepper
- MATLAB Code untuk mengawal Stepper Motor dengan Arduino
- Bahan Diperlukan
- Rajah Litar
- Mengendalikan Motor Stepper dengan MATLAB
Motor stepper adalah motor DC tanpa berus yang berputar dalam langkah diskrit, dan merupakan pilihan terbaik untuk banyak aplikasi kawalan gerakan ketepatan. Motor stepper juga bagus untuk kedudukan, kawalan kelajuan dan aplikasi yang memerlukan tork tinggi pada kelajuan rendah.
Dalam tutorial MATLAB sebelumnya, kami telah menjelaskan bahawa cara menggunakan MATLAB untuk mengawal motor DC, motor Servo dan perkakas rumah. Hari ini kita akan belajar bagaimana mengawal Stepper Motor menggunakan MATALB dan Arduino. Sekiranya anda baru menggunakan MATLAB maka disarankan untuk memulakan program LED berkedip sederhana dengan MATLAB.
Kaedah operasi di Stepper Motor
Sebelum anda memulakan pengekodan untuk motor stepper, anda harus memahami konsep motor stepper yang berfungsi atau berputar. Oleh kerana stator mod stepper dibina dari pasangan gegelung yang berlainan, setiap pasangan gegelung dapat bersemangat dalam banyak kaedah yang berbeza, ini memungkinkan mod untuk didorong dalam banyak mod yang berbeza. Berikut adalah klasifikasi yang luas
Mod Langkah Penuh
Dalam mod pengujaan langkah penuh, kita dapat mencapai putaran 360 ° penuh dengan bilangan putaran minimum (langkah). Tetapi ini menyebabkan lebih sedikit inersia dan putaran juga tidak akan lancar. Terdapat dua klasifikasi selanjutnya dalam Pengembaraan Langkah Penuh, mereka adalah satu langkah melangkah gelombang Fasa dan dua mod fasa-on.
1. Step-on stepping atau Wave Stepping: Dalam mod ini hanya satu terminal (fasa) motor yang akan dihidupkan pada waktu tertentu. Ini mempunyai bilangan langkah yang kurang dan dengan itu dapat mencapai putaran 360 ° penuh. Oleh kerana bilangan langkahnya kurang, arus yang digunakan oleh kaedah ini juga sangat rendah. Jadual berikut menunjukkan urutan melangkah gelombang untuk motor stepper 4 fasa
Langkah | Fasa 1 (Biru) | Fasa 2 (Pink) | Fasa 3 (Kuning) | Fasa 4 (Jingga) |
1 | 1 | 0 | 0 | 0 |
2 | 0 | 1 | 0 | 0 |
3 | 0 | 0 | 1 | 0 |
4 | 0 | 0 | 0 | 1 |
2. Melangkah dua fasa : Seperti namanya dalam kaedah ini dua fasa akan menjadi satu. Ia memiliki jumlah langkah yang sama dengan gelombang melangkah, tetapi kerana dua gegelung diaktifkan pada satu waktu, ia dapat memberikan torsi dan kelajuan yang lebih baik dibandingkan dengan metode sebelumnya. Walaupun satu sisi adalah kaedah ini juga menggunakan lebih banyak tenaga.
Langkah |
Fasa 1 (Biru) |
Fasa 2 (Pink) |
Fasa 3 (Kuning) |
Fasa 4 (Jingga) |
1 |
1 |
1 |
0 |
0 |
2 |
0 |
1 |
1 |
0 |
3 |
0 |
0 |
1 |
1 |
4 |
1 |
0 |
0 |
1 |
Mod Setengah Langkah
Mod Half Step adalah gabungan mod satu fasa dan dua fasa. Gabungan ini akan membantu kita mengatasi kelemahan kedua-dua mod yang disebutkan di atas.
Seperti yang anda duga kerana kita menggabungkan kedua-dua kaedah tersebut, kita harus melakukan 8 langkah dalam kaedah ini untuk mendapatkan putaran lengkap. Urutan beralih untuk motor stepper 4 fasa ditunjukkan di bawah
Langkah |
Fasa 1 (Biru) |
Fasa 2 (Pink) |
Fasa 3 (Kuning) |
Fasa 4 (Jingga) |
1 |
1 |
0 |
0 |
0 |
2 |
1 |
1 |
0 |
0 |
3 |
0 |
1 |
0 |
0 |
4 |
0 |
1 |
1 |
0 |
5 |
0 |
0 |
1 |
1 |
6 |
0 |
0 |
0 |
1 |
7 |
1 |
0 |
0 |
1 |
8 |
1 |
0 |
0 |
0 |
Oleh itu, adalah pilihan anda untuk memprogram motor stepper anda dalam mod apa pun, tetapi saya lebih suka Mode Fasa Selangkah Melangkah Dua Fasa. Oleh kerana kaedah ini memberikan kelajuan yang lebih cepat maka kaedah satu fasa dan jika dibandingkan dengan mod separuh, bahagian pengkodan kurang kerana bilangan langkah yang lebih sedikit dalam kaedah dua fasa.
Ketahui lebih lanjut mengenai motor stepper dan modusnya di sini
Membuat Muka Pengguna Grafik MATLAB untuk mengawal Motor Stepper
Maka kita harus membina GUI (Graphical User Interface) untuk mengawal motor Stepper. Untuk melancarkan GUI, ketik perintah di bawah ini di tetingkap arahan
panduan
Tetingkap pop timbul akan terbuka, kemudian pilih GUI kosong baru seperti yang ditunjukkan dalam gambar di bawah,
Sekarang pilih dua butang beralih untuk memutar Motor stepper searah jarum jam dan berlawanan arah jam, seperti yang ditunjukkan di bawah
Untuk mengubah saiz atau mengubah bentuk butang, cukup klik padanya dan anda akan dapat menyeret sudut butang. Dengan mengklik dua kali pada butang togol, anda boleh menukar warna, tali dan tanda butang tersebut. Kami telah menyesuaikan dua butang seperti yang ditunjukkan pada gambar di bawah.
Anda boleh menyesuaikan butang mengikut pilihan anda. Sekarang apabila anda menyimpan ini, kod dihasilkan di tetingkap Editor MATLAB. Untuk membuat kod Arduino anda untuk melaksanakan tugas yang berkaitan dengan projek anda, anda harus selalu mengedit kod yang dihasilkan ini. Jadi di bawah ini kami telah mengedit kod MATLAB. Anda boleh mengetahui lebih lanjut mengenai tetingkap Perintah, tetingkap editor dan lain-lain dalam Bermula dengan tutorial MATLAB.
MATLAB Code untuk mengawal Stepper Motor dengan Arduino
Kod MATLAB yang lengkap, untuk mengawal motor Stepper, diberikan pada akhir projek ini. Selanjutnya kami menyertakan file GUI (.fig) dan fail kod (.m) di sini untuk dimuat (klik kanan pada pautan kemudian pilih 'Simpan pautan sebagai…')), dengan mana anda dapat menyesuaikan butang sesuai dengan keperluan anda. Berikut adalah beberapa tweak yang kami lakukan untuk memutar Motor Stepper mengikut arah jam dan berlawanan arah jam menggunakan dua butang togol.
Salin dan tampal kod di bawah pada baris no. 74 untuk memastikan bahawa Arduino bercakap dengan MATLAB setiap kali anda menjalankan m-file.
kosongkan semua; global a; a = arduino ();
Semasa anda menatal ke bawah, anda akan melihat bahawa terdapat dua fungsi yang dibuat untuk kedua-dua Butang di GUI. Sekarang tuliskan kod dalam kedua fungsi sesuai dengan tugas yang ingin anda lakukan dengan klik.
Dalam fungsi butang Clockwise , salin dan tampal kod di bawah ini sebelum akhir fungsi untuk memutar motor mengikut arah jam. Untuk memutar motor stepper secara berterusan mengikut arah pusingan jam, kami menggunakan while loop untuk mengulangi langkah mod penuh dua langkah demi langkah untuk arah pusingan jam.
sementara dapatkan (hObject, 'Value') global a; tulisDigitalPin (a, 'D8', 1); tulisDigitalPin (a, 'D9', 0); tulisDigitalPin (a, 'D10', 0); tulisDigitalPin (a, 'D11', 1); berhenti sebentar (0.0002); tulisDigitalPin (a, 'D8', 0); tulisDigitalPin (a, 'D9', 0); tulisDigitalPin (a, 'D10', 1); tulisDigitalPin (a, 'D11', 1); berhenti sebentar (0.0002); tulisDigitalPin (a, 'D8', 0); tulisDigitalPin (a, 'D9', 1); tulisDigitalPin (a, 'D10', 1); tulisDigitalPin (a, 'D11', 0); berhenti sebentar (0.0002); tulisDigitalPin (a, 'D8', 1); tulisDigitalPin (a, 'D9', 1); tulisDigitalPin (a, 'D10', 0); tulisDigitalPin (a, 'D11', 0); berhenti sebentar (0.0002); akhir
Sekarang dalam fungsi butang Anti arah jam , tampal kod di bawah pada fungsi untuk memutar motor ke arah lawan jam. Untuk memutar motor stepper secara berterusan ke arah berlawanan arah jarum jam, kami menggunakan while loop untuk mengulangi langkah mod penuh dua langkah demi langkah untuk arah lawan jam.
sementara dapatkan (hObject, 'Value') global a; tulisDigitalPin (a, 'D8', 1); tulisDigitalPin (a, 'D9', 1); tulisDigitalPin (a, 'D10', 0); tulisDigitalPin (a, 'D11', 0); berhenti sebentar (0.0002); tulisDigitalPin (a, 'D8', 0); tulisDigitalPin (a, 'D9', 1); tulisDigitalPin (a, 'D10', 1); tulisDigitalPin (a, 'D11', 0); berhenti sebentar (0.0002); tulisDigitalPin (a, 'D8', 0); tulisDigitalPin (a, 'D9', 0); tulisDigitalPin (a, 'D10', 1); tulisDigitalPin (a, 'D11', 1); berhenti sebentar (0.0002); tulisDigitalPin (a, 'D8', 1); tulisDigitalPin (a, 'D9', 0); tulisDigitalPin (a, 'D10', 0); tulisDigitalPin (a, 'D11', 1); berhenti sebentar (0.0002); akhir
Bahan Diperlukan
- Laptop terpasang MATLAB (Keutamaan: R2016a atau versi di atas)
- Arduino UNO
- Motor Stepper (28BYJ-48, 5VDC)
- ULN2003 - Pemandu motor Stepper
Rajah Litar
Mengendalikan Motor Stepper dengan MATLAB
Setelah menyiapkan perkakasan mengikut gambarajah litar, klik pada butang jalankan untuk menjalankan kod yang diedit dalam fail.m
MATLAB mungkin mengambil masa beberapa saat untuk bertindak balas, jangan mengklik butang GUI sehingga MATLAB menunjukkan pesanan sibuk di bahagian bawah sudut kiri seperti gambar di bawah,
Apabila semuanya sudah siap, klik butang mengikut arah jam atau berlawanan arah jam untuk memutar motor. Oleh kerana kita menggunakan butang beralih, motor stepper akan terus bergerak mengikut arah jam sehingga kita menekan butang sekali lagi. Begitu juga, dengan menekan butang beralih arah lawan jam, motor mula berputar ke arah lawan arah jam sehingga kita menekan butang sekali lagi.