Pemantauan Arus dengan Sensor ACS712 pada STM32

3 min read 22-08-2024
Pemantauan Arus dengan Sensor ACS712 pada STM32

Pendahuluan

Dalam dunia elektronik, pemantauan arus listrik sangat penting untuk berbagai aplikasi, mulai dari pengontrolan daya hingga sistem pemantauan energi. Salah satu metode yang umum digunakan untuk pemantauan arus adalah dengan menggunakan sensor arus Hall Effect. Sensor ACS712 adalah salah satu sensor yang populer karena kemudahan penggunaannya dan akurasi yang baik. Artikel ini akan membahas bagaimana cara menggunakan sensor ACS712 untuk pemantauan arus pada platform mikrokontroler STM32.

Apa Itu Sensor ACS712?

Sensor ACS712 adalah sensor arus berbasis teknologi Hall Effect yang dapat mengukur arus dengan akurasi yang tinggi. Sensor ini memiliki beberapa keunggulan, antara lain:

  • Pengukuran Ac dan Dc: Sensor ini dapat digunakan untuk mengukur arus bolak-balik (AC) dan arus searah (DC).
  • Isolasi Galvanik: Dengan menggunakan metode Hall Effect, sensor ini memberikan isolasi galvanik antara rangkaian pengukuran dan beban.
  • Mudah digunakan: Sensor ACS712 sangat mudah diintegrasikan dengan berbagai mikrokontroler, termasuk STM32.

Spesifikasi ACS712

Sebelum melanjutkan ke langkah-langkah penerapan, ada baiknya kita memahami spesifikasi teknis dari sensor ACS712:

  • Tegangan Supply: 5V
  • Sinyal Output: Analog (0V – 5V)
  • Range Pengukuran: Tersedia dalam beberapa variasi, terutama 5A, 20A, dan 30A
  • Sensitivity: 185 mV/A untuk 5A, 100 mV/A untuk 20A, dan 66 mV/A untuk 30A

Komponen yang Diperlukan

Berikut adalah komponen yang dibutuhkan untuk eksperimen ini:

  • Mikrokontroler STM32
  • Sensor ACS712 (tipe sesuai pilihan)
  • Rangkaian pemrograman STM32
  • Breadboard dan kabel koneksi
  • Sumber arus listrik (beban)
  • Multimeter untuk kalibrasi

Rangkaian Koneksi

Diagram Koneksi

Untuk menghubungkan ACS712 dengan STM32, Anda perlu melakukan langkah-langkah berikut:

  1. Hubungkan VCC dari ACS712 ke 5V pada STM32.
  2. Hubungkan GND dari ACS712 ke Ground pada STM32.
  3. Hubungkan output analog dari ACS712 (OUT) ke salah satu pin ADC di STM32, misalnya, pin PA0.
  4. Hubungkan beban yang ingin diukur arusnya ke terminal sensor ACS712 sesuai petunjuk di datasheet.

Contoh Diagram Koneksi

Berikut adalah contoh diagram koneksi sederhana:

   |----------------—|              |------------------|
   |     STM32       |              |     ACS712       |
   |----------------—|              |------------------|
   | 5V ----------> VCC              |                  |
   | GND----------> GND               |                  |
   | PA0 ---------> OUT              |                  |
   |----------------—|              |------------------|

Pemrograman STM32

Setelah koneksi dilakukan, langkah selanjutnya adalah memprogram STM32 untuk membaca sinyal dari sensor ACS712.

Contoh Kode Program

Berikut adalah contoh kode menggunakan HAL Library untuk STM32:

#include "stm32f4xx_hal.h"

// Deklarasi variabel
ADC_HandleTypeDef hadc1;
float arus;

// Inisialisasi ADC
void ADC_Init(void) {
    __HAL_RCC_ADC1_CLK_ENABLE();
    hadc1.Instance = ADC1;
    hadc1.Init.Resolution = ADC_RESOLUTION_12B;
    hadc1.Init.ScanConvMode = DISABLE;
    hadc1.Init.ContinuousConvMode = ENABLE;
    hadc1.Init.DiscontinuousConvMode = DISABLE;
    hadc1.Init.ExternalTrigConv = ADC_SOFTWARE_START;
    HAL_ADC_Init(&hadc1);
}

// Fungsi untuk membaca nilai ADC dan mengconvert ke arus
float readCurrent(void) {
    HAL_ADC_Start(&hadc1);
    uint32_t rawValue = HAL_ADC_GetValue(&hadc1);
    HAL_ADC_Stop(&hadc1);
    
    // Menghitung arus berdasarkan sensitivitas
    float voltage = (rawValue / 4096.0) * 5.0;  // Konversi ke volt
    arus = (voltage - 2.5) / 0.185;  // Konversi ke arus untuk ACS712 5A
    return arus;
}

// Fungsi utama
int main(void) {
    HAL_Init();
    ADC_Init();
    
    while (1) {
        float current = readCurrent();
        // Kode untuk menampilkan atau memproses nilai 'current'
        HAL_Delay(1000);  // Delay 1 detik
    }
}

Kalibrasi dan Pengujian

Setelah memprogram STM32, lakukan kalibrasi untuk memastikan akurasi pengukuran:

  1. Gunakan Multimeter untuk mengukur arus aktual pada beban.
  2. Bandingkan hasil dari sensor ACS712 dengan nilai dari multimeter.
  3. Sesuaikan perhitungan dalam kode jika diperlukan.

Kesimpulan

Sensor ACS712 merupakan alat yang efektif untuk pemantauan arus dalam aplikasi berbasis STM32. Dengan desain yang relatif sederhana dan akurasi yang tinggi, sensor ini memungkinkan pengguna untuk secara efisien memonitor arus dalam sistem mereka. Penggunaan sensor ini sangat membantu dalam penelitian dan pengembangan produk yang membutuhkan pemantauan energi. Melalui penerapan praktis yang dijelaskan di atas, Anda dapat memulai proyek Anda dalam pemantauan arus dengan ACS712 pada mikrokontroler STM32.