Sensor Tegangan Arduino
Sensor tegangan untuk arduino banyak dijual dipasaran
dengan harga yang bermacam macam sesuai dengan kualitas barang. Akan tetapi
seringkali sensor yang kita beli tidak akurat pengukurannya yang disebabkan
berbagai macam factor.
Pada postingan ini Saya akan memandu bagaimana prinsip
kerja sensor tegangan arduino dan bagaimana cara membuat modul sensor buatan
tangan anda.
Spesifikasi Arduino
Sesuai dengan data sheet, arduino mampu menerima input pada pin
Analog (A0) Maksimal 5 Volt dengan arus sebesar 40mA. Ketika pin Analog arduino
menerima 5 Volt maka arduino akan
membaca nilai ADC sebesar 1023.
Rangkaian Sensor Tegangan
Arduino
Gambar rangkaian ketika diberi tegangan 240 Vac menggunakan
circuit wizard
Gunakan Trafo non CT dengan input 240V dan
keluaran 6V, anda dapat menggunakan CT dengan besar 1 Ampere agar tidak terlalu
memakan tempat. Tegangan akan di searahkan dengan diode bridge, anda dapat melihat
fungsi diode bridge di postingan sebelumnya. Tegangan DC yang keluar dari diode
bridge akan masuk ke Kapasitor. Fungsi kapasitor disini untuk mengurangi ripple
teganganan / menstabilkan tegangan biar tidak naik turun. Tegangan DC akan
diberi beban resistor, tujuan resistor ini untuk memberi beban pada arduino sehingga
sensor dapat terbaca, tetapi ingat!!! Beban tidak boleh lebih dari 40mA ketika
berada di 5 Volt, karna akan membuat arduino error atau rusak.
Pemilihan
trafo
Karena
beban yang kita gunakan tidak lebih dari 50mA atau 0,05A maka cukup gunakan
trafo 1 ampere saja. Sesuai gambar diatas tegangan output yang diingin kan
adalah 6 volt ketika input trafo 240 Volt. Ketika menggunakan rasio 240V=6V
maka tegangan yang boleh masuk pada trafo adalah sebesar 400V karena hasil
stepdownnya adalah 10V, yang nantinya 10V akan menjadi 5Vketika melalui
resistor.
Pemilihan
Diode
Tegangan
6volt dan arus masuk 0,05A total 0,3 Watt.
Gunakan diode 1 watt saja sebanyak 4 buah.
Pemilihan
kapasitor.
Tegangan
yang masuk 6 volt DC , gunakan kapasior 25V 1000µF.
Pemilihan
Resistor
Gunakan
resistor 1 watt 100Ω sebanyak 2 buah.
Kenapa
100Ω ?
Untunk
lebih paham perhatikan gambar dibawah.
Kesimpulan
:
Tegangan
yang dapat masuk ke sensor tegangan maksimal 400Volt sehingga arduino menerima
tegangan 5 volt. Ketika diberi tegangan nominal 240Volt maka arduino akan menerima
tegangan hanya 3Volt.
Koding
Arduino
#define
input A15 //ganti A15 sesuai dengan pin analog yang digunakan
long
lastSample = 0;
long
sampleSum = 0;
int sampleCount
= 0;
int
nilai_adc = 0;
int
Volt_RMS= 0;
int
CorrectionVolt_RMS = 0;
int
Volt_ADC = 0;
void
setup() {
Serial.begin (9600);
}
void
loop() {
nilai_adc = analogRead(input);
if(millis() > lastSample + 1)
{
sampleSum += (analogRead (input));
sampleCount++;
lastSample = millis ();
}
if(sampleCount == 10)
{
float mean = sampleSum / sampleCount;
float value = sqrt (mean);
Volt_RMS = map(mean, 00, 1023, 00, 400);
// maping harus sesuai dengan pengan
kalibrasi
//
maping diatas menunjukan bahwa saat sensor diberi tegangan 5volt DC maka
arduino membaca 1023 ADC dan menampilkan tegangan 400 volt pada serial monitor
sebagai nilai dari Volt_rms. Jadi nilai 400 di coding maping harus di ubah
sesuai dengan tegangan maksimal ketika arduino mendapat tegangan 5 volt.
CorrectionVolt_RMS = Volt_RMS + 8; //ubah
angka 8 sesuai dengan kalibrasi
// jika hasil sensor kurang 8 volt dari hasil
pengukuran AVO meter maka di tambah 8
if (CorrectionVolt_RMS == 8) // angka 8 di
ganti sesuai dengan kalibrasi
{CorrectionVolt_RMS = 0;}
Volt_ADC = mean * (5.0 / 1023.0);
Serial.println (String (nilai_adc));//jumlah
adc
Serial.println (String (mean)); // adc rata
rata
Serial.println (String (Volt_RMS));
//tegangan rata rata
Serial.println (String (CorrectionVolt_RMS));
//tegangangan rata rata setelah kalibrasi
Serial.println (String (Volt_ADC));//jumlah
tegangan ADC
Serial.println ();
sampleSum = 0;
sampleCount = 0;
delay (1500);
}
}
coding sensor tegangan klik DI SINI
0 komentar:
Posting Komentar