Projek kali ini tentang penerapan on-off controller dengan arduino pada sistem monitoring dan kontrol pemanas udara atau air heater. saya gunakan proteus 8 sebagai aplikasi simulasi arduino.
untuk kalian yang belum mempunyai proteus 8 terbaru bisa didownload melalui halaman berikut ini Download Proteus 8.11 Free Full Version
Arduino On-Off Controller System
Sistem On-Off controller merupakan salah satu metode pengendali yang sangat sederhana ketimbang PID atau fuzzy logic. karena tidak memerlukan rumus matematika yang komplek dalam penerapanya.
Pada sistem on-off controller kita memerlukan nilai toleransi untuk mengatasi atau mencegah kerusakan mekanik pada komponen elektronika.
Hal ini merupakan kelemahan dari sistem on-off controller yang mudah merusak komponen elektronik karena perubahan on dan off yang terlalu sering tidak adjustable.
Untuk meengurangi dampak negatif seperti ini pada sistem on-off controller diperlukan nilai toleransi terhadap set-point.
Pada sistem air heater terdapat komponen arduino uno sebagai mikrokontroler, relay yang berfungsi sebagai saklar elektronik, tombol sebagai pengatur nilai set-point serta LCD sebagai display yang memudahkan antarmuka manusia dengan sistem.
On-Off Controller Arduino on Air Heater System
Dua relay difungsikan sebagai switch pemanas dan juga kipas atau pendingin dengan sistem kerja seperti berikut :
Saat sensor suhu lm35 mendeteksi suhu dibawah set point maka relay pemanas akan aktif dan relay pendingin nonaktif sehingga membuat suhu yang terbaca naik. dan begitu sebaliknya jika suhu set-point terbaca lebih tinggi maka relay pendingin yang aktif dan relay pemanas nonaktif.
Berkut adalah kode arduino yang sudah dibuat untuk diterapkan pada sistem air heater arduino yang bisa kalian gunakan untuk simulasi ataupun implementasi hardware secara langsung.
#include <Wire.h> #include <LiquidCrystal_I2C.h> // Set the LCD address to 0x27 for a 16 chars and 2 line display LiquidCrystal_I2C lcd(0x27, 16, 2); void setup() { // put your setup code here, to run once: Serial.begin(9600); lcd.begin(); pinMode (3, INPUT_PULLUP); pinMode (4, INPUT_PULLUP); pinMode (8, OUTPUT); // kipas pinMode (9, OUTPUT); // heater } int sp = 26; boolean state; void loop() { // put your main code here, to run repeatedly: int s = analogRead (A1); float v = (s*5.0) / 1023; float suhu = v * 100.0; if (digitalRead (3) == 0){ while (digitalRead (3) == 0){} sp++; } if (digitalRead (4) == 0){ while (digitalRead (4) == 0){} sp--; } if (suhu >= sp && state == 0){ // jika suhu lebih dari set point digitalWrite (8, 1); // kipas nyala digitalWrite (9, 0); // heater mati state = 1; } else if(suhu < sp-2 && state == 1){ // jika suhu lebih dari set point digitalWrite (8, 0); // kipas mati digitalWrite (9, 1); // heater nyala } else if (suhu <= sp && state == 0){ // jika suhu lebih dari set point digitalWrite (8, 0); // kipas nyala digitalWrite (9, 1); // heater mati state = 1; } else if(suhu > sp+2 && state == 1){ // jika suhu lebih dari set point digitalWrite (8, 1); // kipas mati digitalWrite (9, 0); // heater nyala } lcd.clear(); lcd.setCursor(0,0); lcd.print("Set Point : "); lcd.print(sp); lcd.setCursor(0,1); lcd.print("Act Suhu : "); lcd.print(suhu); delay(1000); }
Hasil simulasi dapat dilihat pada video yang sudah saya tempelkan diatas.
Kurang lebihnya mohon maaf dan itulah projek yang bisa saya bagikan kali ini, semoga bermanfaat dan jangan lupa untuk berbagi ilmu.
keren