2.5 超声波测距模块
超声波测距[14,15]环境要求不高,因为雨天和雾天的穿透力很强,正常工作。 所以超声波电路的设计使用了HC-SR04超声波测距模块。超声距离测量模块的工作原理是:使用单片机I / O端口触发范围,即当微控制器向超声波模块TRIG的输入端发送10us高脉冲时,微控制器内部定时器清零 。 当输出端子ECHO为高电平时,当输出端子ECHO变低时,定时器开始工作,定时器停止工作,读取定时器T0时间,计算距离超声波距离测量模块电路图的距离,如图2-7所示 。
图2-7超声波测距模块电路图
2.6 语音模块
语音模块使用WT588D [16]语音模块。WT588D不但能做FLASH单片机,另外还能当作普通的语音芯片作为从片发声。更重要的是,在完全不改变管脚的情况下,可以掩膜样品,价格也就少了一半。WT588D语音芯片是强大的可重复擦除写入的语音单片机芯片。串口控制模式可以控制语音播放,停止,循环和音量大小,或直接触发0?219任意语音的地址,发送速度为600us?2000us;可以控制语音播放,停止,回路和音量,或直接触发0?219任何语音地址,三线串口控制I/ O端口扩展输出可扩展输出8位,在两种模式下切换,允许最后一个状态的最后一个模式保持下一个模式。语
音
音
模
块
的
电
路
图
如
图
2-8
所
示
。
11
图2-8语音模块电路图
2.7 电源模块
稳定电压是一个平衡值,高了可能损坏电路或者电路起保护;低了电路不能正常工作,因此需要稳压电路来保证电路正常工作。稳压电路如图2-9所示。
图2-9稳压电路
电源模块主要用了芯片L7805CV [17]。外部电源连接后9V电压从1脚进入稳压器,从3脚输出5V电压。 L7805CV还特别适用于过载情况,因为它具有内部电流限制和热关断特性。无需外接元件;内部热过载保护;输出电流可以达到100mA;内部短路电流限制就是L7805CV的四大特点。
2.8 本章小结
本章节是对多功能垃圾箱的控制系统的各个模块的硬件设计,结合自身所学的基础知识和实践操作,对本次设计的硬件电路提出较为明确的要求和实施的流程,查阅各种相关文献资料,逐步构建出各个模块的框架结构,最后作出原理图。一个硬件模块设计的成功与否并不是只体现在各个模块的功能是否分别实现了,而是要看各个模块是否能够搭配起来一起实现硬件的整体功能。经过了硬件的设计,对本次设计的总体框架和流程目的更加清晰明确,为接下来软件设计的顺利进行打下一定的基础。
12
3. 系统软件设计
3.1 系统程序总体流程图
通电时,系统程序将首先初始化每个模块。 为了使超声波模块能够正常测距,设置了200ms的延迟。定时器开始计数,如果时间已过,系统开始喷洒消毒剂。 同时,超声波测量模块和光电传感器模块开始工作。 如果超声波测量模块检测到人与料斗之间的距离小于80厘米的距离,则步进电机运行并附有语音广播“垃圾放置请分类”,电机反转后延迟3秒。 如果光电传感器模块感测到物体,则会语音传递消息“1号垃圾箱已满”或者“2号垃圾箱已满”。系统程序总体流程图如图3-1所示。
开始等待外部设备上电稳定各个功能模块初始化N200mS时间到?YN超声波测量距离到达喷消毒剂时间?判断1号和2号垃圾箱满的情况N开门状态?N距离小于80cm?垃圾箱已满?NY延时3S后关门YY Y步进电机正转半圈,开门,并且语音播报“垃圾放置请分类”喷消毒剂语音播报相关信息“1号垃圾箱已满”“2号垃圾箱已满”
图3-1系统程序总体流程图
3.2 超声波测距模块的程序设计
13
超声波距离测量模块除了检测物体是否接近的能力外,还可以在一定范围内测量物体附近及其距离。 当微控制器向超声波模块TRIG的输入端发送10秒的高脉冲时,微控制器内部定时器被清零。 超声波传感器的工作原理如图3-2所示。
开始TRIG发送一个10uS的高脉冲,启动模块发送定时器清零NECHO为高?Y开定时器YECHO为高?N读取TH0和TL0的数值并计算出距离返回
图3-2超声波测距子程序流程图
本系统超声波测距子程序如下: void send_wave() { c_send = 1;
//10us的高电平触发
delay(); c_send = 0; TH0 = 0; TL0 = 0; TR0 = 0;
//关定时器0定时
//给定时器0清零
flag_hc_value = 0; while(!c_recive); TR0=1; while(c_recive)
//当c_recive为1计数并等待
14
//当c_recive为零时等待
{flag_time0 = TH0 * 256 + TL0;
if((flag_hc_value > 1) || (flag_time0 > 65000)) //当超声波超过测量范围
时,显示3个888
{
distance *= 0.017; // 0.017 = 340M / 2 = 170M = 0.017M 算出{TR0 = 0; flag_csb_juli = 2; distance = 888; flag_hc_value = 0; break ;} else
{flag_csb_juli = 1; }} TR0=0;
//关定时器0定时
if(flag_csb_juli == 1)
distance = TH0; //读出定时器0的时间
distance = distance * 256 + TL0;
distance +=( flag_hc_value * 65536);// 单位是:ms —超声波测距的时间
来是米 }
}
if(distance > 350) {distance = 888; }
//距离 = 速度 * 时间
//如果大于3.8m就超出超声波的量程
3.3 控制电机正反转的程序设计
控制电机正在扭转这部分自动翻盖的设计。 系统开始工作后,要确定电机是否需要向前转,必要时要将AB,BC,CD,DA电源实现正转,延时3m电机正转之后正转反转,即为AB ,AD,CD,CB 充电。如图3-3所示。
15