#include <Wire.h>
#include <LiquidCrystal_I2C_STEM.h>
// Inisialisasi LCD I2C (alamat 0x27, ukuran 16x2)
LiquidCrystal_I2C_STEM lcd(0x27, 16, 2);
int BuzzerPin = 2;
int ledgreen = 3;
int ledred = 4;
int fan = 5;
int sensor = A0;
float gas = 0;
void setup() {
pinMode(ledgreen, OUTPUT);
pinMode(ledred, OUTPUT);
pinMode(fan, OUTPUT);
pinMode(BuzzerPin, OUTPUT);
// Inisialisasi LCD I2C
lcd.init();
lcd.backlight();
// Tampilan introduction
lcd.setCursor(0, 0);
lcd.print("Gas Sensor");
delay(1500);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Kelompok B7");
delay(1500);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Anggota:");
lcd.setCursor(0, 1);
lcd.print("Arya Setiawan");
delay(1500);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Anggota:");
lcd.setCursor(0, 1);
lcd.print("Lintang Dyahayuningsih");
delay(1500);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Anggota:");
lcd.setCursor(0, 1);
lcd.print("M. Febryadi");
delay(1500);
lcd.clear();
lcd.setCursor(2, 0);
lcd.print("GAS DETECTOR");
delay(1500);
lcd.setCursor(0, 1);
lcd.print("----");
delay(1000);
lcd.setCursor(4, 1);
lcd.print("----");
delay(1000);
lcd.setCursor(8, 1);
lcd.print("----");
delay(1000);
lcd.setCursor(12, 1);
lcd.print("----");
delay(1000);
lcd.clear();
}
void loop() {
gas = analogRead(sensor);
gas = gas * 100 / 1023;
lcd.setCursor(0, 0);
lcd.print("GAS =");
lcd.print(gas);
lcd.print(" % ");
if (gas > 50) {
tone(BuzzerPin, 200);
digitalWrite(ledred, HIGH);
digitalWrite(ledgreen, LOW);
digitalWrite(fan, HIGH);
lcd.setCursor(0, 1);
lcd.print("<< DANGER !!! >>");
} else {
noTone(BuzzerPin);
digitalWrite(ledred, LOW);
digitalWrite(ledgreen, HIGH);
digitalWrite(fan, LOW);
lcd.setCursor(0, 1);
lcd.print("<< SAFE >>");
}
delay(100);
}