#define MQ2_PIN 2
#define BUZZER 12
int leds[5] = { 16, 17, 5, 18, 19 };
int gasValue = 0;
void setup() {
Serial.begin(115200);
for (int i = 0; i < 5; i++) {
pinMode(leds[i], OUTPUT);
digitalWrite(leds[i], LOW);
}
pinMode(BUZZER, OUTPUT);
digitalWrite(BUZZER, LOW);
analogReadResolution(12); // 0–4095
analogSetPinAttenuation(MQ2_PIN, ADC_11db);
Serial.println("🌫️ 5-Level Air Quality Monitoring Started");
}
void loop() {
gasValue = analogRead(MQ2_PIN);
Serial.print("Gas Value: ");
Serial.println(gasValue);
// Turn OFF all LEDs first
for (int i = 0; i < 5; i++) {
digitalWrite(leds[i], LOW);
}
digitalWrite(BUZZER, LOW);
if (gasValue < 600) {
digitalWrite(leds[0], HIGH); // Very Clean
}
else if (gasValue < 1200) {
digitalWrite(leds[1], HIGH); // Clean
}
else if (gasValue < 1800) {
digitalWrite(leds[2], HIGH); // Moderate
}
else if (gasValue < 2500) {
digitalWrite(leds[3], HIGH); // Unsafe
}
else {
digitalWrite(leds[4], HIGH); // Dangerous
digitalWrite(BUZZER, HIGH); // Alarm ON
}
delay(1000);
}