#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Inisialisasi LCD I2C (alamat umum 0x27, bisa juga 0x3F tergantung modul)
LiquidCrystal_I2C lcd(0x27, 16, 2);
// Pin setup
const int mq2Pin = PA0; // Pin analog untuk sensor MQ2
const int buzzerPin = PA1; // Pin digital untuk buzzer
void setup() {
pinMode(buzzerPin, OUTPUT); // Set buzzer sebagai output
lcd.begin(); // Inisialisasi LCD
lcd.backlight(); // Aktifkan backlight LCD
lcd.setCursor(0, 0);
lcd.print("Deteksi Gas CO");
delay(2000); // Tampilkan pesan awal 2 detik
lcd.clear();
}
void loop() {
int gasValue = analogRead(mq2Pin); // Baca nilai analog dari MQ2
lcd.setCursor(0, 0);
lcd.print("Gas: ");
lcd.print(gasValue);
lcd.print(" "); // Bersihkan digit sisa jika angka turun
if (gasValue > 300) { // Ambang batas deteksi gas (bisa dikalibrasi)
digitalWrite(buzzerPin, HIGH); // Nyalakan buzzer
lcd.setCursor(0, 1);
lcd.print("!!! TERDETEKSI !!!");
} else {
digitalWrite(buzzerPin, LOW); // Matikan buzzer
lcd.setCursor(0, 1);
lcd.print("Aman "); // Spasi untuk hapus teks lama
}
delay(1000); // Delay 1 detik
}
[env:bluepill_f103c8]
platform = ststm32
board = bluepill_f103c8
framework = arduino
lib_deps =
Wire
LiquidCrystal_I2C