所购买的HC-SR04的超声波模块介绍如下:
1、典型工作用电压:5V。
2、超小静态工作电流:小于 2mA。
3、感应角度:不大于 15 度 。
4、探测距离:2cm-400cm
5、高精度:可达 0.3cm。
6、盲区(2cm)超近。
实测raspberry pi电压4.7V。所以直接测试一下,但是需要获取系统时间和系统处理耗时,测试结果精度不高,可以区三次平均数。
代码如下:
#!/bin/env python # -*- coding:utf-8 -*- # ------------------------------- # Revision: # Date: 2012-12-11 # Author: simonzhang # Email: simon-zzm@163.com # Web: www.simonzhang.net # ------------------------------- import time import RPi.GPIO as GPIO import datetime as dt # 初始化 # 需要注意输出与输入的接口 # 17为发射,18为接收 GPIO.setmode(GPIO.BCM) GPIO.setup(17, GPIO.OUT) GPIO.setup(18, GPIO.IN) GPIO.output(17, False) while 1: time.sleep(1) # IO 触发,给10us的高电平 # 模块自动发送8个40khz的方波 GPIO.output(17, GPIO.HIGH) time.sleep(0.00001) GPIO.output(17, GPIO.LOW) # 获取发射完毕时间 t1 = time.time() # 未接收为False,循环检查开始接受点 # 转为True为开始接受 while GPIO.input(18) == False: pass # 循环检查开始接收,转为False。则为接受完毕 while GPIO.input(18): pass # 获取接受完毕时间 t2 = time.time() # 计算发送与接收时间差 t3 = t2-t1 print t3 # 空气中1个标准大气压在温度15度时速度为340m/s # 25度为346m/s # 所以按照一秒钟34000厘米计算 # 根据硬件文档,该模块探测距离在2-400cm之间 # 测试范围的时间间隔应该为0.000117到0.023529 # 为了方便取值自行变化一点 if 0.0235 > t3 > 0.00015: distance = t3*34000/2 print 'Distance: %f cm' % distance else: print 'Null'
请问下这个实验里HC-SR04直接接在5.5V电源上的吗?不用串接电阻没关系的?
我测试,板子上的电压,不到5V,所以我就没有加电阻。反正简单测试,就一会。呵呵