树莓派超声波测距代码
时间: 2024-06-11 18:02:05 浏览: 124
树莓派超声波测距代码可以使用Python编写。以下是一个简单的示例代码:
```python
import RPi.GPIO as GPIO
import time
# 定义GPIO引脚
GPIO_TRIGGER = 23
GPIO_ECHO = 24
# 设置GPIO模式为BCM
GPIO.setmode(GPIO.BCM)
# 设置GPIO输入输出
GPIO.setup(GPIO_TRIGGER, GPIO.OUT)
GPIO.setup(GPIO_ECHO, GPIO.IN)
def distance():
# 发送10us的脉冲信号,触发超声波模块
GPIO.output(GPIO_TRIGGER, True)
time.sleep(0.00001)
GPIO.output(GPIO_TRIGGER, False)
# 记录触发时间和响应时间
start_time = time.time()
stop_time = time.time()
# 计算超声波信号往返时间
while GPIO.input(GPIO_ECHO) == 0:
start_time = time.time()
while GPIO.input(GPIO_ECHO) == 1:
stop_time = time.time()
time_elapsed = stop_time - start_time
# 计算距离(单位:厘米)
distance = (time_elapsed * 34300) / 2
return distance
if __name__ == '__main__':
try:
while True:
dist = distance()
print("Measured Distance = {:.2f} cm".format(dist))
time.sleep(1)
# 重置GPIO引脚状态
GPIO.cleanup()
except KeyboardInterrupt:
# 如果用户按下Ctrl+C,退出程序并重置GPIO引脚状态
GPIO.cleanup()
```
这段代码使用BCM编码方式来定义GPIO引脚,通过触发超声波模块并计算超声波信号的往返时间,从而计算距离。在主函数中,程序将不断地读取距离并输出。当用户按下Ctrl+C时,程序将重置GPIO引脚状态并退出。
阅读全文