// Pin Definitions
const int POT_PIN = A1;
const int GREEN_LED = 2;
const int YELLOW_LED = 3;
const int RED_LED = 4;
const int BUZZER = 5;
// Thresholds
const int WARNING_LEVEL = 400; // Transition to Yellow
const int CRITICAL_LEVEL = 800; // Transition to Red/Buzzer
void setup() {
pinMode(GREEN_LED, OUTPUT);
pinMode(YELLOW_LED, OUTPUT);
pinMode(RED_LED, OUTPUT);
pinMode(BUZZER, OUTPUT);
Serial.begin(9600);
}
void loop() {
int sensorValue = analogRead(POT_PIN);
Serial.print("Sensor Level: ");
Serial.println(sensorValue);
// Level 1: SAFE (Green Only)
if (sensorValue < WARNING_LEVEL) {
digitalWrite(GREEN_LED, HIGH);
digitalWrite(YELLOW_LED, LOW);
digitalWrite(RED_LED, LOW);
noTone(BUZZER); // Ensure buzzer is off
}
// Level 2: WARNING (Yellow Only)
else if (sensorValue >= WARNING_LEVEL && sensorValue < CRITICAL_LEVEL) {
digitalWrite(GREEN_LED, LOW);
digitalWrite(YELLOW_LED, HIGH);
digitalWrite(RED_LED, LOW);
noTone(BUZZER);
}
// Level 3: CRITICAL (Red + Pulsing Buzzer)
else {
digitalWrite(GREEN_LED, LOW);
digitalWrite(YELLOW_LED, LOW);
digitalWrite(RED_LED, HIGH);
// Create a pulsing "siren" effect
tone(BUZZER, 1000); // 1kHz tone
delay(100);
noTone(BUZZER);
delay(100);
}
delay(50); // Fast response for smooth dial movement
}