Pengontrolan tegangan berfungsi untuk menjaga kestabilan tegangan keluaran ke beban sehingga beban bisa bekerja semestinya. Contohnya jika beban lampu yang intensitas cahayanya bergantung kepada tegangan, maka dengan tegangan yang stabil akan mengeluarkan cahaya yang stabil pula.
Hal yang menyebabkan ketidakstabilan tegangan diantaranya :
- Perubahan beban (penambahan dan pengurangan)
- Perubahan nilai masukan (input)
- Faktor luar seperti interferensi.
Faktor yang mempengaruhi keandalan pengontrolan tegangan :
- Kecepatan respon dari pengontrol tegangan terhadap perubahan yang terjadi, semakin cepat semakin baik.
- Sistem koreksi yang digunakan, seperti PID, fuzzy
- Karakteristik sensor dan beban yang digunakan
Pengontrolan tegangan dengan arduino
Pengendalian tegangan harus memiliki masukan sensor tegangan dan aktuator kontrol tegangan. Pada aplikasi arduino pembacaan tegangan menggunakan ADC dan aktuasi kontrol tegangan menggunakan PWM.
Dalam contoh ini, sistim koreksi tegangan menggunakan metode proporsional, yaitu semakin besar selisih tegangan dan input maka akan semakin besar pula penambahan nilai PWM.
skema sistem kontrol tegangan mengguakan arduino:
Sketch / koding Penngendalian Tegangan dengan PWM:
#define pinSensorTegangan 0 #define pinOutputPWM 9 #define setTegangan 2.5//volt #define faktorProporsional 0.1 float keluaran; void setup() { pinMode(pinOutputPWM, OUTPUT); Serial.begin(9600); Serial.println("Sumber tegangan stabil (automatic voltage regulator) menggunakan kontrol proporsional"); Serial.println("https://www.project.semesin.com/"); Serial.println(); keluaran = setTegangan; } void loop() { uint16_t adc = analogRead(pinSensorTegangan); float tegangan = map(adc, 0, 1024, 0, 500)/100.0; float selisih = setTegangan - tegangan; float proporsional = faktorProporsional * selisih; keluaran += proporsional; keluaran = constrain(keluaran, 0, 5); byte keluaranPWM = map(keluaran*100, 0, 5*100, 0, 255); analogWrite(pinOutputPWM, keluaranPWM); //Plot serial, hapus untuk menambah kecepatan Serial.print(tegangan); Serial.print(", "); Serial.print(keluaranPWM); Serial.println(); delay(10); }
Hasil Plot sinyal PWM (merah) dan tegangan keluaran (biru) terhadap perubahan beban.