- Bahan yang Dibutuhkan
- Stepper Motor (28BYJ-48)
- ULN2003 IC Driver Motor
- Diagram Sirkuit dan Koneksi
- Memutar Motor Stepper dengan STM32F103C8
- PEMROGRAMAN STM32 untuk Stepper Motor
Motor stepper adalah motor DC tanpa sikat, yang dapat diputar dalam sudut kecil, sudut ini disebut langkah. Umumnya motor stepper menggunakan 200 langkah untuk menyelesaikan putaran 360 derajat, artinya rotasinya 1,8 derajat per langkah. Motor stepper digunakan di banyak perangkat yang membutuhkan gerakan rotasi yang tepat seperti robot, antena, hard drive, dll. Kita dapat memutar motor stepper ke sudut tertentu dengan memberikan instruksi yang tepat. Terutama dua jenis motor stepper yang tersedia, Unipolar dan Bipolar. Unipolar lebih mudah dioperasikan, dikendalikan dan juga lebih mudah didapat. Di sini, di tutorial ini kami menghubungkan Stepper Motor dengan papan STM32F103C8 (Pil biru).
Bahan yang Dibutuhkan
- STM32F103C8 (Pil biru)
- Stepper Motor (28BYJ-48)
- ULN2003 IC
- Potensiometer 10k
- Papan tempat memotong roti
- Kabel jumper
Stepper Motor (28BYJ-48)
28BYJ-48 adalah motor Stepper Unipolar yang membutuhkan suplai 5V. Motor memiliki susunan unipolar 4 kumparan dan masing-masing kumparan diberi nilai + 5V sehingga relatif mudah dikendalikan dengan mikrokontroler seperti Arduino, Raspberry Pi juga STM32. Tetapi kita membutuhkan IC Penggerak Motor seperti ULN2003 untuk mengendarainya, karena motor stepper mengkonsumsi arus tinggi dan dapat merusak mikrokontroler.
Data penting lainnya yang perlu diperhatikan adalah Stride Angle: 5.625 ° / 64. Ini berarti motor saat beroperasi dalam 8 langkah urutan akan bergerak 5,625 derajat untuk setiap langkah dan akan membutuhkan 64 langkah (5,625 * 64 = 360) untuk menyelesaikan satu putaran penuh. Spesifikasi lainnya disediakan dalam lembar data di bawah ini:
Periksa juga interfacing dengan Stepper Motor dengan Mikrokontroler lain:
- Menghubungkan Motor Stepper dengan Arduino Uno
- Kontrol Motor Stepper dengan Raspberry Pi
- Stepper Motor Interfacing dengan Mikrokontroler 8051
- Menghubungkan Motor Stepper dengan Mikrokontroler PIC
Motor stepper juga dapat dikontrol tanpa Mikrokontroler, lihat Rangkaian Driver Motor Stepper ini.
ULN2003 IC Driver Motor
Ini digunakan untuk menggerakkan motor sesuai dengan pulsa yang diterima dari mikrokontroler. Di bawah ini adalah gambar diagram ULN2003:
Pin (IN1 hingga IN7) adalah pin input dan (OUT 1 hingga OUT 7) adalah pin output yang sesuai. COM diberikan tegangan sumber positif yang diperlukan untuk perangkat keluaran. Koneksi lebih lanjut untuk motor stepper diberikan di bawah ini di bagian diagram sirkuit.
Diagram Sirkuit dan Koneksi
Di bawah ini adalah penjelasan koneksi untuk diagram rangkaian di atas.
STM32F103C8 (Pil Biru)
Seperti yang dapat kita lihat pada diagram di bawah ini, pin PWM ditunjukkan dalam format gelombang (~), ada 15 pin seperti itu yang dapat digunakan untuk output pulsa ke motor stepper. Kami hanya membutuhkan empat pin, kami menggunakan (PA0 toPA3).
STM32F103C8 dengan ULN2003 Motor Driver IC
Pin (PA0 hingga PA3) dianggap sebagai pin output yang dihubungkan dengan pin input (IN1-IN4) dari IC ULN2003.
PIN STM32F103C8 |
PIN IC ULN2003 |
PA0 |
IN1 |
PA1 |
IN2 |
PA2 |
IN3 |
PA3 |
IN4 |
5V |
COM |
GND |
GND |
ULN2003 IC dengan Stepper Motor (28BYJ-48)
Pin output (OUT1-OUT4) dari ULN2003 IC dihubungkan ke pin motor stepper (Oranye, Kuning, Merah Muda, dan Biru).
PIN IC ULN2003 |
PIN MOTOR LANGKAH |
OUT1 |
JERUK |
OUT2 |
KUNING |
OUT3 |
MERAH JAMBU |
OUT4 |
BIRU |
COM |
MERAH |
STM32F103C8 dengan Potensiometer
Potensiometer digunakan untuk mengatur kecepatan motor stepper.
POTENTIOMETER |
STM32F103C8 |
KIRI (INPUT) |
3.3 |
PUSAT (OUTPUT) |
PA4 |
KANAN (GND) |
GND |
Memutar Motor Stepper dengan STM32F103C8
Di bawah ini adalah beberapa langkah untuk mengoperasikan Motor Stepper:
- Atur kecepatan motor stepper dengan memvariasikan potensiometer.
- Kemudian masukkan langkah-langkah rotasi secara manual baik searah jarum jam (nilai +) atau berlawanan arah jarum jam (-values) melalui SERIAL MONITER yang ada di ARDUINO IDE (Tools-> Serial monitor) atau CTRL + SHIFT + M.
- Menurut nilai input yang diberikan pada monitor serial, langkah-langkah rotasi tertentu terjadi pada motor stepper.
Sebagai contoh
NILAI DIBERIKAN DALAM MONITER SERIAL |
ROTASI |
2048 |
(360) CLK WISE |
1024 |
(180) CLK WISE |
512 |
(90) CLK WISE |
-2048 |
(-360) ANTI CLK WISE |
-1024 |
(-180) ANTI CLK WISE |
-512 |
(-90) ANTI CLK WISE |
PEMROGRAMAN STM32 untuk Stepper Motor
Seperti tutorial sebelumnya, kami memprogram STM32F103C8 dengan Arduino IDE melalui port USB tanpa menggunakan programmer FTDI. Untuk mempelajari tentang pemrograman STM32 dengan Arduino IDE ikuti tautannya. Kita dapat melanjutkan memprogramnya seperti Arduino. Kode lengkap diberikan di akhir proyek.
Pertama kita harus menyertakan file pustaka stepper #include
#include
Kemudian kami mendefinisikan no. langkah-langkah yang harus diselesaikan pada rotasi, di sini kita menggunakan 32 karena kita menggunakan Full-Step (4 Step-sequence) jadi (360/32 = 11.25 derajat). Jadi untuk satu langkah, poros bergerak 11,25 derajat yaitu sudut langkah. Dalam urutan 4 Langkah, diperlukan 4 langkah untuk satu putaran penuh.
# Tentukan LANGKAH 32
Kita juga bisa menggunakan mode Half step dimana ada 8 urutan langkah (360/64 = 5.625) sudut langkah.
Langkah per revolusi = 360 / STEP ANGLE
Saat kita mengatur kecepatan kita harus mengambil nilai analog dari PA4 yang terhubung ke potensiometer. Jadi kita harus mendeklarasikan pin untuk itu
const int speedm = PA4
Kemudian kita telah mengubah nilai analog menjadi digital dengan menyimpan nilai-nilai tersebut dalam variabel tipe integer, setelah itu kita harus memetakan nilai ADC untuk mengatur kecepatan sehingga kita menggunakan pernyataan di bawah ini. Pelajari lebih lanjut tentang menggunakan ADC dengan STM32 di sini.
int adc = analogRead (speedm); hasil int = peta (adc , 0, 4096, 1, 1023);
Untuk mengatur kecepatan, kami menggunakan stepper.setSpeed (result); Kami memiliki rentang kecepatan (1-1023).
Kita harus membuat instance seperti di bawah ini untuk mengatur pin yang terhubung ke motor. Hati-hati dalam langkah-langkah ini karena kebanyakan dari mereka melakukan kesalahan di sini dalam pola ini. Mereka memberikan pola yang salah dan karena kumparan itu tidak dapat diberi energi.
Stepper stepper (LANGKAH, PA0, PA2, PA1, PA3);
Pernyataan di bawah ini digunakan untuk mendapatkan nilai langkah-langkah dari monitor serial. Misalnya kita membutuhkan nilai 2048 untuk satu putaran penuh (32 * 64 = 2048) yaitu 64 akan menjadi rasio roda gigi dan 32 akan menjadi urutan setengah langkah untuk satu putaran.
rotate = Serial.parseInt ();
Kode di bawah ini digunakan untuk memanggil instance dan menjalankan motor. Jika nilai rotate adalah 1, ia memanggil fungsi stepper satu kali dan satu gerakan dilakukan.
stepper.step (putar);
Kode lengkap dengan Video Demonstrasi diberikan di bawah ini. Juga periksa semua proyek terkait motor stepper di sini, dengan antarmuka dengan berbagai mikrokontroler lainnya