一:HC-SR04 管脚介绍
VCC:超声波模块电源脚,接5V电源即可
Trig:超声波发送脚,高电平时发送出40KHZ出超声波
Echo:超声波接收检测脚,当接收到返回的超声波时,输出高电平
GND:超声波模块GND
二:树莓派管脚介绍
第2只脚为5V,给超声波模块供电
第39只脚为GND,与超声波模块共地
第1、3只脚分别为GPIO2和GPIO3,分别作发送和接收用,分别于Trig和Echo相连接。
三:编写python脚本
cd /home/pi/test
nano hc_sr04
测试代码如下:
#! /usr/bin/python # -*- coding:utf-8 -*- import RPi.GPIO as GPIO import time def checkdist(): #发出触发信号 GPIO.output(2,GPIO.HIGH) #保持10us以上(我选择15us) time.sleep(0.000015) GPIO.output(2,GPIO.LOW) while not GPIO.input(3): pass #发现高电平时开时计时 t1 = time.time() while GPIO.input(3): pass #高电平结束停止计时 t2 = time.time() #返回距离,单位为米 return (t2-t1)*340/2 GPIO.setmode(GPIO.BCM) #第3号针,GPIO2 GPIO.setup(2,GPIO.OUT,initial=GPIO.LOW) #第5号针,GPIO3 GPIO.setup(3,GPIO.IN) time.sleep(2) try: while True: print 'Distance: %0.2f m' %checkdist() time.sleep(0.5) except KeyboardInterrupt: GPIO.cleanup()
注意缩进
用ctrl +o 保存回车ctrl +x 退出运行
python hc_sr04
查看数据
ctrl+c退出
整体来说精度还是不错的。