//#include <LiquidCrystal_SR.h>
#include <LiquidCrystal_I2C.h>
#define sensor A0
#define buzz 11
#define suara
#define relay 3
#define ledHijau 4
#define ledKuning 5 // PWM
#define ledMerah 6 // PWM
#define AKTIF LOW
#define MATI HIGH
int valSens;
float percentSens;
char lcdBuff[16];
//LiquidCrystal_SR lcd(10,8,9);
LiquidCrystal_I2C lcd(0x3f, 16, 2);
void setup() {
Serial.begin(9600);
lcd.begin();
pinMode(ledHijau, HIGH);
pinMode(ledKuning, HIGH);
pinMode(ledMerah, HIGH);
pinMode(ledHijau, OUTPUT);
pinMode(ledKuning, OUTPUT);
pinMode(ledMerah, OUTPUT);
pinMode(relay, OUTPUT);
}
void loop()
{
valSens = analogRead(sensor);
// percentSens = (valSens-10)/9.64;
percentSens = (valSens-60)/9.64;
if(percentSens <= 20)
{ // Deteksi Kurang dari 20% LPG, LED Hijau Menyala
digitalWrite(ledHijau, AKTIF);
digitalWrite(ledKuning, MATI);
digitalWrite(ledMerah, MATI);
digitalWrite(relay, MATI);
}
if(percentSens >= 20 && percentSens <=49)
{ // Deteksi Lebih dari 20% LPG, LED Kuning Menyala
digitalWrite(ledHijau, MATI);
digitalWrite(ledKuning, AKTIF);
digitalWrite(ledMerah, MATI);
}
if(percentSens >= 50)
{ // Deteksi 50% LPG, Alarm dan LED Merah Menyala
digitalWrite(ledHijau, MATI);
digitalWrite(ledKuning, MATI);
digitalWrite(relay, AKTIF);
//digitalWrite(suara, AKTIF);
lcd.clear();
lcd.setCursor(0,0);
lcd.print(" Alarm Bahaya ");
lcd.setCursor(0,1);
lcd.print(" LPG Bocor! ");
alert(100);
lcd.clear();
}
lcd.setCursor(0,0);
lcd.print("Analog Percent");
lcd.setCursor(1,1);
lcd.print(valSens);
lcd.print(" PPM");
lcd.setCursor(10,1);
lcd.print(percentSens);
Serial.print("Nilai Analog = ");
Serial.println(valSens);
Serial.print("Nilai Persentasi = ");
Serial.print(percentSens);
Serial.println('%');
Serial.println();
}
void alert(int delayms)
{
analogWrite(ledMerah, 255);
analogWrite(buzz, 150);
delay(delayms);
analogWrite(buzz, 0);
analogWrite(ledMerah, 0);
delay(delayms);
}
0 komentar:
Posting Komentar
kami membutuhkan kritik dan saran Anda