Motor stepper adalah komponen penting dalam berbagai aplikasi otomasi dan robotika. Untuk mengendalikan motor stepper dengan akurat, diperlukan driver yang tepat. Salah satu driver yang banyak digunakan adalah DRV8825. Dalam artikel ini, kita akan membahas bagaimana cara mengintegrasikan DRV8825 dengan mikrokontroler STM32.
Apa itu Motor Stepper?
Motor stepper adalah jenis motor yang bergerak dalam langkah-langkah diskrit. Berbeda dengan motor DC yang berputar secara terus-menerus, motor stepper dapat diputar dalam sudut-sudut tertentu, sehingga memudahkan kontrol posisi. Motor ini umumnya digunakan dalam aplikasi seperti printer 3D, mesin CNC, dan robot.
Pengenalan DRV8825
DRV8825 adalah driver motor stepper yang dirancang untuk memberikan torsi tinggi dalam pengaturan yang kompak. Beberapa fitur utama dari DRV8825 meliputi:
- Pengaturan Arus: Mengatur arus maksimum yang bisa digunakan oleh motor.
- Mode Microstepping: Mendukung hingga 1/32 microstepping untuk pergerakan yang lebih halus.
- Proteksi Terhadap Overcurrent: Memastikan mencegah kerusakan pada komponen akibat arus berlebih.
Pengenalan STM32
STM32 adalah keluarga mikrokontroler berbasis ARM Cortex-M yang terkenal karena performanya yang tinggi dan kemampuannya dalam mengelola berbagai tugas. Mikrokontroler ini sering digunakan dalam berbagai proyek otomasi dan pengendalian.
Komponen yang Diperlukan
Sebelum memulai, pastikan Anda memiliki komponen-komponen berikut:
- Mikrokontroler STM32 (misalnya STM32F103C8T6)
- Driver Motor Stepper DRV8825
- Motor Stepper (pasangkan motor stepper sesuai kebutuhan)
- Breadboard dan Kabel Jumper
- Sumber Daya (5V – 12V sesuai spesifikasi motor)
Skema Koneksi
Berikut adalah skema koneksi dasar antara STM32 dan DRV8825:
Koneksi DRV8825
DRV8825 Pin | STM32 Pin |
---|---|
VMOT | 5V – 12V |
GND | GND |
STEP | GPIO (mis. PA0) |
DIR | GPIO (mis. PA1) |
ENABLE | GPIO (mis. PA2) |
Rangkaian
- Hubungkan pin VMOT DRV8825 ke sumber daya eksternal (5V – 12V) yang sesuai dengan motor stepper.
- Hubungkan pin GND ke ground sistem.
- Sambungkan pin STEP dan DIR ke pin GPIO pada STM32 yang telah ditentukan.
- Hubungkan pin ENABLE ke pin GPIO STM32 yang sesuai, dan aktifkan.
Konfigurasi STM32
Instalasi IDE
Sebelum memulai pemrograman, pastikan Anda memiliki STMicroelectronics STM32CubeIDE terinstal di sistem Anda. IDE ini memudahkan proses pengembangan untuk STM32.
Membuat Proyek Baru
- Buka STM32CubeIDE.
- Buat proyek baru dengan memilih tipe mikrokontroler yang Anda gunakan.
- Atur pengaturan konfigurasi untuk GPIO yang Anda pilih untuk pin STEP, DIR, dan ENABLE. Setel pin ke mode OUTPUT.
Kode Program
Berikut adalah contoh kode untuk mengendalikan motor stepper menggunakan STM32 dan DRV8825:
#include "stm32f4xx.h" // ganti sesuai dengan mikrokontroler yang digunakan
#define STEP_PIN GPIO_PIN_0 // mis. PA0
#define DIR_PIN GPIO_PIN_1 // mis. PA1
#define ENABLE_PIN GPIO_PIN_2 // mis. PA2
void setup() {
// Inisialisasi GPIO
__HAL_RCC_GPIOA_CLK_ENABLE(); // Aktifkan clock untuk port A
GPIO_InitTypeDef GPIO_InitStruct = {0};
GPIO_InitStruct.Pin = STEP_PIN | DIR_PIN | ENABLE_PIN;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
// Aktifkan driver
HAL_GPIO_WritePin(GPIOA, ENABLE_PIN, GPIO_PIN_RESET);
// Set arah motor
HAL_GPIO_WritePin(GPIOA, DIR_PIN, GPIO_PIN_SET); // Arah satu
}
void loop() {
// Gerakkan motor
for(int i = 0; i < 200; i++) { // 200 langkah
HAL_GPIO_WritePin(GPIOA, STEP_PIN, GPIO_PIN_SET);
HAL_Delay(1); // Delay untuk langkah
HAL_GPIO_WritePin(GPIOA, STEP_PIN, GPIO_PIN_RESET);
HAL_Delay(1);
}
}
int main(void) {
HAL_Init(); // Inisialisasi HAL
setup(); // Panggil set up
while (1) {
loop(); // Jalankan loop
}
}
Penjelasan Kode
- setup(): Menginisialisasi pin GPIO untuk STEP, DIR, dan ENABLE. Juga mengatur driver motor agar aktif.
- loop(): Menggerakkan motor stepper dengan mengubah status pin STEP. Delay digunakan untuk mengatur kecepatan motor.
Penyetelan Arus
Sebelum mengoperasikan motor, penting untuk menyetel arus maksimum pada DRV8825. Lihat datasheet DRV8825 untuk informasi tentang penyetelan arus. Biasanya, Anda perlu menggunakan potensiometer yang ada pada board DRV8825 untuk mengaturnya.
Kesimpulan
Menggunakan DRV8825 dengan STM32 adalah cara yang efisien untuk mengendalikan motor stepper. Dengan memahami cara kerja dan mengimplementasikannya dengan benar, Anda dapat mencapai kontrol yang akurat dan efisien untuk berbagai aplikasi. Baik itu dalam proyek ringan atau aplikasi industri, kombinasi ini dapat memberikan performa yang sangat baik. Selamat mencoba!