- Bahan yang Diperlukan
- Motor Stepper (28BYJ-48)
- IC Pemandu Motor ULN2003
- Diagram dan Sambungan Litar
- Motor Stepper berputar dengan STM32F103C8
- PROGRAMMING STM32 untuk Stepper Motor
Motor stepper adalah motor DC tanpa berus, yang dapat diputar dalam sudut kecil, sudut ini disebut langkah. Umumnya motor stepper menggunakan 200 langkah untuk menyelesaikan putaran 360 darjah, bermaksud putarannya 1.8 darjah setiap langkah. Motor stepper digunakan dalam banyak peranti yang memerlukan pergerakan putaran yang tepat seperti robot, antena, cakera keras dan lain-lain. Kita dapat memutar motor stepper ke sudut tertentu dengan memberikan arahan yang tepat. Terutama terdapat dua jenis motor stepper, Unipolar dan Bipolar. Unipolar lebih mudah dikendalikan, dikawal dan juga lebih mudah diperoleh. Di sini, dalam tutorial ini kita menghubungkan Stepper Motor dengan papan STM32F103C8 (pil biru).
Bahan yang Diperlukan
- STM32F103C8 (Pil biru)
- Motor Stepper (28BYJ-48)
- ULN2003 IC
- Potensiometer 10k
- Papan roti
- Wayar pelompat
Motor Stepper (28BYJ-48)
28BYJ-48 adalah motor Unipolar Stepper yang memerlukan bekalan 5V. Motor mempunyai susunan unipolar 4 gegelung dan setiap gegelung dinilai untuk + 5V oleh itu ia agak mudah dikendalikan dengan mikrokontroler seperti Arduino, Raspberry Pi dan juga STM32. Tetapi kita memerlukan IC Pemacu Motor seperti ULN2003 untuk menggerakkannya, kerana motor stepper memakan arus tinggi dan boleh merosakkan mikrokontroler.
Satu lagi data penting yang perlu diperhatikan ialah Stride Angle: 5.625 ° / 64. Ini bermaksud bahawa motor ketika beroperasi dalam urutan 8 langkah akan bergerak 5.625 darjah untuk setiap langkah dan akan mengambil 64 langkah (5.625 * 64 = 360) untuk menyelesaikan satu putaran penuh. Spesifikasi lain disediakan dalam lembaran data di bawah:
Periksa juga antara muka dengan Stepper Motor dengan Pengawal Mikro lain:
- Interfacing Stepper Motor dengan Arduino Uno
- Kawalan Motor Stepper dengan Raspberry Pi
- Interfacing Motor Stepper dengan Mikrokontroler 8051
- Interfacing Stepper Motor dengan PIC Microcontroller
Motor Stepper juga dapat dikendalikan tanpa Mikrokontroler, lihat Litar Pemandu Motor Stepper ini.
IC Pemandu Motor ULN2003
Ia digunakan untuk menggerakkan motor mengikut denyutan yang diterima dari mikrokontroler. Berikut adalah gambar rajah ULN2003:
Pin (IN1 hingga IN7) adalah pin input dan (OUT 1 hingga OUT 7) adalah pin output yang sepadan. COM diberikan voltan sumber positif yang diperlukan untuk peranti output. Sambungan lebih lanjut untuk motor stepper diberikan di bawah di bahagian gambarajah litar.
Diagram dan Sambungan Litar
Berikut adalah penjelasan sambungan untuk gambarajah litar di atas.
STM32F103C8 (Pil Biru)
Seperti yang kita lihat dalam rajah di bawah, pin PWM ditunjukkan dalam format gelombang (~), terdapat 15 pin seperti itu yang dapat digunakan untuk output nadi ke motor stepper. Kita hanya memerlukan empat pin, kita gunakan (PA0 toPA3).
STM32F103C8 dengan IC Pemacu Motor ULN2003
Pin (PA0 hingga PA3) dianggap sebagai pin output yang dihubungkan dengan pin input (IN1-IN4) dari ULN2003 IC.
PINS STM32F103C8 |
PIN PIN ULN2003 |
PA0 |
IN1 |
PA1 |
IN2 |
PA2 |
IN3 |
PA3 |
IN4 |
5V |
KOM |
GND |
GND |
ULN2003 IC dengan Stepper Motor (28BYJ-48)
Pin output (OUT1-OUT4) dari ULN2003 IC disambungkan ke pin motor stepper (Orange, Yellow, Pink, dan Blue).
PIN PIN ULN2003 |
PIN PINANG STEPPER MOTOR |
KELUAR1 |
ORANG |
KELUAR2 |
KUNING |
KELUAR3 |
PINK |
KELUAR4 |
BIRU |
KOM |
MERAH |
STM32F103C8 dengan Potensiometer
Potensiometer digunakan untuk mengatur kelajuan motor stepper.
POTENTIOMETER |
STM32F103C8 |
KIRI (INPUT) |
3.3 |
PUSAT (HASIL) |
PA4 |
KANAN (GND) |
GND |
Motor Stepper berputar dengan STM32F103C8
Berikut adalah beberapa langkah untuk mengendalikan Motor Stepper:
- Tetapkan kelajuan motor stepper dengan potensiometer yang berbeza-beza.
- Kemudian secara manual masukkan langkah-langkah untuk putaran sama ada mengikut arah jam (nilai +) atau arah lawan arah jam (-values) melalui SERIAL MONITER yang terdapat di ARDUINO IDE (Alat-> Serial monitor) atau CTRL + SHIFT + M.
- Mengikut nilai input yang diberikan dalam monitor bersiri langkah putaran tertentu berlaku pada motor stepper.
Sebagai contoh
NILAI YANG DIBERIKAN DALAM PEMANTAUAN SERIAL |
ROTASI |
2048 |
(360) CLK BAIK |
1024 |
(180) CLK BAIK |
512 |
(90) KLIK BAIK |
-2048 |
(-360) ANTI CLK BAIK |
-1024 |
(-180) ANTI CLK BAIK |
-512 |
(-90) ANTI CLK BAIK |
PROGRAMMING STM32 untuk Stepper Motor
Seperti tutorial sebelumnya, kami memprogram STM32F103C8 dengan Arduino IDE melalui port USB tanpa menggunakan pengaturcara FTDI. Untuk mengetahui mengenai pengaturcaraan STM32 dengan Arduino IDE ikuti pautan. Kita boleh terus memprogramnya seperti Arduino. Kod lengkap diberikan pada akhir projek.
Mula-mula kita harus memasukkan fail perpustakaan stepper #include
#sertakan
Kemudian kita menentukan tidak. langkah-langkah untuk diselesaikan pada putaran, di sini kita menggunakan 32 kerana kita menggunakan Langkah Seluruh (4 Langkah-urutan) sehingga (360/32 = 11.25 darjah). Jadi untuk satu langkah, poros bergerak 11.25 darjah yang merupakan sudut langkah. Dalam urutan 4 Langkah, 4 langkah diperlukan untuk satu putaran lengkap.
#tentukan LANGKAH 32
Kita juga boleh menggunakan mod setengah langkah di mana terdapat 8 langkah urutan (360/64 = 5.625) sudut langkah
Langkah per revolusi = 360 / LANGKAH ANGLE
Semasa kita menetapkan kelajuan, kita mesti mengambil nilai analog dari PA4 yang disambungkan ke potensiometer. Oleh itu, kita mesti menyatakan pin untuk itu
const int speedm = PA4
Kemudian kita telah menukar nilai analog menjadi digital dengan menyimpan nilai-nilai tersebut dalam pemboleh ubah jenis integer, setelah itu kita harus memetakan nilai ADC untuk menetapkan kelajuan sehingga kita menggunakan pernyataan di bawah. Ketahui lebih lanjut mengenai penggunaan ADC dengan STM32 di sini.
int adc = analogRead (speedm); hasil int = peta (adc , 0, 4096, 1, 1023);
Untuk menetapkan kelajuan, kami menggunakan stepper.setSpeed (hasil); Kami mempunyai julat kelajuan (1-1023).
Kita mesti membuat contoh seperti di bawah untuk menetapkan pin yang disambungkan ke motor. Berhati-hati dalam langkah-langkah ini kerana kebanyakan mereka melakukan kesalahan di sini dalam corak ini. Mereka memberikan corak yang salah dan kerana gegelung itu tidak dapat diberi tenaga.
Stepper stepper (LANGKAH, PA0, PA2, PA1, PA3);
Pernyataan di bawah digunakan untuk mendapatkan nilai langkah dari monitor bersiri. Sebagai contoh kita memerlukan 2048 nilai untuk satu putaran penuh (32 * 64 = 2048) iaitu 64 akan menjadi nisbah gear dan 32 akan menjadi urutan setengah langkah untuk satu putaran.
putar = Serial.parseInt ();
Kod di bawah digunakan untuk memanggil instance dan menjalankan motor. Sekiranya nilai putaran adalah 1, ia memanggil fungsi stepper satu kali dan satu gerakan dilakukan.
stepper.step (putar);
Kod lengkap dengan Video Demonstrasi diberikan di bawah. Periksa juga semua projek berkaitan motor stepper di sini, dengan berinteraksi dengan pelbagai mikrokontroler lain