基于单片机的超声测距报警系统设计方案
时间:07-09
来源:互联网
点击:
图3 系统发射电路图
图4 发射与接收时序图
2.3 测距报警系统外围电路系统的外围电路包括电源、复位、晶振、测温、报警、串口以及数码管显示电路等。
PIC16F877A 可采用的时钟频率为4MHz ~20MHz,在保证系统计算精准度的基础上,采用了8MHz 的晶振,这样便于设定发射超声波的数目,使超声波中心频率维持在40KHz.采用的DS18B20 芯片可对声速进行修正,使结果更加准确。系统采用蜂鸣器进行报警。串口电路可以实现和上位机通信。为了便于观察,采用数码管显示测量的距离,PIC 单片机的RD0~RD7 控制数码管的七位段选,RC1~RC3 控制位选,以动态扫描的方式显示距离。串口通信和显示电路如图5 所示,系统外围电路如图6 所示。
图5 系统显示电路和串口通信电路图
图6 超声测距报警系统外围电路
3 系统软件设计
软件设计主要包括:主程序,测温修正声速子程序,中断子程序,滤波子程序,报警子程序和显示子程序等。
系统开始工作后,首先完成系统初始化;紧接着是对声速进行修正,得到当前温度下的声速;然后对定时器T1 进行设置,并由PIC 单片机产生40KHz 的方波;接下来便是通过读取T1 定时器的数值来计算测距时间和测量距离;得到正确的测量距离便采用数组的方式进行记录,数组元素个数为11,采用冒泡法进行排序,取中间值作为最终的测量距离,以提高测距的精准度;下一步便是判定是否符合报警条件,如果符合条件便报警,然后通过数码管显示距离,不符合报警条件则直接显示距离。在程序运行过程中,如果有中断产生便跳到中断子程序。在中断程序中,首先判断该中断是外部中断还是T1 溢出中断。如果是外部中断,则关闭T1 和外部中断使能并计算时间和距离;如果是T1 溢出中断,则对T1 进行清零,系统重新发射超声波。系统主程序及中断程序流程图如图7 所示。
图7 系统主程序及中断程序流程图。
在软件设计时,要特别注意避免在DS18B20 总线读写或复位的过程中产生中断,防止温度读取错误。系统每计算完一次时间和距离时都要对定时器T1 清零,否则下一次测量会造成数据不准确。
4 实验结果及分析
本文首先对测量距离和测量结果进行了验证和分析。发射换能器刚发射的超声波可能会直接横向发射到接收超声换能器,所以在发射完超声波后进行延时,由此产生的盲区大约为10cm.测量结果和相对误差如表2 所示。
表2 探测结果及误差分析
超声波报警方式主要有两种:一种是通过软件设置一个阈值与测的距离进行比较,如果不符合确定的定义则报警。另一种是通过多普勒效应波形检测,发射换能器发射超声波后,在没有移动物体进入被探测区域的情况下,反射回来的超声波是等幅的;当有活动的物体进入探测区域时,反射回来的超声波幅度不等,并且不断变化,当接收电路检测到变化的信号时,控制电路便驱动报警装置进行报警。
本文首先按照第一种报警思路对系统进行了设计。我们把测距报警系统安置在正对着办公室门口的桌子上,系统稳定后测的距离为188,我们设定的阈值为200,当有人进入便造成探测距离小于预设值,如果在预定的20s 内没有取消报警设置时,系统便会自动报警。试验结果表明,系统反应灵敏、精准度高,误报率低于1%,符合设计要求。下一步工作我们可以把产生的报警信号通过短信的方式发送到手机客户端或者防务人员信息端。
针对第二种报警方式,我们把CX20106A 输出电平信号变化类比为多普勒波形进行检测。通过试验得知:如果不间断的发射超声波,CX20106A 芯片7 引脚的输出并不会和预期的那样一直维持在低电平,这是由于该芯片的灵敏度不足以分辨出这么短时间的电平变化,其内部的上拉门限会很快把输出信号变为高电平,没有活动物体便一直维持在低电平。因此,本系统便采用该种方式发送超声波,图8 为稳定后的输出电平,图9 为人员进入探测区域走动造成的电平变化。
图8 接收到的电压波形图
图9 有活动物体进入时得到的电压波形图通过长时间实验结果观察得知,在没有移动物体进入探测区时,平均每小时大约有10 次低电平跳变,误报率很低,所以采用短时间间隔取样的方式,这样出现误报为
机器人 PIC 传感器 电压 电路 Microchip 温度传感器 总线 电路图 放大器 红外 单片机 相关文章:
- FIGLA超声波感应全自动清扫机器人(11-11)
- 基于行为的智能吸尘机器人设计(01-10)
- 机器人、四轴飞行器7个制作实例解析(制作步骤、电路图、源代码、演示视频)(05-24)
- 十几款创意机器人制作热推,呆萌炫酷通通有!(06-09)
- 语音识别在生活中的七个经典应用(02-04)
- DIY电子项目创意设计汇总(电路城原创精选)(10-25)