#define trigPin 2
#define echoPin 3
#define gasPin A0
#define ledPin 8
#define buzzerPin 9
long duration;
int distance;
int gasValue;
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(ledPin, OUTPUT);
pinMode(buzzerPin, OUTPUT);
pinMode(gasPin, INPUT);
Serial.begin(9600);
}
void loop() {
// ---- Membaca jarak dari HC-SR04 ----
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = duration * 0.034 / 2;
// ---- Membaca nilai gas dari MQ-2 ----
gasValue = analogRead(gasPin);
Serial.print("Jarak: ");
Serial.print(distance);
Serial.print(" cm | Gas: ");
Serial.println(gasValue);
// ---- Logika bahaya ----
if (distance < 20 || gasValue > 300) {
digitalWrite(ledPin, HIGH);
tone(buzzerPin, 1000); // bunyi alarm gas
} else {
digitalWrite(ledPin, LOW);
noTone(buzzerPin);
}
delay(200);
}