Selasa, 25 April 2017

Code Detektor Pendeteksi Kebocoran Gas

#include   // i2C Conection Library
#include   //Memanggil i2C LCD Library
#define ON 0 // Relay ON
#define OFF 1 //Relay OFF

//Sesuaikan address pada inisialisasi dibawah ini dengan address LCD anda..
LiquidCrystal_I2C lcd(0x3F, 16, 2);

const int     SensorPin = A0;  // Sensor Gas
const int     TestPin = A1;    // Tombol Test
const int     WarningPin = 11; // Lampu Emergency
const int     BuzzerPin = 12; // Active Buzzer
const int     LedPin = 13;    // LED Indicator Sensor

float         ppmGas;      // Gas dalam 'ppm'->perkiraan
float         GasPercent;  // Gas dalam 'Percent'
const int     GasMax = 50;  // Persentase Maximal Gas

void setup() {
pinMode (A1,INPUT_PULLUP); // untuk tombol test
pinMode (11,OUTPUT); digitalWrite (11, OFF); // membuat lampu emergency off
pinMode (12,OUTPUT); // untuk buzzer
pinMode (13,OUTPUT); lcd.begin(); // memulai koneksi i2c dengan LCD


lcd.setCursor (0,0);
lcd.print(F("Silahkan Masukan"));
lcd.setCursor (0,1);
lcd.print(F("    Gas LPG    "));
delay (2000);lcd.clear();
}

void loop() { 
// untuk membuat program utama dan melakukan pengulangan:
GasPercent = map(analogRead(SensorPin),0,1023,0,100); // untuk mengatur kadar kebocoran gas
ppmGas = map(analogRead(SensorPin),0,1023,0,10000); // kadar gas dalam perkiraan

lcd.setCursor (0,0);
lcd.print ("P.Gas:"); lcd.print (GasPercent,1); // batas max kebocoran gas
lcd.print ("%"); lcd.print ("TABUNG GAS ADA YANG BOCOR"); // lcd akan menampilkan kalimat tersebut jika sudah melewati 50%
lcd.setCursor (0,1);
lcd.print ("C.Gas:"); lcd.print (ppmGas,0);
lcd.print ("ppm"); lcd.print ("TABUNG GAS TIDAK ADA YANG BOCOR"); // lcd akan menampilkan kalimat tersbut jika perkiraan ppm 0%

if( GasPercent>GasMax || digitalRead(TestPin) == LOW ){
digitalWrite(BuzzerPin,HIGH); // jika kadar gas > 50% buzzer aktif
digitalWrite(WarningPin, ON); // dan peringatan akan ON
gasStat = "Hi";

else {
digitalWrite(BuzzerPin,LOW); // jika kadar gas < 50% buzzer OFF
digitalWrite(WarningPin, OFF); // peringatan akan OFF
gasStat = "Lo";

blinkingLed (interval); // jarak led kedap-kedip
delay(100); //delay pada sensor
}


1 komentar: