漂流投稿-简易SR-04超声波测量长度LCD1602显示.
你有没有遇到过需要量一个东西的尺寸但又苦于家里找不到任何测量工具的情况。我的学生今天来我家上1对1小课,我出题让他不用尺子测量我一个柜子的宽度,他用到了这样一种方法,我桌子上有一张5圆的钞票,查了一下5元人民币的宽度。14.1mm,把钱翻转的方法一步一步的往后,直到不够翻一面,剩下的一点,钱对折,再测,估算好的方法还有很多。今天要说的第二个方法就是利用超声波模块SR-04(本来是准备用套件里面的红外测距装置,遗憾没找到资料)测距和1602显示屏示距。
原理大致上说就是超声波测距模块SR04会发超声波信号,然后遇到障碍物反射回自己的接收器上。例如SR-04在某一个时间段完成发出信号和接收反弹信号的工作后,会记录下这个时间差t,已知声音的传播速度是340米每秒,也就是说已知速度时间,求距离,很简单的公式s=340·t,就可以算出一个来回路程,注意是来回,也就是说这个结果除以2才是你和障碍物距离,最后把计算结果通过IIC接把串口读数体现在LCD1602上,达到实时显示你和障碍物的距离变化的目的。
设定一个情景,最近家里装修,很多时候会用到卷尺,但常常使用后随手一放在下次用的时候就会忘记放哪了,又得浪费时间去找,所以我们决定就利用上面说到的方式,做一个简易的超声波测距器。开工
材料清单:DFRDuino UNO,HC SR-04超声波模块,I2C接口的LCD1602显示屏,9V电池,面包板、线。接线图:
9V→UNO
HC SR-04 echo ------------D4
HC SR-04 trig ------------D5
I2C LCD1602 SDA--------------A4
I2C LCD1602 SCL--------------A5
(注意这两个模块都需要5V稳压供电,所以9V电池正负极最好在各引出一条线通过降压模块输出5V电压喂给它们,读数才能够相对稳定。我这里省略了)
编程:
接完线插上数据线用米思齐进行搭积木式的图形化编程
先上电看看超声波模块给我们输出一些什么样的数值吧。对着墙面,打开串口监视器观察串口读数。
估算了一下墙面的距离,得出结论:原来这就是距离。直接用到程序里面
上传后 接下来就可以把超声波模块对着墙观察屏幕上的读数了,等等。。。完了吗?
NONONO
我们还不知道这个模块以哪里开始算起点,连起点的标识都没有那测量还有什么意义,怎么办?自己创造呗。先把超声波模块加工一下,做一个坚固不易动的标识(如图我用了的几块积木,它就是我的“零起点”)
拿把尺子,0cm刻度贴着墙,比方说你在20CM处的位置放下超声波模块,起点线压20的刻度线,那么理论上应该读出的是20cm,可实际呢?一般都会有差异,这可怎么办??很简单就可以修正,只需要稍稍修改一个参数即可,找到打印第一行里面的变量item给他加或减去某个数让它等于20不就可以了
(我这里读18.9所以我得在变量后加个1.1就修正好了)
再看看读数 标标准准20CM,
此时测距器也就具有一定的精度了。基本上能够胜任家用普通的测量的工作了。
当然,如果你希望它能够稍微小一点便于携带,可以采用Nano,Pro Mini ,Beetle等这样的小块头主控模块来制作。
==============完=================
创意不错 还能做个测速仪 楼主的想法非常666
页:
[1]