Skip to content

Instantly share code, notes, and snippets.

@dhahaj
Created July 8, 2018 23:44
Show Gist options
  • Save dhahaj/5035cf69e62b6c88842b0c73c705c8a4 to your computer and use it in GitHub Desktop.
Save dhahaj/5035cf69e62b6c88842b0c73c705c8a4 to your computer and use it in GitHub Desktop.
Python script for testing the HC-SR04 distance sensor.
import RPi.GPIO as GPIO #Import GPIO library
import time #Import time library
GPIO.setmode(GPIO.BCM) #Set GPIO pin numbering
TRIG = 19 #Associate pin 23 to TRIG
ECHO = 26 #Associate pin 24 to ECHO
print("Distance measurement in progress")
GPIO.setup(TRIG, GPIO.OUT) #Set pin as GPIO out
GPIO.setup(ECHO, GPIO.IN) #Set pin as GPIO in
while True:
GPIO.output(TRIG, False) #Set TRIG as LOW
print("Waiting For Sensor To Settle")
time.sleep(2) #Delay of 2 seconds
GPIO.output(TRIG, True) #Set TRIG as HIGH
time.sleep(0.00001) #Delay of 0.00001 seconds
GPIO.output(TRIG, False) #Set TRIG as LOW
while GPIO.input(ECHO)==0: #Check whether the ECHO is LOW
pulse_start = time.time() #Saves the last known time of LOW pulse
while GPIO.input(ECHO)==1: #Check whether the ECHO is HIGH
pulse_end = time.time() #Saves the last known time of HIGH pulse
pulse_duration = pulse_end - pulse_start #Get pulse duration to a variable
distance = pulse_duration * 17150 #Multiply pulse duration by 17150 to get distance
distance = round(distance, 2) #Round to two decimal points
if distance > 2 and distance < 400: #Check whether the distance is within range
print("Distance:",distance - 0.5,"cm") #Print distance with 0.5 cm calibration
else:
print("Out Of Range") #display out of range
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment