# Hack Your Skills! to be Professional Mechatronics
Hello friends, :) kali ini kita akan membahas tentang sensor arus ACS712 dan Arduino. Pembahasan pada artikel ini akan difokuskan pada bagaimana menjadikan sensor ACS712 sebagai detektor aktivitas mesin. Aktivitas yang dimaksud yaitu apakah sebuah alat atau mesin sedang menyala atau tidak. Studi kasus yang kita angkat ini adalah salah satu pengembangan project yang dikerjakan oleh kami untuk membuat timer switch controller mesin produksi yang terdiri dari 2 buah mesin produksi dan 2 buah motor pompa di suatu pabrik. Akan tetapi, kita hanya akan membahas bagaimana menjadikan sensor arus ACS712 sebagai pemicu apakah mesin harus nyala atau tidak.
Dengan demikian, yang akan kita ulas adalah bagaimana rangkaian sensor ACS712 untuk tegangan AC serta bagaimana cara memprogramnya. Selain itu, kita akan membahas sedikit tentang tegangan RMS dan beberapa hal penting lainnya. Mari kita mulai dengan skema sensor ACS712 buatan Allegro ini.
Berdasarkan datasheetnya, jika kita menggunakan ADC pada arduino dengan analogRead(), maka output dari ACS712 ini standarnya adalah 512. Akan tetapi dalam praktek, komponen yang kita pakai akan sangat mempengaruhi sehingga bisa saja keluaran dari sensor berkisar antara 511-513. Dalam kasus ini, kita tidak akan terlalu merepotkan hal tersebut karena tujuan dari controller ini bukanlah untuk mengukur arus, tapi menentukan apakah ada arus yang mengalir atau tidak.
Jika keluaran sensor jauh dari angka 512, maka ada dua kemungkinan: (1) sensornya rusak, (2) ada rangkaian yang tidak benar, terputus, atau renggang (jika menggunakan project board). Angka 512 berarti tidak ada arus yang mengalir. Jika angka lebih dari 512 (misal 520) berarti ada arus maju yang lewat, tapi jika angka lebih kecil dari 512 (misal 492) berarti ada arus mundur yang lewat.
Dalam tegangan DC, arusnya searah. Sehingga sensor akan menunjukkan angka di atas 512 atau di bawah 512 dengan stabil. Tapi jika pada tegangan AC, maka output sensor akan naik-turun karena arusnya bergerak bolak-balik. Intulah kenapa pada gambar di atas kita tampilkan output maksimal dan minimal. Silakan dicoba untuk lebih memahaminya. :)
Berikut ini adalah program yang kami gunakan untuk menampilkan data sensor pada LCD seperti di atas. Silakan pin sensor dan LCD-nya disesuaikan.
Yang kita hitung adalah selisih antara minimum maksimum, tapi tetap menggunakan angka 512 sebagai referensi. Inti logikanya seperti ini:
LIMIT bernilai antara (2-1020) digunakan untuk mengatur responsifitas detektor. Nilai LIMIT menentukan batas minimal arus yang akan menjadi acuan detektor. Jika alat yang akan dideteksi mengkonsumsi arus yang rendah, maka nilai LIMIT bisa dikecilkan. Sedangkan jika alat yang akan dideteksi mengkonsumsi arus yang besar, nilai LIMIT bisa dinaikkan. Berikut ini sketch arduino untuk simulasi. Pada simulasi ini, alatnya yang dideteksi adalah kipas angin 220VAC 35W.
Untuk lebih jelasnya, bisa cek di video berikut ini:
Solusinya : (1) Jauhkan dari benda-benda atau komponen yang mengandung elektromagnet, jangan sampai elektromagnetnya mengenai penampang tengah IC. (2) Amankan sensor dengan penutup berupa lempengan berbahan besi pada bagian atas dan bawah PCB.
Itu dulu untuk materi kali ini, semoga bermanfaat dan selamat berkarya. :)
Arduino + Sensor ACS712 : Detektor Nyala Mesin dengan Sensor Arus ACS712
![]() |
Salah satu implementasi dari sensor arus |
Dengan demikian, yang akan kita ulas adalah bagaimana rangkaian sensor ACS712 untuk tegangan AC serta bagaimana cara memprogramnya. Selain itu, kita akan membahas sedikit tentang tegangan RMS dan beberapa hal penting lainnya. Mari kita mulai dengan skema sensor ACS712 buatan Allegro ini.
Rangakaian Sensor ACS712
Rangkaian ini adalah rangkaian yang kami anggap stabil. Sebelumnya kami sudah mencoba rangkaian yang disarankan oleh Allegro pada dokumen ACS712, hanya saja output yang diharapkan kurang stabil. Entah itu karena memang dari sananya begitu atau komponen yang saya gunakan kurang bagus. Anda boleh mencoba keduanya. :)![]() |
Rangkaian dasar ACS712 |
![]() |
Modifikasi rangkaian ACS712 |
Berdasarkan datasheetnya, jika kita menggunakan ADC pada arduino dengan analogRead(), maka output dari ACS712 ini standarnya adalah 512. Akan tetapi dalam praktek, komponen yang kita pakai akan sangat mempengaruhi sehingga bisa saja keluaran dari sensor berkisar antara 511-513. Dalam kasus ini, kita tidak akan terlalu merepotkan hal tersebut karena tujuan dari controller ini bukanlah untuk mengukur arus, tapi menentukan apakah ada arus yang mengalir atau tidak.
![]() |
Output ACS712 dibaca dengan analogRead() arduino |
Dalam tegangan DC, arusnya searah. Sehingga sensor akan menunjukkan angka di atas 512 atau di bawah 512 dengan stabil. Tapi jika pada tegangan AC, maka output sensor akan naik-turun karena arusnya bergerak bolak-balik. Intulah kenapa pada gambar di atas kita tampilkan output maksimal dan minimal. Silakan dicoba untuk lebih memahaminya. :)
Berikut ini adalah program yang kami gunakan untuk menampilkan data sensor pada LCD seperti di atas. Silakan pin sensor dan LCD-nya disesuaikan.
#include <LiquidCrystal.h> // coder haripinter, elangsakti.com // ACS 712 const byte sensor = A0; // Settingan LCD RS E D4 D5 D6 D7 LiquidCrystal lcd(8,9,10,11,12,13); void setup() { pinMode(sensor, INPUT); lcd.begin(16,2); } void loop() { sensor_listener(); } int acs_ref_data = 512; int acs_data = 512; int acs_data_max = acs_ref_data; int acs_data_min = acs_ref_data; unsigned long delay_now = 0; unsigned long delay_last = 0; unsigned long delay_limit = 1000; void sensor_listener(){ acs_data = analogRead(sensor); // nilai tertinggi if(acs_data > acs_data_max){ acs_data_max = acs_data; } // nilai terendah if(acs_data < acs_data_min){ acs_data_min = acs_data; } if(millis() - delay_last >= delay_limit){ lcd.setCursor(0,0); lcd.print("Min: "); lcd.print(acs_data_min); lcd.print(" "); lcd.setCursor(0,1); lcd.print("Max: "); lcd.print(acs_data_max); lcd.print(" "); delay_last += delay_limit; acs_data_min = acs_ref_data; acs_data_max = acs_ref_data; } }
Detektor Nyala Mesin / Alat
Berdasarkan karakteristik sensor ACS712 dalam mendeteksi arus AC, maka kita bisa menggunakan 2 cara dalam menentukan apakah alat atau mesin sedang menyala atau tidak. Pertama, kita bisa menggunakan konsep output minimum-maksimum atau sering diterapkan pada tegangan RMS. Kedua, kita bisa menggunakan nilai output minimum saja atau maksimum saja. Dalam alat controller mesin produksi yang kami buat yaitu menggunakan konsep minimum-maksimum karena kita anggap bisa lebih "valid" dalam aplikasinya.Yang kita hitung adalah selisih antara minimum maksimum, tapi tetap menggunakan angka 512 sebagai referensi. Inti logikanya seperti ini:
Jika (Minimum < 512) DAN (Maksimum > 512) DAN (Maksimum-Mininum > LIMIT) Berarti Mesin Nyala Jika tidak Mesin Tidak Nyala
LIMIT bernilai antara (2-1020) digunakan untuk mengatur responsifitas detektor. Nilai LIMIT menentukan batas minimal arus yang akan menjadi acuan detektor. Jika alat yang akan dideteksi mengkonsumsi arus yang rendah, maka nilai LIMIT bisa dikecilkan. Sedangkan jika alat yang akan dideteksi mengkonsumsi arus yang besar, nilai LIMIT bisa dinaikkan. Berikut ini sketch arduino untuk simulasi. Pada simulasi ini, alatnya yang dideteksi adalah kipas angin 220VAC 35W.
#include <LiquidCrystal.h> // coder haripinter, elangsakti.com // ACS 712 const byte sensor = A0; // Settingan LCD RS E D4 D5 D6 D7 LiquidCrystal lcd(8,9,10,11,12,13); int acs_ref_data = 512; int acs_data = 0; int acs_data_max = acs_ref_data; int acs_data_min = acs_ref_data; int acs_selisih = 0; int LIMIT = 5; unsigned long delay_now = 0; unsigned long delay_last = 0; unsigned long delay_limit = 1000; void setup() { pinMode(sensor, INPUT); lcd.begin(16,2); } void loop() { sensor_listener(); } void sensor_listener(){ acs_data = analogRead(sensor); // nilai tertinggi if(acs_data > acs_data_max){ acs_data_max = acs_data; } // nilai terendah if(acs_data < acs_data_min){ acs_data_min = acs_data; } if(millis() - delay_last >= delay_limit){ lcd.setCursor(0,0); lcd.print("Min: "); lcd.print(acs_data_min); lcd.print(" "); lcd.setCursor(0,1); lcd.print("Max: "); lcd.print(acs_data_max); lcd.print(" "); lcd.setCursor(10,0); lcd.print("Stat:"); lcd.setCursor(10,1); // untuk detektor acs_selisih = acs_data_max-acs_data_min; if( (acs_data_min < acs_ref_data) && (acs_data_max > acs_ref_data) && (acs_selisih > LIMIT)){ lcd.print("ON "); }else{ lcd.print("OFF"); } delay_last += delay_limit; acs_data_min = acs_ref_data; acs_data_max = acs_ref_data; } }
![]() |
Kondisi saat kipas mati |
![]() |
Kondisi saat kipas nyala. |
Proteksi Sensor ACS712 dari Noise
Sensor ACS712 menggunakan hall-effect untuk mendeteksi arus, artinya sensor ini mendeteksi induksi elektromagnet untuk menentukan besar arus arus yang dikonsumsi. Oleh sebab itu, sensor akan berperilaku aneh jika dekat dengan benda-benda yang mengandung magnet atau elektromagnet. Misalnya relay, transformer, atau bahkan kabel listrik dengan induksi elektromaknet yang terlalu kuat.Solusinya : (1) Jauhkan dari benda-benda atau komponen yang mengandung elektromagnet, jangan sampai elektromagnetnya mengenai penampang tengah IC. (2) Amankan sensor dengan penutup berupa lempengan berbahan besi pada bagian atas dan bawah PCB.
Itu dulu untuk materi kali ini, semoga bermanfaat dan selamat berkarya. :)
Top Artikel :
Written by ElangSakti
Arduino + Sensor ACS712 : Detektor Nyala Mesin dengan Sensor Arus ACS712
Bahasan: Salah satu implementasi dari sensor arus Hello friends, :) kali ini kita akan membahas tentang sensor arus ACS712 dan Arduino . Pembah...
Published at Kamis, 01 September 2016, Updated at Kamis, 01 September 2016
Reviewed by dr. on
Rating: 4.7
Arduino + Sensor ACS712 : Detektor Nyala Mesin dengan Sensor Arus ACS712
Bahasan: Salah satu implementasi dari sensor arus Hello friends, :) kali ini kita akan membahas tentang sensor arus ACS712 dan Arduino . Pembah...
Published at Kamis, 01 September 2016, Updated at Kamis, 01 September 2016
Reviewed by dr. on
Rating: 4.7
Langganan:
Posting Komentar
(
Atom
)
itu komponennya resistor capasitor it yg dipakek yg brpa aj mas?? bleh tlog bntu??
BalasHapusUntuk skematik dan wiring dengan kipas anginnya bagaimana ya kak
Hapus