int trigger = 4;
int echo = 5;
int ledPin = 13; // LED as indicator (object detected)
int thresholdDistance = 15; // cm (bin full / object near)
void setup() {
Serial.begin(115200);
pinMode(trigger, OUTPUT);
pinMode(echo, INPUT);
pinMode(ledPin, OUTPUT);
Serial.println("Ultrasonic Object Detection System Started");
}
// Function to find distance
int finding_distance() {
digitalWrite(trigger, LOW);
delayMicroseconds(2);
digitalWrite(trigger, HIGH);
delayMicroseconds(10);
digitalWrite(trigger, LOW);
long duration = pulseIn(echo, HIGH);
int distance = duration * 0.034 / 2;
return distance;
}
void loop() {
int distance = finding_distance();
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
// Object detection logic
if (distance > 0 && distance <= thresholdDistance) {
digitalWrite(ledPin, HIGH);
Serial.println("Object Detected → LED ON");
} else {
digitalWrite(ledPin, LOW);
Serial.println("No Object → LED OFF");
}
delay(500);
}