Driver Motor Stepper DRV8825: Menghubungkan dengan STM32

3 min read 22-08-2024
Driver Motor Stepper DRV8825: Menghubungkan dengan STM32

Pendahuluan

Motor stepper sangat populer dalam aplikasi robotika dan otomatisasi karena kemampuannya untuk bergerak dengan presisi tinggi. Untuk mengontrol motor stepper, diperlukan driver yang dapat mengatur aliran arus ke motor. Salah satu driver yang banyak digunakan adalah DRV8825. Dalam artikel ini, kita akan membahas cara menghubungkan driver motor stepper DRV8825 dengan mikrokontroler STM32.

Apa Itu DRV8825?

DRV8825 adalah driver motor stepper yang dirancang oleh Texas Instruments. Driver ini mampu menggerakkan motor stepper bipolar dengan tegangan antara 8,2V hingga 45V. DRV8825 memiliki beberapa fitur menarik:

  • Kontrol Microstepping: Memungkinkan pengendalian motor dengan resolusi yang lebih tinggi.
  • Perlindungan Thermal Shutdown: Mencegah kerusakan akibat overheating.
  • Anti-Short Protection: Mencegah kerusakan akibat hubungan pendek.

Spesifikasi DRV8825

Sebelum melanjutkan, mari kita lihat beberapa spesifikasi dari DRV8825:

  • Tegangan Operasi: 8,2V hingga 45V
  • Arus Maksimal per Fase: 2.2A (jika pendingin yang sesuai digunakan)
  • Mode Microstepping: Penuh, 1/2, 1/4, 1/8, 1/16, dan 1/32
  • Antarmuka: Digital
  • Kemampuan Jalan Mundur: Dapat mandiri dan kontrol oleh mikrokontroler

Komponen yang Diperlukan

Sebelum kita mulai menghubungkan DRV8825 dengan STM32, pastikan Anda memiliki komponen berikut:

  1. DRV8825 Driver
  2. Motor Stepper Bipolar
  3. Mikrokontroler STM32
  4. Breadboard dan Jumper Wire
  5. Sumber Daya (Power Supply)
  6. Resistor (untuk pull-up jika diperlukan)

Diagram Koneksi

Berikut adalah diagram sederhana mengenai bagaimana cara menghubungkan DRV8825 ke STM32:

              +------------------+
              |      DRV8825     |
              |                  |
              |     STEP ------- STM32 Pin (GPIO)
              |     DIR  -------- STM32 Pin (GPIO)
              |     GND  -------- GND
              |     VCC  -------- +V (Power Supply)
              |     1A   -------- Motor Coil A
              |     1B   -------- Motor Coil A'
              |     2A   -------- Motor Coil B
              |     2B   -------- Motor Coil B'
              +------------------+

Menghubungkan DRV8825 dengan STM32

1. Koneksi Fisik

  • VCC: Hubungkan pin VCC DRV8825 ke sumber daya sesuai dengan spesifikasi motor Anda. Pastikan untuk tidak melebihi tegangan yang ditentukan.
  • GND: Hubungkan pin GND driver ke ground pada STM32.
  • Motor: Pasang kabel motor stepper ke pin 1A, 1B, 2A, dan 2B pada DRV8825.
  • STEP dan DIR: Hubungkan pin STEP dan DIR ke pin GPIO pada STM32.

2. Menyusun Program

Setelah semua koneksi selesai, langkah selanjutnya adalah mengembangkan program untuk STM32.

Contoh Kode (Menggunakan HAL Library)

Berikut adalah contoh kode sederhana untuk mengontrol motor dengan STM32:

#include "stm32f4xx_hal.h"

#define STEP_PIN GPIO_PIN_5
#define DIR_PIN GPIO_PIN_6
#define GPIO_PORT GPIOA

void setup() {
  // Inisialisasi HAL
  HAL_Init();
  
  // Konfigurasi GPIO
  __HAL_RCC_GPIOA_CLK_ENABLE();
  
  GPIO_InitTypeDef GPIO_InitStruct;
  GPIO_InitStruct.Pin = STEP_PIN | DIR_PIN;
  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  GPIO_InitStruct.Pull = GPIO_NOPULL;
  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  HAL_GPIO_Init(GPIO_PORT, &GPIO_InitStruct);
}

void loop() {
  // Set arah motor
  HAL_GPIO_WritePin(GPIO_PORT, DIR_PIN, GPIO_PIN_SET); // Putar satu arah
  
  // Lakukan langkah
  for (int i = 0; i < 200; i++) { // Ganti 200 dengan jumlah langkah yang diinginkan
    HAL_GPIO_WritePin(GPIO_PORT, STEP_PIN, GPIO_PIN_SET);
    HAL_Delay(1);
    HAL_GPIO_WritePin(GPIO_PORT, STEP_PIN, GPIO_PIN_RESET);
    HAL_Delay(1);
  }
  
  // Berhenti sejenak
  HAL_Delay(1000);
  
  // Set arah motor sebaliknya
  HAL_GPIO_WritePin(GPIO_PORT, DIR_PIN, GPIO_PIN_RESET); // Putar arah sebaliknya
  
  // Lakukan langkah
  for (int i = 0; i < 200; i++) { // Ganti 200 dengan jumlah langkah yang diinginkan
    HAL_GPIO_WritePin(GPIO_PORT, STEP_PIN, GPIO_PIN_SET);
    HAL_Delay(1);
    HAL_GPIO_WritePin(GPIO_PORT, STEP_PIN, GPIO_PIN_RESET);
    HAL_Delay(1);
  }
  
  // Berhenti sejenak
  HAL_Delay(1000);
}

int main(void) {
  setup();
  
  while (1) {
    loop();
  }
}

Penjelasan Kode

  1. Inisialisasi HAL: Memulai komponen HAL STM32.
  2. Konfigurasi GPIO: Mengatur pin STEP dan DIR sebagai output.
  3. Loop Motor: Membuat siklus untuk menjalankan motor satu arah, kemudian balik arah setelah beberapa langkah.

Kesimpulan

Dengan mengikuti panduan ini, Anda telah belajar bagaimana menghubungkan driver motor stepper DRV8825 dengan mikrokontroler STM32. DRV8825 adalah pilihan yang sangat baik untuk aplikasi yang membutuhkan kontrol presisi atas motor stepper. Pastikan untuk melakukan pengujian secara hati-hati agar semua komponen berfungsi dengan baik.

Jika Anda memiliki pertanyaan lebih lanjut mengenai proyek ini atau ingin mendalami topik lain terkait motor stepper dan STM32, jangan ragu untuk mencari informasi lebih lanjut. Selamat mencoba!