8 December 2015

Pembacaan Tegangan AC menggunakan Arduino Dengan Metode Tegangan Maksimum



Sensor tegangan dapat digunakan untuk mengukur tegangan AC maupun DC, walau demikian algoritma pengukuran yang diterapkan tidaklah sama. Tegangan DC relatif bernilai konstan sehingga mudah untuk diukur, berbeda halnya dengan tegangan AC yang terus berubah sesuai bentuk gelombang sinus dan memiliki magnitude tegangan dalam wilayah positif dan negatif. Besaran tegangan efektif AC dapat diketahui apabila tegangan maksimum/puncak diketahui. Dengan menggunakan algoritma yang tepat dan persamaan matematis yang berkesesuaian, nilai maksimum dan nilai efektif tegangan AC dapat ditemukan. 

Permasalahan dan signifikansi
Sensor tegangan merupakan piranti yang umum digunakan pada perlatan elektronik. Secara sederhana sensor tegangan bisa didapatkan melalui perancangan rangkaian pembagi tegangan seperti terlihat pada gambar 1a, dan juga dapat didesain menggunakan transformator seperti terlihat pada gambar 1b. Sensor tegangan dengan menggunakan pembagi tegangan dapat digunakan pada tegangan AC maupun DC, sedangkan sensor yang menggunakan transformator hanya dapat digunakan untuk men-sensing tegangan AC.   

Gambar 1. Sensor tegangan a. menggunakan teknik pembagi tegangan 
b. menggunakan transformator
(source)

Terlepas dari jenis sensor tegangan yang digunakan, dalam aplikasi berbasis mikroprosesor teknik pembacaan tegangan AC dan DC sangatlah berbeda. Tegangan DC seperti terlihat pada gambar 2 memiliki sifat nilai yang relatif konstan, selain itu tegangan DC pada umumnya hanya berada pada satu kuadran (positif saja atau negatif saja). Dengan sifat/karakteristik tegangan seperti di atas pembacaan tegangan DC menjadi mudah untuk terapkan. Berbeda dengan tegangan AC, bentuk tegangannya tidak konstan melainkan mengikuti bentuk sinus. Selain itu tegangan AC berada pada dua kuadran, positif maupun negatif, sehingga tidak dapat langsung diberikan ke pin input mikroprosesor.




Gambar 2. Bentuk tegangan DC dan AC (Source)

Tutorial ini fokus membahas teknik pembacaan tegangan AC dengan menggunkanan perangkat keras sensor tegangan berbasis transformator seperti terlihat pada gambar 1b. 

Teknik dan algoritma
Dalam percobaan ini digunakan sensor tegangan analog seperti terlihat pada gambar 1b, sinyal yang dibangkitkan kemudian menjadi input analog (pin A0) dari mikroprosesor Atmega328p yang terintegrasi pada development board Arduino Uno. Untuk dapat membaca tegangan AC dapat digunakan program seperti berikut: 


double sensorValue=0;
double sensorValue1=0;
int crosscount=0;
int climbhill=0;
double VmaxD=0;
double VeffD;
double Veff;

void setup() {
Serial.begin(115200);
}

void loop() {
sensorValue1=sensorValue;
delay(100);
sensorValue = analogRead(A0);

if (sensorValue>sensorValue1 && sensorValue>511){
  climbhill=1;
  VmaxD=sensorValue;
  }
if (sensorValue<sensorValue1 && climbhill==1){
  climbhill=0;
  VmaxD=sensorValue1;
  VeffD=VmaxD/sqrt(2);
  Veff=(((VeffD-420.76)/-90.24)*-210.2)+210.2;
  Serial.println(Veff);
  VmaxD=0;
}
}

Prinsip dari program yang digunakan adalah menemukan tegangan maksimum Vm dari gelombang sinus yang diukur. Vm dapat ditemukan dengan cara mengobservasi tegangan sinus yang diukur secara terus menerus, apabil tegangan maksimum lebih kecil dari tegangan maksimum sebelumnya Vm-1, maka Vm-1 merupakan tegangan maksimum yang diharapkan. Dalam pemrograman Vm-1 adalah sensorValue1 dan Vm adalah SensorValue.

sensorValue1=sensorValue;
delay(100);
sensorValue = analogRead(A0);
 
Tegangan maksimum yang didapatkan kemudian diubah menjadi tegangan efektif menggunkanan persamaan (1)



Dalam script program dituliskan sebagai berikut  



VeffD=VmaxD/sqrt(2);

Dimana VeffD merupakan nilai efektif dalam nilai digital. Agar nilai tegangan efektif sebenarnya Veff bisa didapatkan maka diperlukan pengkalibrasian dengan cara membandingkan nilai digital terhadap nilai tegangan sebenarnya serta mengintegrasikannya kedalam persamaan garis lurus sebagai berikut:


