首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在树莓派3上制作HC-SR04超声波测距传感器?

如何在树莓派3上制作HC-SR04超声波测距传感器?
EN

Stack Overflow用户
提问于 2019-01-21 21:41:32
回答 1查看 136关注 0票数 0

我有一个使用HC-SR04和Raspberry Pi 3测量距离的Python代码。代码一次打印一个值,我希望代码每秒在Raspberry Pi上打印/更新距离测量,直到键盘中断。

代码语言:javascript
复制
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)

TRIG = 23
ECHO = 24

GPIO.setup(TRIG,GPIO.OUT)
GPIO.setup(ECHO,GPIO.IN)

GPIO.output(TRIG, False)
time.sleep(0.00001)

GPIO.output(TRIG, True)
time.sleep(1)
GPIO.output(TRIG, False)

while GPIO.input(ECHO) == 0:
  pulse_start = time.time()

while GPIO.input(ECHO) == 1:
  pulse_end = time.time()

pulse_duration = pulse_end - pulse_start

distance = pulse_duration *  17150

distance = round(distance, 2)

print("Distance:",distance," cm")

GPIO.cleanup()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-22 17:20:59

代码语言:javascript
复制
#!/usr/bin/python
import RPi.GPIO as GPIO
import time

def getDistance:
      GPIO.output(PIN_TRIGGER, GPIO.HIGH)

      time.sleep(0.00001)

      GPIO.output(PIN_TRIGGER, GPIO.LOW)

      while GPIO.input(PIN_ECHO)==0:
            pulse_start_time = time.time()
      while GPIO.input(PIN_ECHO)==1:
            pulse_end_time = time.time()

      pulse_duration = pulse_end_time - pulse_start_time
      distance = round(pulse_duration * 17150, 2)
      return distance


GPIO.setmode(GPIO.BOARD)

PIN_TRIGGER = 7
PIN_ECHO = 11

GPIO.setup(PIN_TRIGGER, GPIO.OUT)
GPIO.setup(PIN_ECHO, GPIO.IN)

GPIO.output(PIN_TRIGGER, GPIO.LOW)

print "Waiting for sensor to settle"

time.sleep(2)

while True:
    print(getDistance())        

finally:
      GPIO.cleanup()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54291255

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档