Pendahuluan
Dalam dunia elektronika, penggunaan motor DC dan motor stepper menjadi semakin umum. Untuk mengendalikan motor-motor tersebut, kita memerlukan sebuah komponen yang dapat mengatur arah dan kecepatan putaran motor. Salah satu komponen yang banyak digunakan adalah Motor Driver. Di antara berbagai pilihan yang ada, DRV8833 adalah salah satu motor driver yang cukup populer. Artikel ini akan membahas tentang modul motor driver DRV8833 dan bagaimana cara mengimplementasikannya dengan mikrokontroler STM32.
Apa Itu DRV8833?
DRV8833 adalah motor driver yang dirancang oleh Texas Instruments. Modul ini dapat mengendalikan dua motor DC secara bersamaan, atau satu motor stepper. Dengan kemampuan arus maksimum mencapai 1,5 A per saluran, DRV8833 sangat efisien untuk banyak aplikasi.
Fitur Utama DRV8833:
- Kemampuan untuk mengendalikan dua motor DC atau satu motor stepper.
- Tegangan operasi antara 2,7V hingga 10,8V.
- Dua saluran output untuk kontrol arah putaran.
- Perlindungan terhadap overcurrent dan thermal shutdown.
- Fungsi PWM (Pulse Width Modulation) untuk kontrol kecepatan motor.
Spesifikasi DRV8833
Sebelum kita melanjutkan implementasi, penting untuk memahami spesifikasi dari DRV8833. Berikut adalah beberapa spesifikasi penting:
- Tegangan Operasi: 2.7V hingga 10.8V
- Arus Maksimum per Saluran: 1.5A (1.2A kontinu)
- Ukuran Chip: 25mm x 15mm
- Status Indikasi: LED untuk menunjukkan status motor
- Pelindung: Overcurrent, thermal shutdown
Komponen yang Diperlukan
Untuk memulai proyek ini, Anda perlu menyiapkan komponen berikut:
- Modul DRV8833
- Mikrokontroler STM32 (STM32F103C8T6 misalnya)
- Motor DC atau Stepper motor
- Sumber daya (power supply)
- Breadboard dan kabel jumper
- Software pemrograman (misalnya STM32CubeIDE)
Rangkaian Koneksi
Berikut adalah cara menghubungkan DRV8833 ke STM32:
Skema Koneksi
- VCC: Sambungkan pin VCC dari modul DRV8833 ke pin VCC pada sumber daya.
- GND: Sambungkan pin GND dari modul DRV8833 ke pin GND pada sumber daya dan STM32.
- IN1 dan IN2: Sambungkan IN1 dan IN2 pada DRV8833 ke pin GPIO dari STM32.
- Motor: Sambungkan motor ke terminal OUT1 dan OUT2 pada modul DRV8833.
Diagram Koneksi
STMicrocontroller STM32 DRV8833
------------------------- -----------------
VCC ---------- VCC
GND ---------- GND
GPIO1 ---------- IN1
GPIO2 ---------- IN2
OUT1 ---------- Motor +
OUT2 ---------- Motor -
Mengimplementasikan Kode
Setelah melakukan koneksi, langkah selanjutnya adalah menulis kode untuk mengontrol motor. Berikut adalah contoh kode sederhana menggunakan STM32 HAL Library.
Contoh Kode untuk Mengontrol Motor DC
#include "stm32f1xx_hal.h"
// Define GPIO pins for DRV8833
#define IN1_PIN GPIO_PIN_0
#define IN2_PIN GPIO_PIN_1
#define GPIO_PORT GPIOA
void SystemClock_Config(void);
static void MX_GPIO_Init(void);
int main(void) {
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
while (1) {
// Putar motor maju
HAL_GPIO_WritePin(GPIO_PORT, IN1_PIN, GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIO_PORT, IN2_PIN, GPIO_PIN_RESET);
HAL_Delay(2000);
// Putar motor mundur
HAL_GPIO_WritePin(GPIO_PORT, IN1_PIN, GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIO_PORT, IN2_PIN, GPIO_PIN_SET);
HAL_Delay(2000);
// Matikan motor
HAL_GPIO_WritePin(GPIO_PORT, IN1_PIN, GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIO_PORT, IN2_PIN, GPIO_PIN_RESET);
HAL_Delay(2000);
}
}
static void MX_GPIO_Init(void) {
GPIO_InitTypeDef GPIO_InitStruct = {0};
__HAL_RCC_GPIOA_CLK_ENABLE();
// Configure GPIO pins
GPIO_InitStruct.Pin = IN1_PIN | IN2_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);
}
Penjelasan Kode
- Inisialisasi HAL: Menggunakan
HAL_Init()
untuk inisialisasi HAL library. - Pengaturan GPIO: Mengonfigurasi pin GPIO yang digunakan untuk kontrol motor.
- Mengontrol Motor:
- Memutar motor maju dengan mengatur IN1 HIGH dan IN2 LOW.
- Memutar motor mundur dengan mengatur IN1 LOW dan IN2 HIGH.
- Mematikan motor dengan mengatur kedua pin ke LOW.
Kesimpulan
Dengan menggunakan modul motor driver DRV8833, Anda dapat dengan mudah mengontrol motor DC dan stepper menggunakan STM32. Panduan ini memberikan kerangka dasar untuk memulai, dan Anda dapat mengembangkan kode lebih lanjut untuk aplikasi yang lebih kompleks seperti kontrol kecepatan menggunakan PWM dan pengendalian motor yang lebih halus. Jangan ragu untuk bereksperimen dengan berbagai hal, seperti menghubungkan sensor untuk umpan balik. Happy experimenting!