一、本例程实现功能
通过US-015超声波测距传感器模块测量障碍物离传感器的距离,通过print()函数在电脑串口调试终端打印输出距离(单位:毫米)。
二、US-015超声波测距模块介绍以及原理
模块介绍:US-015是目前市场上分辨率高,重复测量一致性较好的超声波测距模块。US-015的分辨率可达1mm,测距精度高;重复测量一致性好,测距稳定可靠。US-015超声波测距模块可实现2cm~4m的非接触测距功能,供电电压为5V,工作电流为2.2mA。US-015是US-020模块的升级版本,和US-020模块完全兼容。
测距原理:测距时,超声波传感器 会发出8个40KHZ的超声波脉冲 ,然后Core会自动计算脉冲的回波时间,然后结合声音在空气介质中的速度(15℃ 340米/秒)即可计算出距离。
三、接线图
五、完整代码
--配置USB以虚拟串口模式工作,这样调用print()函数就会在电脑串口终端打印输出
LIB_UsbConfig("CDC")
--配置超声波传感器开始工作,固定占用Core的D4,D5引脚,每隔100ms左右可输出一个测量结果
LIB_US015Config()
--开始大循环
while(GC(1) == true)
do
--每隔200ms查询一次传感器是否出数
LIB_DelayMs(200)
flag, distance = LIB_US015GetDistance()
if flag == 1 then
--打印测量距离(mm)
print(string.format("distance:%dmm", distance))
end
end
六、代码运行结果
当传感器离墙面40cm左右时,电脑串口调试终端上显示的距离值(mm)内容如下图:
六、影响测距精确度的因素
传输介质
最理想的情况是在干燥无风的空气介质中测量,如果空气潮湿或不均匀会对测量结果有一定的影响
被测物体平整度
被测的物体如果表面越平整,测量结果就越准确且稳定
环境温度
当环境温度发生变化时,声波的传输速度也会相应的发生变化,所以会导致测量准确性发生一点变化。下图是温度和声波速度的关系(V=331+0.6xT):
注意:Core中计算距离所用的声波速度为15℃,340m/s的参数,所以当环境温度不同于15℃时测量的距离和实际距离会发生一点变化。如果您的系统支持测量环境温度的话,就可以按照上面的公式计算出当前环境温度下的声波速度和标准340m/s的比例值,最后用这个比例值简单的修正一下Core输出的距离值即可。
更多详情请参看 shineblink.com官网链接