Last active
December 11, 2019 20:23
-
-
Save codelectron/c2b6604da028fa459fb6749c7b0de047 to your computer and use it in GitHub Desktop.
This gist is part of the article http://codelectron.com/measure-distance-ultrasonic-sensor-pi-hc-sr04/
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import RPi.GPIO as GPIO | |
import time | |
GPIO.setmode(GPIO.BCM) | |
GPIO_TRIGGER = 23 | |
GPIO_ECHO = 24 | |
GPIO.setup(GPIO_TRIGGER, GPIO.OUT) | |
GPIO.setup(GPIO_ECHO, GPIO.IN) | |
def distance(): | |
GPIO.output(GPIO_TRIGGER, True) | |
# set Trigger after 0.01ms to LOW | |
time.sleep(0.00001) | |
GPIO.output(GPIO_TRIGGER, False) | |
StartTime = time.time() | |
StopTime = time.time() | |
while GPIO.input(GPIO_ECHO) == 0: | |
StartTime = time.time() | |
# save time of arrival | |
while GPIO.input(GPIO_ECHO) == 1: | |
StopTime = time.time() | |
# time difference between start and arrival | |
TimeElapsed = StopTime - StartTime | |
# multiply with the sonic speed (34300 cm/s) | |
# and divide by 2, because there and back | |
distance = (TimeElapsed * 34300) / 2 | |
return distance | |
if __name__ == '__main__': | |
try: | |
while True: | |
dist = distance() | |
print ("Measured Distance = %.1f cm" % dist) | |
time.sleep(1) | |
# Reset by pressing CTRL + C | |
except KeyboardInterrupt: | |
print("Measurement stopped by User") | |
GPIO.cleanup() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment