// Define pin numbers
const int trigPin = 9;
const int echoPin = 10;
const int redLED = 2;
const int greenLED = 3;
const int blueLED = 5;
const int yellowLED = 4;
// Define distance ranges (in cm)
const int range1 = 100; // 0-100 cm
const int range2 = 200; // 101-200 cm
const int range3 = 300; // 201-300 cm
const int range4 = 400; // 301-400 cm
void setup() {
// Initialize serial communication
Serial.begin(9600);
// Initialize pins
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(redLED, OUTPUT);
pinMode(greenLED, OUTPUT);
pinMode(blueLED, OUTPUT);
pinMode(yellowLED, OUTPUT);
// Turn off all LEDs initially
digitalWrite(redLED, LOW);
digitalWrite(greenLED, LOW);
digitalWrite(blueLED, LOW);
digitalWrite(yellowLED, LOW);
}
void loop() {
// Trigger the ultrasonic sensor
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Read the duration of the echo pulse
long duration = pulseIn(echoPin, HIGH);
// Calculate the distance (in cm)
float distance = (duration / 2.0) * 0.0343;
// Print distance to serial monitor (for debugging)
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
// Turn off all LEDs
digitalWrite(redLED, LOW);
digitalWrite(greenLED, LOW);
digitalWrite(blueLED, LOW);
digitalWrite(yellowLED, LOW);
// Turn on the appropriate LED based on the distance
if (distance >= 0 && distance <= range1) {
digitalWrite(redLED, HIGH);
} else if (distance > range1 && distance <= range2) {
digitalWrite(greenLED, HIGH);
} else if (distance > range2 && distance <= range3) {
digitalWrite(blueLED, HIGH);
} else if (distance > range3 && distance <= range4) {
digitalWrite(yellowLED, HIGH);
}
// Small delay for stability
delay(200);
}