超声波测距仪的制作图解

步骤1:零件清单
只需要很少的部件:
1只有hc-sr04超声波模块或类似的
1只有arduino uno r3
4只有arduino male-女性跳线
第2步:接线图
完成此项目只需要四条线。
接线图显示在photo1中。
步骤3:理论
hc-sr04超声波测距仪模块(照片1)提供2cm-400cm范围内的非接触式测量。精度通常为+/- 3mm,具体取决于距离,气温和湿度。
为获得最高精度,目标区域应至少为0.5平方米。当换能器直接指向目标时获得最佳结果。但是,可以在+/- 15度的假想“锥形”内使用可用的结果。
将hc-sr04连接到arduino非常简单,因为除了两个电源引脚外,只有两根电线,“trig”(触发器)和“echo”是必需的。
必须将10us(微秒)触发脉冲施加到“trig”引脚以开始每次测量。
接收到触发脉冲后,模块以40khz(千赫兹)的频率发出8个周期的“脉冲串”,然后“echo”线变为高电平。触发脉冲和“echo”引脚的上升沿之间有一个短的430us间隔,在此期间,在超声波脉冲发生之前,发射器电路中会产生高能量+/- 10伏电荷。
收到回波信号时,“echo”引脚降至low,或者先取210ms。
[注意:
如果阻止超声波信号(我使用过在换能器上卷起袜子,您将观察到3550cm的距离读数,该读数超出传感器范围约400cm。
超过400厘米时,距离读数会突然跳到3550厘米。原因如下:
在正常操作中,measure()函数在小于25ms(423cm)内完成其测量,然后再等待25ms,直到任务调度程序接下来将taskflag1设置为“true”。
如果没有收到回声,任务调度程序将继续每隔50ms将taskflag1设置为“true”,直到hc-sr04在210ms后超时并且echo引脚降低。 hc-sr04忽略由measure()函数产生的所有10us启动脉冲。
210ms的超时值对应3550cm的距离。..因此距离突然跳跃阅读。
重点是所有距离读数都小于400厘米是正确的。 ]
典型波形
照片2,3,4中显示了5cm,10cm,20cm和200cm距离的波形,以及5.
每张照片中的顶部曲线是“trig”引脚。..。..每张照片中的下部曲线是“echo”引脚。
每个“echo”脉冲的持续时间可以通过将迹线长度乘以每张照片右下角显示的“us/div”值来计算。
计算距离
可以从公式计算出精确距离:
距离(cm)=脉冲长度*声速/2 * 100 。..。..。..。..。..。..。..。..。..。..。..。..。..。.(1)
这假设“声速”为340m/s,并且回波距离是实际距离的两倍。
也可以计算距离使用公式:
距离(cm)=脉冲长度(us)/59 。..。..。..。..。..。..。..。. 。..。..。..。..。..。..。..。..。..。..。..。..。..。..。..。..。. 。..。(2)
通过调整常数值59可以得到确切的距离。
[注意:
常数的59值推导如下:
声速约为340m/s,为0.034cm/us(厘米/微秒) nd)。
0.034cm/us的倒数是29.412us/cm,当乘以2以允许返回路径时,倒圆时等于58.824或59。 ]
示例1:
将脉冲长度2400us代入等式( 1)我们得到:
距离= 2400/1000000 * 340/2 * 100 = 40.8cm
示例2:
将脉冲长度2400us代入等式(2)得到:
距离= 2400/59 = 40.7cm
步骤4:代码
代码包含一个“measure()”函数,使用instructable https://www中描述的任务调度程序每50ms调用一次。 instructables.com/id/multi-task-your-。..
measure()函数包含以下代码:
// ----- generate 10us start pulse
digitalwrite(trig,high);
delaymicroseconds(10);
digitalwrite(trig,low);
// ----- measure the distance
while (!digitalread(echo)); //wait for echo pin to go high
start_time = micros();
while (digitalread(echo)); //wait for echo pin to go low
finish_time = micros();
time_taken = finish_time - start_time;
distance = ((float)time_taken)/59;
完整代码“ultrasonic_range_finder将此文本文件的内容复制到arduino草图中,将其保存为“ultrasonic_range_finder”(不带引号),然后编译并上传到arduino。
步骤5:测量距离
要查看距离读数,请单击“工具|串行监视器”并将速度设置为115200波特。
可以通过沿标尺放置物体然后调整“距离”的常数“59”值来校准距离读数,直到显示精确读数。

闻库针对下一步的5G发展规划提出四大看法
一文盘点ADAS处理器芯片
基于碳点修饰的光电化学生物传感器实现可见光下检测葡萄糖浓度
面粉麸皮重金属检测仪功能特点介绍
AirFuel高层出席台北ITRI“无线电能传输结合5G新应用研讨会”
超声波测距仪的制作图解
OpenCV SIFT特征算法详解与使用
华为DriveONE动力域解决方案为用户打造极致驾驶体验
基于智能电网和高级量测体系实现智能用户端的设计
智能家居不能一“屏”控制,智能手机无法承受之重
小康助手怎么看中医?省时省力还省钱的家庭健康机器人
浅析大数据技术之Flink
线性直流电源的操作注意事项
如何区别碳锌电池和碱性电池?
促使EDA行业高速增长的原因分析
VOC监测仪的功能特点有哪些
三运放仪表放大器的放大倍数分析
带着手机就能出差——PeakDo毫米波投屏让手机秒变电脑
一加电视曝光 采用8只杜比Atmos扬声器
智能体感试衣镜将如何解决服装店的试装难题