// Ultrasonic Sensor Pins and Threshold Distance
int TrigPin = 3; // Trigger Pin of Ultrasonic Sensor
int echoPin = 2; // Echo Pin of Ultrasonic Sensor
int Proximity_Indicator_LED_Pin = 12; // The LED turns on as the obstacle approaches closer
int Threshold_Distance_in_cm = 3; // Threshold Distance in centimeters
// Variables to store time and distance
long Time_Elapsed_to_Receive_Echo; // Time in microseconds
int Distance_in_cm; // Distance of the Obstacle in cm
void setup()
{
pinMode(TrigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(Proximity_Indicator_LED_Pin, OUTPUT);
Serial.begin(9600); // Start Serial Terminal
}
void loop()
{
// Trigger the sensor
digitalWrite(TrigPin, LOW);
delayMicroseconds(2);
digitalWrite(TrigPin, HIGH);
delayMicroseconds(10);
digitalWrite(TrigPin, LOW);
// Measure the duration of the pulse
Time_Elapsed_to_Receive_Echo = pulseIn(echoPin, HIGH); // Time in microseconds
Distance_in_cm = microsecondsToCentimeters(Time_Elapsed_to_Receive_Echo);
// Print the distance to the Serial Monitor
Serial.print(Distance_in_cm);
Serial.print(" cm");
Serial.println();
// Control the LED based on distance
if (Distance_in_cm <= Threshold_Distance_in_cm)
{
digitalWrite(Proximity_Indicator_LED_Pin, HIGH); // Turn on LED
}
else
{
digitalWrite(Proximity_Indicator_LED_Pin, LOW); // Turn off LED
}
// Short delay before the next measurement
delay(100);
}
// Convert microseconds to centimeters
int microsecondsToCentimeters(long microseconds)
{
return (microseconds * 0.0343) / 2; // Convert duration to distance in cm
}