- Mode operasi di Stepper Motor
- Membuat Antarmuka Pengguna Grafis MATLAB untuk mengendalikan Motor Stepper
- Kode MATLAB untuk mengendalikan Motor Stepper dengan Arduino
- Material Diperlukan
- Diagram Sirkuit
- Mengontrol Motor Stepper dengan MATLAB
Motor stepper adalah motor DC tanpa sikat yang berputar dalam langkah-langkah terpisah, dan merupakan pilihan terbaik untuk banyak aplikasi kontrol gerak presisi. Selain itu, motor stepper bagus untuk pemosisian, kontrol kecepatan, dan aplikasi yang membutuhkan torsi tinggi pada kecepatan rendah.
Dalam tutorial MATLAB sebelumnya, kami telah menjelaskan cara menggunakan MATLAB untuk mengontrol motor DC, motor Servo dan peralatan Rumah. Hari ini kita akan belajar bagaimana mengontrol Stepper Motor menggunakan MATALB dan Arduino. Jika Anda baru mengenal MATLAB, disarankan untuk memulai dengan program kedip LED sederhana dengan MATLAB.
Mode operasi di Stepper Motor
Sebelum Anda memulai coding untuk motor stepper, Anda harus memahami konsep kerja atau rotasi motor stepper. Karena stator mode stepper dibangun dari pasangan kumparan yang berbeda, setiap pasangan kumparan dapat dieksitasi dalam banyak metode berbeda, ini memungkinkan mode digerakkan dalam banyak mode berbeda. Berikut ini adalah klasifikasi luasnya
Mode Langkah Penuh
Dalam mode eksitasi langkah penuh kita dapat mencapai rotasi 360 ° penuh dengan jumlah putaran minimum (langkah). Tetapi hal ini menyebabkan inersia yang lebih sedikit dan juga rotasi tidak akan mulus. Ada dua klasifikasi lebih lanjut dalam Eksitasi Langkah Penuh, yaitu satu mode step -on gelombang dan dua mode fase-aktif.
1. One phase-on stepping atau Wave Stepping: Dalam mode ini hanya satu terminal (fase) motor yang akan diberi energi pada waktu tertentu. Ini memiliki jumlah langkah yang lebih sedikit dan karenanya dapat mencapai putaran 360 ° penuh. Karena jumlah anak tangga lebih sedikit, arus yang dikonsumsi oleh metode ini juga sangat rendah. Tabel berikut menunjukkan urutan langkah gelombang untuk motor stepper 4 fase
Langkah | Fase 1 (Biru) | Tahap 2 (Merah Muda) | Fase 3 (Kuning) | Fase 4 (Oranye) |
1 | 1 | 0 | 0 | 0 |
2 | 0 | 1 | 0 | 0 |
3 | 0 | 0 | 1 | 0 |
4 | 0 | 0 | 0 | 1 |
2. Two Phase-on stepping: Seperti namanya dalam metode ini, dua fase akan menjadi satu. Ini memiliki jumlah langkah yang sama dengan Wave stepping, tetapi karena dua kumparan diberi energi pada satu waktu, ia dapat memberikan torsi dan kecepatan yang lebih baik dibandingkan dengan metode sebelumnya. Meskipun satu sisi negatifnya adalah metode ini juga menghabiskan lebih banyak daya.
Langkah |
Fase 1 (Biru) |
Tahap 2 (Merah Muda) |
Fase 3 (Kuning) |
Fase 4 (Oranye) |
1 |
1 |
1 |
0 |
0 |
2 |
0 |
1 |
1 |
0 |
3 |
0 |
0 |
1 |
1 |
4 |
1 |
0 |
0 |
1 |
Mode Setengah Langkah
Mode Setengah Langkah adalah kombinasi mode satu fase aktif dan dua fase aktif. Kombinasi ini akan membantu kita untuk mengatasi kelemahan kedua mode yang disebutkan di atas.
Seperti yang mungkin sudah Anda duga karena kami menggabungkan kedua metode, kami harus melakukan 8 langkah dalam metode ini untuk mendapatkan rotasi lengkap. Urutan switching untuk motor stepper 4 fase yang ditunjukkan di bawah ini
Langkah |
Fase 1 (Biru) |
Tahap 2 (Merah Muda) |
Fase 3 (Kuning) |
Fase 4 (Oranye) |
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 karena itu, itu adalah pilihan Anda untuk memprogram motor stepper Anda dalam mode apa pun, tetapi saya lebih suka Two Phase-on melangkah Mode Langkah Penuh. Karena metode ini memberikan kecepatan yang lebih cepat daripada metode satu fase dan dibandingkan dengan mode setengah bagian pengkodean lebih sedikit karena jumlah langkah yang lebih sedikit dalam metode dua fase.
Pelajari lebih lanjut tentang motor stepper dan modenya di sini
Membuat Antarmuka Pengguna Grafis MATLAB untuk mengendalikan Motor Stepper
Kemudian kita harus membangun GUI (Graphical User Interface) untuk mengontrol motor Stepper. Untuk meluncurkan GUI, ketik perintah di bawah ini di jendela perintah
panduan
Jendela popup akan terbuka, lalu pilih GUI kosong baru seperti yang ditunjukkan pada gambar di bawah ini,
Sekarang pilih dua tombol sakelar untuk memutar motor stepper Searah jarum jam dan berlawanan arah jarum jam, seperti yang ditunjukkan di bawah ini,
Untuk mengubah ukuran atau mengubah bentuk tombol, cukup klik tombol tersebut dan Anda akan dapat menyeret sudut tombol. Dengan mengklik dua kali tombol sakelar, Anda dapat mengubah warna, string, dan tag dari tombol tersebut. Kami telah menyesuaikan dua tombol seperti yang ditunjukkan pada gambar di bawah ini.
Anda dapat menyesuaikan tombol sesuai pilihan Anda. Sekarang ketika Anda menyimpan ini, sebuah kode dibuat di jendela Editor MATLAB. Untuk mengkodekan Arduino Anda untuk melakukan tugas apa pun yang terkait dengan proyek Anda, Anda selalu harus mengedit kode yang dihasilkan ini. Jadi di bawah ini kami telah mengedit kode MATLAB. Anda dapat mempelajari lebih lanjut tentang jendela Command, jendela editor dll di Memulai tutorial MATLAB.
Kode MATLAB untuk mengendalikan Motor Stepper dengan Arduino
Kode MATLAB lengkap, untuk mengendalikan motor Stepper, diberikan di akhir proyek ini. Selanjutnya kami menyertakan file GUI (.fig) dan file kode (.m) di sini untuk diunduh (klik kanan pada tautan lalu pilih 'Simpan tautan sebagai…')), yang dengannya Anda dapat menyesuaikan tombol sesuai kebutuhan Anda. Di bawah ini adalah beberapa penyesuaian yang kami lakukan untuk memutar Motor Stepper searah jarum jam dan berlawanan arah jarum jam menggunakan dua tombol sakelar.
Salin dan tempel kode di bawah ini pada baris no. 74 untuk memastikan bahwa Arduino berbicara dengan MATLAB setiap kali Anda menjalankan m-file.
Bersihkan semua; global a; a = arduino ();
Saat Anda menggulir ke bawah, Anda akan melihat bahwa ada dua fungsi yang dibuat untuk kedua Tombol di GUI. Sekarang tulis kode di kedua fungsi sesuai dengan tugas yang ingin Anda lakukan saat diklik.
Dalam fungsi tombol Searah jarum jam , salin dan tempel kode di bawah ini tepat sebelum akhir fungsi untuk memutar motor searah jarum jam. Untuk terus memutar motor stepper searah jarum jam, kami menggunakan while loop untuk mengulangi langkah mode penuh dua fase aktif untuk arah jarum jam.
sementara get (hObject, 'Value') global a; writeDigitalPin (a, 'D8', 1); writeDigitalPin (a, 'D9', 0); writeDigitalPin (a, 'D10', 0); writeDigitalPin (a, 'D11', 1); jeda (0,0002); writeDigitalPin (a, 'D8', 0); writeDigitalPin (a, 'D9', 0); writeDigitalPin (a, 'D10', 1); writeDigitalPin (a, 'D11', 1); jeda (0,0002); writeDigitalPin (a, 'D8', 0); writeDigitalPin (a, 'D9', 1); writeDigitalPin (a, 'D10', 1); writeDigitalPin (a, 'D11', 0); jeda (0,0002); writeDigitalPin (a, 'D8', 1); writeDigitalPin (a, 'D9', 1); writeDigitalPin (a, 'D10', 0); writeDigitalPin (a, 'D11', 0); jeda (0,0002); akhir
Sekarang dalam fungsi tombol Anti-searah jarum jam , tempel kode di bawah ini di fungsi untuk memutar motor berlawanan arah jarum jam. Untuk terus memutar motor stepper berlawanan arah jarum jam, kami menggunakan while loop untuk mengulangi langkah mode penuh dua fase aktif untuk berlawanan arah jarum jam.
sementara get (hObject, 'Value') global a; writeDigitalPin (a, 'D8', 1); writeDigitalPin (a, 'D9', 1); writeDigitalPin (a, 'D10', 0); writeDigitalPin (a, 'D11', 0); jeda (0,0002); writeDigitalPin (a, 'D8', 0); writeDigitalPin (a, 'D9', 1); writeDigitalPin (a, 'D10', 1); writeDigitalPin (a, 'D11', 0); jeda (0,0002); writeDigitalPin (a, 'D8', 0); writeDigitalPin (a, 'D9', 0); writeDigitalPin (a, 'D10', 1); writeDigitalPin (a, 'D11', 1); jeda (0,0002); writeDigitalPin (a, 'D8', 1); writeDigitalPin (a, 'D9', 0); writeDigitalPin (a, 'D10', 0); writeDigitalPin (a, 'D11', 1); jeda (0,0002); akhir
Material Diperlukan
- Laptop yang diinstal MATLAB (Preferensi: R2016a atau versi di atasnya)
- Arduino UNO
- Stepper Motor (28BYJ-48, 5VDC)
- ULN2003 - Pengemudi motor stepper
Diagram Sirkuit
Mengontrol Motor Stepper dengan MATLAB
Setelah mengatur perangkat keras sesuai dengan diagram sirkuit, cukup klik tombol run untuk menjalankan kode yang diedit dalam file.m
MATLAB mungkin memerlukan beberapa detik untuk merespons, jangan klik tombol GUI apa pun hingga MATLAB menampilkan pesan sibuk di pojok kiri bawah seperti yang ditunjukkan di bawah ini,
Saat semuanya sudah siap, klik tombol searah jarum jam atau berlawanan arah jarum jam untuk memutar motor. Saat kita menggunakan tombol toggle, maka motor stepper akan terus bergerak searah jarum jam hingga kita menekan tombol tersebut kembali. Begitu pula dengan menekan tombol toggle berlawanan arah jarum jam, motor mulai berputar berlawanan arah jarum jam hingga kita menekan tombol tersebut kembali.