Anda di halaman 1dari 5

Penjelasan Singkat

Pada tutorial kali ini hanya akan dibahas untuk mengakses sensor Arus bolak-balik
menggunakan module ACS712 menggunakan mikrokontroler Arduino Uno.

Module ACS712 merupakan module yang difungsikan untuk mensensing arus pada suatu
rangkaian tegangan bolak balik.

Module ini mudah didapatkan di toko – toko elektronika maupun toko online seperti tokopedia,
bukalapak dengan harga yang terjangkau.

Dijual dalam bentuk package PCB dan IC only, dan saya sarankan membelinya yang sudah
package PCB sehingga tidak perlu repot-repot dalam hal pengkoneksiannya ke mikrokontroler.

Dipasaran banyak dijual sensor arus ini dalam bentuk modul, seperti gambar dibawah ini

Karakateristik ACS712

 Memiliki sinyal analog dengan low-noise atau ganguan rendah


 bandwidth 80 kHz
 untuk output memiliki error 1.5% pada Ta = 25 °C
 Range sensitivitas antara 66 – 185 mV/A
 Memiliki resistansi sebesar 1.2 mΩ
 Tegangan kerja pada 5.0 V
 Tegangan offset keluaran yang sangat stabil
 Hysterisis yang diakibatkan oleh medan magnet mendekati nol
 Perbandingan rasio keluaran sesuai tegangan sumber

Varian dari ic ACS712 antara lain


 ACS712ELCTR-05B-T jangkauan pengukuran = ±5 A, sensitivitas = 185 mV/A
 ACS712ELCTR-20A-T jangkauan pengukuran = ±20 A, sensitivitas = 100 mV/A
 ACS712ELCTR-30A-T jangkauan pengukuran = ±30 A, sensitivitas = 66 mv/A

Tutorial Mengakses sensor arus dengan arduino uno


Bahan yang perlu dipersiapkan antara lain :

 Arduino Uno
 Komputer + Software IDE Arduino
 Modul ACS712-5A
 Breadboard
 Kabel Jumper

Baca juga : Project Radio FM menggunakan Arduino dan LCD 20x4

Modul ACS712-5A merupakan modul sensor yang sudah dipackage dengan PCB sehingga
praktis dan mudah dalam penggunaannya. Berikut gambarnya :
Skema yang perlu dirangkaikan

Langkah – langkah dari mengakses sensor arus ini yang dimana sering mengalami ketidak
stabilan output maka dilakukan beberapa langkah sebagai berikut :

1. Data dari modul sensor ini yaitu tegangan analog yan akan simpan pada variabel data
misal “Voutput”
2. Setelah itu nilai variable Voutput – 2.50, dan kemudian disimpan pada variabel baru
“Voa” dan wajib diabsolutkan.
3. Setelah itu di dapat Voa/0.185 (sesuai dengan datasheet sensor) dan kemudian disimpan
pada var “Amp(A)”.
4. Nilai var Amp(A) diubah menjadi nilai (mA) dengan “Amp/1000” .(dikarenakan untuk
keperluan data dalam pengkalibrasian)
5. Proses terakhir yaitu proses kalibrasi.

Sedangkan dalam proses kalibrasi memiliki algoritma sebagai berikut :

1. Jikakalau waktu lebih kecil dibanding dengan waktu setting dalam proses penjumlahan
Nilai var Amp(mA) yang dilakukan secara berkala.
2. Jika di atas waktu tersetting, akan dilakukan pembagian nilai antara Jumlah total
Amp(mA) yang telah di dapatkan di bagi dengan nilai waktu tersetting.
3. Sehingga didapatkan nilai rata-rata, di simpan pada var calibration

Nilai calibration ini di gunakan untuk mengurangi ketidak stabilan pada output sensor arus
ACS712. Sehingga di dapatkan nilai Arus fix dengan mengurangi nilai Amp(mA)-calibration.

Contoh kode program yang sederhananya :

/* --- w w w .nyebarilmu.com ---

double arus_temporary=0.0;

1
2
3 /* --- www.nyebarilmu.com --- */
4
5 double arus_temporary=0.0;
6 float adc_Volt, cal_value,temp;
7 unsigned long waktu_kalibrasi=0, kalibrasi=600;
8 boolean calibration=false;
9
10 void setup(){
11 Serial.begin(9600); //baud komunikasi serial monitor 9600bps
12 Serial.println("Sistem dimulai");
13 Serial.print("waktu kalibrasi :");
14 Serial.println(kalibrasi);
15 }
16
17 void data_olah(){
18 temp = analogRead(A0) * (5.0 / 1023.0); //konversi tegangan analog menjadi digital
19 adc_Volt = abs(temp - 2.50); //mengambil selisih tegangan pada zero point
20 adc_Volt /= 0.185; //Arus dalam A
21 adc_Volt *= 1000; //merubah Arus A ke mA
22
23 if(waktu_kalibrasi < kalibrasi){
24 waktu_kalibrasi++;
25 Serial.print("Waktu Kalibrasi:");
26 Serial.println(waktu_kalibrasi);
27 arus_temporary += adc_Volt; //penjumlahan arus output sensor
28 calibration = true;
29 }else if(calibration == true){
30 cal_value = arus_temporary/kalibrasi; //pembagian nilai keseluruhan dengan waktu
31 calibration = false;
32 }
33
34 if(calibration == false){
35 adc_Volt -= cal_value;
36 adc_Volt = abs(adc_Volt);
37 Serial.println("Satuan");
38 Serial.print(" mA :");
39 Serial.println(adc_Volt);
40 adc_Volt /= 1000;
41 Serial.print(" A :");
42 Serial.println(adc_Volt);
43 Serial.println(" ");
44 }
45 }
46
47 void loop(){
48 data_olah();
49 delay(500); //waktu tunda per data
50 }
51

Keterangan untuk nilai kenaikan tegangan output disesuaikan dengan tipe sensor yang
digunakan, untuk 5A (185mV), 20A (100mV), dan 30A (66mV).

Pengembangan mengakses sensor arus penampil LCD 16×2


Bahan yang perlu dipersiapkan antara lain :

 Arduino Uno
 Komputer + Software IDE Arduino
 Modul ACS712-5A
 LCD 16×2 dan PCF8574
 Breadboard
 Kabel Jumper
 Rangkaian pendukung kestablian pembacaan (dioda 1n4148, dan capasito 100nF)

Rangkaian

Program dengan LCD 16×2

Anda mungkin juga menyukai