Untitled
user_2252848675
python
3 years ago
2.1 kB
6
Indexable
import RPi.GPIO as GPIO
import time
#GPIO Mode (BOARD / BCM)
GPIO.setmode(GPIO.BCM)
GPIO.setWarnings(False)
#set GPIO Pins
GPIO_TRIGGER1 = 18
GPIO_ECHO1 = 24
GPIO_TRIGGER2 = 17
GPIO_ECHO2 = 27
GPIO_TRIGGER3 = 22
GPIO_ECHO4 = 5
GPIO_TRIGGER4 = 6
GPIO_ECHO4 = 13
GPIO_TRIGGER5 = 19
GPIO_ECHO5 = 26
GPIO_TRIGGER6 = 25
GPIO_ECHO6 = 8
#set GPIO direction (IN / OUT)
GPIO.setup(GPIO_TRIGGER1, GPIO.OUT)
GPIO.setup(GPIO_ECHO1, GPIO.IN)
GPIO.setup(GPIO_TRIGGER2, GPIO.OUT)
GPIO.setup(GPIO_ECHO2, GPIO.IN)
GPIO.setup(GPIO_TRIGGER3, GPIO.OUT)
GPIO.setup(GPIO_ECHO3, GPIO.IN)
GPIO.setup(GPIO_TRIGGER4, GPIO.OUT)
GPIO.setup(GPIO_ECHO4, GPIO.IN)
GPIO.setup(GPIO_TRIGGER5, GPIO.OUT)
GPIO.setup(GPIO_ECHO5, GPIO.IN)
GPIO.setup(GPIO_TRIGGER6, GPIO.OUT)
GPIO.setup(GPIO_ECHO6, GPIO.IN)
def distance(GPIO_TRIGGER,GPIO_ECHO):
# set Trigger to HIGH
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()
# save StartTime
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 = []
dist.append(distance(GPIO_TRIGGER1,GPIO_ECHO1))
dist.append(distance(GPIO_TRIGGER2,GPIO_ECHO2))
dist.append(distance(GPIO_TRIGGER3,GPIO_ECHO3))
dist.append(distance(GPIO_TRIGGER4,GPIO_ECHO4))
dist.append(distance(GPIO_TRIGGER5,GPIO_ECHO5))
dist.append(distance(GPIO_TRIGGER6,GPIO_ECHO6))
print (dist)
time.sleep(1)
# Reset by pressing CTRL + C
except KeyboardInterrupt:
print("Measurement stopped by User")
GPIO.cleanup()Editor is loading...