float measureDistance() {
// uses HC-SR04 ultrasonic sensor
unsigned long start_time, end_time, pulse_time;
// trigger ultrasonic signal for 10 microseconds
digitalWrite(TRIG_PIN, HIGH);
digitalWrite(TRIG_PIN, LOW);
// wait until echo received
while (digitalRead(ECHO_PIN) == 0);
// measure how long echo lasts (pulse time)
start_time = micros(); // get start time in microseconds
while (digitalRead(ECHO_PIN) == 1); // wait until echo pulse ends
end_time = micros(); // get end time
pulse_time = end_time - start_time; // subtract to get duration
// pulse time of 23200 represents maximum distance for this sensor
if (pulse_time > 23200) pulse_time = 23200;
// calculate distance to object using pulse time
float dist_cm = pulse_time / 58.0;
float dist_in = pulse_time / 148.0;
// need 60 ms delay between ultrasonic sensor readings
return dist_in; // or can return dist_cm