#define TRIG_PIN 2
#define ECHO_PIN 3
#define LED_PIN 4
long duration;
float cm, inches;
void setup() {
Serial.begin(115200); // ESP32 usually uses higher baud
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(LED_PIN, OUTPUT);
}
void loop() {
// Clean trigger
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(5);
// Send pulse
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
// Read echo
duration = pulseIn(ECHO_PIN, HIGH);
// Convert to distance
cm = (duration / 2.0) / 29.1;
inches = (duration / 2.0) / 74.0;
// LED control
if (cm < 18) {
digitalWrite(LED_PIN, HIGH);
} else {
digitalWrite(LED_PIN, LOW);
}
// Print
Serial.print(inches);
Serial.print(" in, ");
Serial.print(cm);
Serial.print(" cm");
Serial.println();
delay(250);
}