Mengukur Arus AC Menggunakan Sensor ACS712 dan Menampilkannya ke LCD 16×2 Menggunakan Arduino

- Tujuan Praktikum
- Mahasiswa dapat memahami cara kerja sensor arus ACS712 dalam mengukur arus AC.
- Mahasiswa mampu membaca data sensor dan menampilkannya pada LCD 16×2 menggunakan Arduino.
- Mahasiswa mampu membuat dan mensimulasikan rangkaian di Proteus.
- Alat dan Bahan
| No | Nama Komponen | Jumlah |
| 1 | Arduino UNO | 1 buah |
| 2 | Sensor Arus ACS712-05B | 1 buah |
| 3 | LCD 16×2 | 1 buah |
| 4 | Potensio untuk kontras LCD (10k) | 1 buah |
| 5 | Sumber AC 220V (simulasi Proteus) | 1 buah |
| 6 | Resistor beban 100Ω | 1 buah |
| 7 | Proteus 8 atau versi terbaru | – |
| 8 | Arduino IDE | – |
- Dasar Teori
Sensor ACS712 menggunakan prinsip efek Hall untuk mengukur arus. Sensor ini memiliki tegangan output 2.5V saat tidak ada arus. Ketika arus mengalir, tegangan ini akan berubah proporsional terhadap besarnya arus (dalam hal ini, 185 mV per Ampere untuk versi 5A).
Untuk mengukur arus AC, kita perlu menghitung nilai RMS (Root Mean Square) dari sinyal output sensor. Nilai ini kemudian ditampilkan ke LCD 16×2 untuk visualisasi.
- Skema Rangkaian (berdasarkan gambar)

