/** * Hardware Connections: * Arduino | HC-SR04 * ------------------- * 5V | VCC * 7 | Trig * 8 | Echo * GND | GND */ // Pins const int TRIG_PIN = 7; const int ECHO_PIN = 8; // Anything over 400 cm (23200 us pulse) is "out of range" const unsigned int MAX_DIST = 23200; void setup() { pinMode(TRIG_PIN, OUTPUT); digitalWrite(TRIG_PIN, LOW); Serial.begin(9600); } void loop() { unsigned long t1; unsigned long t2; unsigned long pulse_width; float cm; digitalWrite(TRIG_PIN, HIGH); delayMicroseconds(10); digitalWrite(TRIG_PIN, LOW); while ( digitalRead(ECHO_PIN) == 0 ); t1 = micros(); while ( digitalRead(ECHO_PIN) == 1); t2 = micros(); pulse_width = t2 - t1; cm = pulse_width / 58.0; if ( pulse_width > MAX_DIST ) { Serial.print("0"); Serial.print(" "); } else { Serial.print(int(cm)); Serial.print(" "); } delay(2000); }