#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2); // Ubah 0x27 jika LCD tidak nyala
// Pin
#define MQ2_PIN A0
#define LED_HIJAU 2
#define LED_MERAH 3
#define BUZZER 4
// Ambang batas gas (sesuaikan)
int batasGas = 300;
void setup() {
pinMode(MQ2_PIN, INPUT);
pinMode(LED_HIJAU, OUTPUT);
pinMode(LED_MERAH, OUTPUT);
pinMode(BUZZER, OUTPUT);
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("Deteksi Gas");
lcd.setCursor(0, 1);
lcd.print("Initializing...");
delay(2000);
lcd.clear();
}
void loop() {
int nilaiGas = analogRead(MQ2_PIN);
if (nilaiGas > batasGas) {
// Gas terdeteksi
digitalWrite(LED_MERAH, HIGH);
digitalWrite(LED_HIJAU, LOW);
tone(BUZZER, 1000); // Buzzer bunyi
lcd.setCursor(0, 0);
lcd.print("!!! BAHAYA !!! ");
lcd.setCursor(0, 1);
lcd.print("Gas Terdeteksi ");
}
else {
// Aman
digitalWrite(LED_MERAH, LOW);
digitalWrite(LED_HIJAU, HIGH);
noTone(BUZZER); // Matikan buzzer
lcd.setCursor(0, 0);
lcd.print("Aman ");
lcd.setCursor(0, 1);
lcd.print("Tidak Terdeteksi");
}
delay(500);
}