Veff=(((VeffD-420.76)/-90.24)*-210.2)+210.2;

Jika sudah selesai, jangan lupa compile dan upload program ke board arduino, dan pasang kabel-kabel sensor tegangan sesuai aturan datasheet. Jika tidak ada error (seharusnya tidak ada) silahkan klik tombol serial monitor di pojok kanan atas dari IDE Arduino, dan nilai tegangan yang terbaca akan muncul. silahkan bandingkan dengan pembacaan multimeter.

Pengkalibrasian mungkin akan lebih baik dan akurat bila tidak menggunakan persamaan garis lurus melainkan menggunakan persamaan polinomial orde-n. Pada kesempatan lain akan saya bahas teknik penggunaan polinomial.

Potensi Aplikasi
Sensor tegangan dapat diaplikasikan pada berbagai instrumentasi seperti:
  • Alat recorder (data logger) kualitas daya,
  • Meteran listrik (KWh meter) digital, 
  • Peralatan kontrol untuk proteksi jaringan listrik, dsb 
Kesimpulan dan saran
Tegangan AC memiliki pola sinusoidal yang nilainya terus berubah seusia fungsi waktu dan memiliki magnitud tegangan dalam wilayah positif dan negatif. Apabila tegangan maksimum dari sinyal AC diketahui maka tegangan efektif dapat diketahui. Tegangan maksimum diketahui dengan cara membandingkan nilai tegangan actual (Vm) terhadap nilai tegangan sebelumnya (Vm-1), apabila Vm-1 lebih besar dari Vm maka tegangan maksimum adalah setara Vm-1.

Tegangan AC juga dapat dicari dengan mengetahui luas bidang sinus yang diukur, lagi-lagi teknik pengukuran seperti ini akan saya bahas kemudian, sabar ya :D

Referensi
[1] http://images.tutorvista.com/content/electricity/ac-dc-voltage-time-graph.gif
[2] https://fisikakontekstual.wordpress.com/materi-arus-dan-tegangan-listrik-bolak-balik/




35 comments:

  1. Mohon dijelaskan sedikit mengenai formulanya bang ikhsan. Tq sebelumnya :)

    ReplyDelete
    Replies
    1. terima kasih bang Deddy sudah membaca tulisan ini, formula yang mana yang kurang jelas bang Deddy? mungkin dispesifikkan saja :D

      Delete
  2. maaf bang, bang kalo Serial.begin(115200) diganti jadi 9600 bisa gak yah?

    ReplyDelete
    Replies
    1. bisa banget, ganti saja Bang Maulana, cuma jangan lupa di serial monitornya (bagian pojok kanan bawah) diganti juga jadi 9600

      Delete
  3. maaf mas mau tanya apakah sensor ini bisa membaca perbedaan tegangan AC dengan orde milivolt dan pada tegangan AC yang rendah ? sekitar 1 Volt.
    mohon pencerahannya mas..

    ReplyDelete
    Replies
    1. Gak bisa Pak Hafidz, saya pakai sensor yang ada transformatornya karena tujuanya ingin baca tegangan yang besar-besar (seperti 220 V). Kalau bapak mau skala kecil pakai teknik resistor pembagi tegangan saja, (tapi itupun kalau tegangannya DC). Ada satu cara lagi yang sederhana,tapi belum saya coba secara eksperimen, bapak beli sensor microphone KY-038, potong mic-nya, jadi deh sensor tegangan dalam milivolt (tapi jangan untuk ukur tegangan diatas 1 V ya takutnya overvoltage)

      Delete
  4. This comment has been removed by the author.

    ReplyDelete
  5. kok hasil ukurnya 335.31 yah di serialnya,, tapi klo saya ukur pake avo meter hasilnya 208 v AC
    mohon pencerahannya :)

    ReplyDelete
    Replies
    1. Bang Rizal, apakah pakai jenis sensor yang serupa dengan saya? jika tidak, maka tidak bisa pakai rumus konversi saya. Jika iya pakai sensor yang sama, coba kalibrasi ulang, gunakan bantuan excel, caranya sebagai berikut:

      persiapkan sensor dan segala peralatanya. ukur tegangan mulai dari nol sampai (misalnya) 250 VAC yang dinaikkan secara perlahan. sambil mengukur tegangan itu catat juga nilai analognya, dari kedua formasi nilai (tegangan dan nilai_analog) buat persamaan matematisnya. paling enak masukin ke excel supaya persamaan garisnya bisa langsung keluar

      Delete
    2. maaf pak nanya lagi bisa dijelaskan gag gimana cara mendapatkan rumus ini

      Veff=(((VeffD-420.76)/-90.24)*-210.2)+210.2;

      saya habis mencoba dan hasilnya bagus sesuai harapan saya, tapi kalibrasinya masih kurang tepat kira kira bisa dijelaskan tidak mengenai cara mendapatkan rumus tsb , terima kasih

      Delete
  6. This comment has been removed by the author.

    ReplyDelete
  7. permisi pak numpang nanya , kalo untuk koneksi ke sumber tegangannya apakah cukup dengan konek bagian input ke 220 VAC dan bagian output ke ADC , vcc ke 5v dan gnd ke gnd

    ReplyDelete
    Replies
    1. iya Bluefamily, cukup demikian sudah bisa membaca, maaf baru balas

      Delete
  8. bagimana kalo mengukur tegangan AC sekitar 12 Volt?apakah pakai sensor yang sama?

    ReplyDelete
    Replies
    1. bisa, cuma nanti nilai adc-nya terlalu kecil. Ada baiknya rasio lilitan primer/sekunder trafonya disesuaikan lagi, atau ganti trafonya dengan trafo lain. Saya belum pernah coba modif trafo tapi secara teori ini insyaAllah berhasil

      Delete
    2. tapi cobain aja dulu ke 12 VAC, gak ada salahnya kan mencoba, gak akan meledak lah :D

      Delete
  9. bisa gak alatnya buat detek tegangan di gedung apa di mall gtu mas?

    ReplyDelete
  10. Dear Pak Muhammad Ikhsan,

    Bisakah saya mendapat referensi untuk pengkalibrasian dengan metode persamaan garis lurus?
    Nilai apa saja yang kita bandingkan sebagai data untuk mendapat rumus kalibrasinya
    Saya menggunakan sensor type ini (ZMPT101B) tetapi hasil pembacaan masih belum terlau akurat

    Tks

    ReplyDelete
  11. Assalamualaikum..
    pak M. Iksan, saya tertarik sekali dengan materinya, saya mau menanyankan diman ya saya bisa mendapatkan ZMPT101B nya?

    Terima kasih...

    ReplyDelete
  12. Assalamualaikum mas. Saya tertarik dengan sensor yg digunakan. Bolehkah saya minta contact berupa email untuk menanyakan tentang sensor ini?terimakasih

    ReplyDelete
    Replies
    1. tanya disini saja Mas, biar rame, hehehe.... :D

      Delete
  13. Mohon contact mas ikhsan nya dong. Mau tau lebih tentang sensor ini.

    ReplyDelete
  14. assalamualaikum,,
    mohon bantuannya jika hasil dari pembacaan di connect ke delphi
    cara dan tampilannya gimana ya??

    ReplyDelete
    Replies
    1. Waalaikumsalam Wr.Wb, waah saya tidak menguasa Delphi mas Putra, tapi kalau mau ditampilkan di matlab bisa. yang penting itu kita tahu dalam format apa data tersebut dikirimkan, jadi sesuatu yang akan menerima bisa disetel

      Delete
  15. apakah bisa digunakan untuk AC tegangan rms 1 volt dan frekuensi 50Khz?

    ReplyDelete
    Replies
    1. pada dasarnya bisa cuma kalau tegangannya serendah itu saya pikir gak usah pakai jenis sensor yang diatas

      Delete
  16. Asslamualaikum pa mau tanya untuk mengukur tegangan dc 48v kira" menggunakan sensor yang mana ?

    ReplyDelete
    Replies
    1. Waalaikumsalam Wr.Wb. 48 V AC atau DC? Menurut saya, kalau cuma 48 VDC metode pembagi tengangan saja sudah oke

      Delete
  17. mau nanya, klo tegangan inout maksimal dari sensor ZMPT101B ini berapa ya? apakah mencapai 500V?

    ReplyDelete
  18. Terimakasih atas sharing nya mas, saya ingin buat monitoring 3 fasa dengan 1 sensor untuk tiap fasa. berarti saya butuh 3 sensor. nah kendalanya tiap sensor ZMPT101B itu beda kalibrasinya dan beda dengan rumus yang mas share Veff=(((VeffD-420.76)/-90.24)*-210.2)+210.2;. untuk mendapatkan rumus yang tepat sesuai dengan kebutuhan sensor caranya gimana ya mas?

    ReplyDelete
  19. saya sudah ikuti langkah di atas, tapi ketika saya tekan serial monitor tidak ada pembacaan yg muncul, hanya jendela yg kosong. mohon pencerahan. trimakasih

    ReplyDelete
    Replies
    1. cek ulang lah tolol makanya baca dariu awal dasar INDOGS

      Delete
  20. 210.2 ITU DARIMANA DAPATNYA?

    ReplyDelete
  21. assalamualaikum wr wb
    mau tanya untuk yg climbhill itu maksud dan fungsi utk code itu sendiri bagaimana ??
    lalu utk sensor value 511 itu didapat dari pembacaan adc dari sensor itu sendiri ?

    ReplyDelete
  22. kalo tidak ada tegangan di serial monitor keluar angka 0 gimana caranya ?

    ReplyDelete