Koneksi Sensor ACS712:
- IP+ dan IP- dihubungkan ke rangkaian beban AC (dari sumber 220V dan resistor).
- VCC → 5V Arduino
- GND → GND Arduino
- VOUT → A0 Arduino
Koneksi LCD 16×2 (mode 4-bit):
| Pin LCD | Koneksi ke Arduino |
| VSS | GND |
| VDD | 5V |
| V0 | Potensio (untuk kontras) |
| RS | Pin 7 |
| RW | GND |
| E | Pin 6 |
| D4 | Pin 5 |
| D5 | Pin 4 |
| D6 | Pin 3 |
| D7 | Pin 2 |
- Program Arduino
#include <LiquidCrystal.h>
// Inisialisasi pin untuk LCD: RS, E, D4, D5, D6, D7
LiquidCrystal lcd(7, 6, 5, 4, 3, 2);
const int analogPin = A0;
float sensitivity = 0.185; // 185mV per Ampere untuk ACS712 5A
float offset = 2.5; // Tegangan tengah
void setup() {
lcd.begin(16, 2);
lcd.print("Mengukur Arus...");
delay(1000);
lcd.clear();
}
void loop() {
const int sampleCount = 1000;
float voltage, current;
float sum = 0;
for (int i = 0; i < sampleCount; i++) {
int adcValue = analogRead(analogPin);
voltage = (adcValue * 5.0) / 1023.0;
float acComponent = voltage - offset;
sum += acComponent * acComponent;
delayMicroseconds(100);
}
float rms = sqrt(sum / sampleCount);
current = rms / sensitivity;
lcd.setCursor(0, 0);
lcd.print("Arus AC RMS:");
lcd.setCursor(0, 1);
lcd.print(current, 2);
lcd.print(" A ");
delay(1000);
}
- Instruksi Praktikum
- Rancang rangkaian seperti gambar yang tersedia pada Proteus.
- Upload program di atas ke Arduino IDE dan generate file .hex.
- Masukkan file HEX ke modul Arduino di Proteus.
- Jalankan simulasi dan perhatikan nilai arus yang muncul di LCD.
- Catat nilai hasil pengukuran.
- Pertanyaan
- Bagaimana cara kerja sensor ACS712 dalam mengukur arus AC?
- Apa yang dimaksud dengan nilai RMS? Mengapa digunakan?
- Apa perbedaan dalam membaca arus AC dan DC menggunakan sensor ACS712?
- Simulasikan jika sensor ACS712 digunakan untuk mengukur arus DC
- Kesimpulan
Tuliskan kesimpulan berdasarkan hasil pengukuran dan pemahaman dari simulasi yang telah dilakukan.
Memahami Lebih Dalam Prinsip Kerja Sensor ACS712
Sensor ACS712 bekerja berdasarkan efek Hall, yaitu perubahan tegangan keluaran akibat medan magnet yang dihasilkan oleh arus yang mengalir melalui konduktor internal sensor. Semakin besar arus yang mengalir, semakin besar pula pergeseran tegangan output dari titik tengah 2.5V. Karena sinyal AC berbentuk gelombang sinus yang berubah-ubah setiap saat, pembacaan sesaat saja tidak cukup untuk merepresentasikan nilai arus yang sebenarnya, sehingga diperlukan perhitungan RMS. Penjelasan lebih detail mengenai karakteristik dan prinsip kerja sensor ini dapat dipelajari pada artikel Prinsip Kerja Pengukuran Sensor Arus AC ACS712.
Peran ADC dalam Pembacaan Sensor Arus
Nilai tegangan analog dari pin VOUT sensor ACS712 perlu diubah menjadi data digital agar dapat diproses oleh mikrokontroler Arduino. Proses ini dilakukan oleh ADC (Analog to Digital Converter) internal yang dimiliki Arduino Uno, dengan resolusi 10-bit yang menghasilkan nilai 0-1023 untuk rentang tegangan 0-5V. Memahami cara kerja ADC secara umum akan sangat membantu dalam mengkalibrasi hasil pembacaan arus agar lebih akurat. Konsep dasarnya dibahas tuntas pada artikel Penerapan ADC pada Arduino Uno Menggunakan Proteus, yang juga menggunakan simulasi Proteus sebagai media praktikum.
Tips Menampilkan Data Sensor pada LCD 16×2 agar Lebih Informatif
Selain menampilkan angka arus, LCD 16×2 juga bisa dimanfaatkan untuk menampilkan status atau kondisi tertentu, misalnya peringatan ketika arus melebihi batas aman. Pengaturan kontras melalui potensiometer dan pemilihan mode 4-bit seperti pada praktikum ini adalah konfigurasi paling umum dan hemat pin. Jika ingin mengeksplorasi penggunaan LCD 16×2 untuk keperluan lain seperti sistem kontrol level menggunakan data yang disimpan permanen, artikel Pemanfaatan EEPROM untuk Sistem Kontrol Level Tangki dengan LCD 16×2 bisa menjadi referensi tambahan yang relevan.
Perbandingan Pengukuran Arus AC dan Arus DC
Salah satu pertanyaan penting dalam praktikum ini adalah perbedaan mendasar antara pengukuran arus AC dan arus DC menggunakan sensor yang sama. Pada arus DC, nilai yang terbaca relatif konstan sehingga tidak memerlukan perhitungan RMS, cukup dengan membaca selisih tegangan dari titik tengah secara langsung. Sedangkan pada arus AC, nilai berubah secara periodik mengikuti gelombang sinus sehingga dibutuhkan sampling yang lebih cepat dan perhitungan matematis tambahan. Prinsip pembacaan sinyal analog secara umum, termasuk untuk sensor suhu, dapat dipelajari lebih lanjut pada artikel Praktikum: Membaca Sensor Suhu dengan ADC pada Proteus sebagai perbandingan penerapan ADC pada jenis sensor yang berbeda.
Baca juga: Ingin Jadi Ahli IoT & Otomasi? Semua Bisa Dimulai dari Arduino! untuk memahami roadmap lengkap belajar Arduino dari dasar hingga proyek IoT.




