基于单片机的医用垃圾箱的设计

摘 要

随预防与控制医院感染是现代医疗工作中的重中之重,近年来因传染性疾病的频发,避免交叉感染,从而对医护
人员经常使用的垃圾箱进行必要的隔离,不仅可以改善医院及病区环境,而且有效地预防和控制感染。加强对医疗
垃圾的标准化管理,对于保护环境、防治疾病起着十分重要的作用。
  智能垃圾箱提出了一种新型垃圾箱的设计方案,当人的收或者物体靠近垃圾箱时,垃圾箱会打开盖子,当垃圾
箱满时,垃圾箱会提示垃圾箱满,当垃圾箱异味的时候,垃圾箱会提示需要进行垃圾箱清洁消毒。
  微控制器52被用作微处理器,以控制各种传感器、收集数据、分析数据和控制舵机,从而实现一个智能医用垃
圾箱的设计。该软件部分是用全球流行的C语言开发的,这是一种通用的计算机编程语言,被广泛用于开发应用程序。
关键词:智能垃圾箱;52单片机;C语言;

第一章绪论

本文以STC89C52RC为核心,设计并制作了一种智能分类医用垃圾箱。该系统由光电感应模块、电机模块、语音
报警模块组成,采用单片机作为控制器,利用光电传感器采集距离信息,经数模变换和单片机处理后,发送指令,
当光电探测器探测到垃圾箱距离低于规定范围时,将自动开启,当光电探测器探测到垃圾桶装满时,将会发出声
音。临床垃圾是指从医院、诊所、预防保健、卫生、检查和其他相关部门排出的所有垃圾。这包括放射性垃圾、非
感染性垃圾和感染性垃圾。感染性废物是一种特殊的管理性废物,包括患者的血液、血清、血浆、体液、精液和与
之有关的附着物,包括传染性病原微生物的实验室和检测材料,以及外科手术中切除的病理器官等,主要是临床废
物。一般来说,医疗垃圾中含有大量的病菌性物质,有的携带致病微生物,有的含有患者的血液、体液和体内排泄
物,还有患者使用过的或被患者污染过的生活用品,包括纸巾、纱布垫等物品,这些其中都含有大量的对人体有害
的物质。对这些废物的不当处理会导致细菌在空气中的传播。其中一些甚至可能最终出现在家庭垃圾中,而医疗垃
圾与普通家庭垃圾相比,其危险性要高出几十倍,对人体的身体和精神造成严重的伤害,而且还会增加感染病毒的
几率。该系统结构简单,使用方便,成本低廉,智能化,为进一步实现人与废物的分离,预防人类感染,加强对环
境的保护,提供了一条切实可行的途径。
1.1研究背景及意义
  医院感染的防治是当前医学工作的重点,近年来因传染性疾病的频发,避免交叉感染,从而对医护人员经常使用
的垃圾箱进行必要的隔离,既能改善医院和病区的卫生条件,又能达到防治传染病的目的。加强医疗垃圾的标准化
管理,对于保护环境、防治疾病起着十分重要的作用。
  目前大部分家庭所用的垃圾箱都是无盖型或创新与实践97Automation&Instrumentation2019,34(3)人工翻盖
型,无盖垃圾箱往往会导致垃圾外溢或气味迅速蔓延,而手工翻盖垃圾箱则有使用不便等缺点。针对上述缺点,本
研究提出一种带有自动开启功能的垃圾箱,在有人丢垃圾时,垃圾箱会自行开启,人走后自行关闭。其次,给垃圾
箱加盖子,可以防止异味快速扩散,虽然可以隔离垃圾和外部环境,但是却导致人们无法直接观察到垃圾的高度。
  虽然人们在丢弃垃圾时会打开盖子看里面,但他们不可能一直站在垃圾桶旁边,所以,为方便起见,拟为在垃
圾箱内设置一个高度探测功能,用以提示使用者的垃圾溢出情况,以便使用者能够及时处置。最后,密闭型垃圾箱
会造成箱中的空气流动性不佳,容易滋生细菌,从而产生有害气体,因此,本系统设计了异味检测系统,以提醒使
用者垃圾箱中的异味浓度状况,以便使用者做相应的处理。如垃圾已满并有异味的时侯,应立即更换袋子;如果没
有装满但有异味的垃圾,可以采用放置干燥剂、喷洒异味去除剂等方法进行处理。
 综上所述,针对目前智能医疗垃圾箱面临的困难,有必要设计一种稳定的、功能实用的、低能耗的智能医疗垃圾
箱。
1.2国内外研究现状
  一般的垃圾箱分为开口型、脚踏型和翻盖型,目前市场上的智能垃圾箱产品都是比较成熟的,通过超声波或红
外线感应技术,可以在手或物体靠近的时候自动开启。虽然现在不需要手动打开,也不需要脚踏,但它的功能很简
单,只适合在家里或办公室等地方使用,但是这类人都会选择购买普通的垃圾箱。另一类则是利用太阳能为垃圾箱
提供能量,安装了压缩机,在垃圾快要装满的时候,压缩器可以将垃圾压缩到原来的1/4,这样可以极大地提高垃圾
的利用率,但是没有垃圾分类的能力。由于利用了太阳能,因此大部分的垃圾箱只适用于室外,这也是其局限性的
原因,并没有什么商业价值,所以没有被商家所接受,也没有被广泛的应用。随着人类社会的发展,垃圾的处置问
题必然会得到更多的重视,因此,新型智能垃圾箱也会引起垃圾箱制造商的兴趣,使之"智能化"、“多样化”。到目
前为止,不管是国内还是国外,都没有建立起能够自动进行垃圾分类的控制系统,目前的垃圾处理技术只能对垃圾
进行简单的分类。垃圾箱的自动化分类在未来的道路上仍将继续,而垃圾箱也将会朝着这个方向发展,使之更便
捷、更智能。
1.3研究内容及组织结构
  设计并制作基于单片机的智能医用垃圾箱控制体系,以52单片机为控制芯片,并结合所学知识以及相应的传感
器,实现更加智能化、更加适用于医用的垃圾箱,可实现以下几点功能:
1.垃圾箱内垃圾满报警
2.垃圾桶自动翻盖
3.手势识别
4.消毒提示
全文由六章组成,每章节包含以下内容:
  第一章是智能医疗垃圾箱的绪论部分,主要是介绍了本课题的研究的背景以及课题研究的意义,也对国内外课题发展的一些内容进行了说明。
  第二章是智能医疗垃圾箱的系统方案设计部分,通过对整体的设计,说明了设计的设计方案,以及智能医疗垃
圾箱的一些功能点。
  第三章是智能医疗垃圾箱的硬件设计部分,这个部分主要是对设计中涉及到的电子元器件的硬件部分进行阐
述,说明其如何使用的,如何连接制作的。
  第四章是智能医疗垃圾箱的软件设计部分,这个部分主要是对智能医疗垃圾箱的程序进行说明,主要是对主函
数的说明,和光电开关等如何运行说明。
  第五章是智能医疗垃圾箱的系统测试及总结部分,主要是对智能医疗垃圾箱的功能性验证部分,以及一些测试
说明,以及对整个部分的总结,总结了本课题的方案设计,并分析了设计中存在改进的地方,提出了以后升级需要
完善之处。

第二章系统方案设计

2.1智能垃圾箱总体设计
  在本设计中,经过了第一章的分析,我们可以制定出一个设计方案。该该模块使用STC89C52 RC微控制器作为主
要控制器。一个感知垃圾的红外探测模块、一个评估容器中垃圾数量的距离测量模块和一个探测容器中气味气体浓
度的气味探测模块被用来实现自动开盖和关闭功能。三个主要模块用于将检测到的信号传输给微控制器,微控制器
对这些信号进行处理,然后将其发送出去。来自红外传感器模块的处理后的信号被传送到电机驱动模块,该模块执
行开盖和关盖的功能;显示模块和报警模块接收处理后的距离测量信号和气味浓度信号,设计中的所有软件功能代
码都是都需要烧入到单片机中。功能代码使用的C编程语言进行编写,智能医疗垃圾箱的控制系统主要由嵌入式控制
器、光电模块1、光电模块2、舵机、气味传感器模块、蜂鸣器模块、LED灯模块等组成。系统总体框图如图2.1所
示。
图2.1 系统总体框图
在这里插入图片描述

本设计的其基本工作原理是:光电模块采集是否有人要扔垃圾的数据信息,光电模块用来采集是否垃圾箱满的
数据信息,气味传感器采集是否需要消毒的信息,舵机模块是用来进行进行自动开关垃圾箱的盖子的工作,减少不
必要的接触,蜂鸣器是用来对垃圾箱满的提示,led模块是在垃圾箱需要消毒的时候,进行提示的。
2.2系统相关技术介绍
  本次设计中,运用了光电传感器,它被广泛的用于许多不同的应用。光电传感器由三部分组成:一个发射器、
一个接收器和一个检测电路。其工作原理的实质,是将电信号转化为光信号,再将光信号转化为电信号,从传感器
来看,首先将电信号转化为光信号,是由发射器产生一个强烈的红外信号,然后经过物体的反射,再由我们的接收
器接收反射回来的光信号,再由接收器产生一个微弱的电信号,然后再通过检测电路,对信号进行处理,从而将信
号传输给了单片机。光电传感器的光电二极管和普通二极管的外形相比差异不大,只是其表面外壳上有一个吸光的
玻璃窗口,其作用是用来吸收光线,为了增加受光面积,PN结的面积会稍微大一点,光电二极管在反偏压下工作,
与一个负载电阻串联,当没有光辐射时,它的反向电流会很小,这就是光电二极管的暗电流;在光辐射下,载流子
受到激发,形成了电子-空穴,就产生了电流,如果想要把电流转换成电压的话,我们只需要加一个电阻,通过欧姆
定律,电压就是等于电流乘以电阻。舵机的话,本次设计使用开关盖子的驱动方式使用的为舵机,用的舵机型号为
SG90,SG90舵机为模拟型舵机,它可以转动的角度为0-180°,实际上,舵机本身是一个伺服电机,舵机为控制系统
的位置(角度)伺服机提供驱动力,连续不断地改变角度。想要其转到指定的角度的信号用的是PWM信号,PWM信号:
PWM(脉冲宽度调制)是通过微处理器的数字输出来实现对模拟电路进行控制的一种非常有效的技术。那么什么叫PWM
信号呢,笔者就简单的说一说,大家都知道,我们所使用的单片机都是数字电路,它的I/O口只有两种状态,一个是高电
平(1),另一个是低电平(0)。了解到这一点以后,我们再通过控制微处理器输出1-0-1-0-1-0-1-0如此循环反复,PWM
就是占空比:高电平(或者低电平)占整个周期的时间就叫作占空比,如图.就是PWM信号。
  智能医疗垃圾箱的自动开关盖:当人在经光电模块检在拟定距离内,主控模块传给舵机,给舵机指定频率的PWM
信号,使其转到90度,舵机控制推杆,将垃圾箱的盖子推开。开盖后在大约11s左右的时间,光电传感器检测到没有
人,没有触发,然后就将舵机转动到0度,舵机控制推杆使垃圾桶盖闭合,
  智能医疗垃圾箱的气味检测:当气味传感器模块检测到有一味的时候,气味传感器会产生有效信号,传递给主
控模块,主控模块传给led,表示需要进行清理垃圾以及消毒处理,设计中使用的气味传感器是MQ系列传感器。在MQ
气体传感器中使用的气体敏感材料是二氧化锡(SnO),它在清洁空气中具有低导电性。当传感器处于可燃气体的存
在下时,传感器的电导率会随着可燃气体浓度的增加而增加。MQ-气体传感器对液化气体、丙烷和氢气高度敏感,是
检测天然气和其他可燃蒸汽的理想选择。由于能够测量广泛的可燃气体,这种传感器是一种低成本的设备,适用于
许多应用。在本次设计中,用这款传感器来进行演示。如图2.4所示为气味传感器部分实物图。
图2.4 气味传感器部分实物图
在这里插入图片描述

在本次的设计中,有两处使用了光电传感器,一处是在自动开盖,检测有没有手势的地方使用了光电传感器,
另一处是在垃圾箱的盖子上,用来对垃圾的高度进行检测,当光电传感器检测到与垃圾的距离小于我们设定的值
时,它就会被激活。
  在智能医疗垃圾箱的溢满检测:当光电模块检物体的距离小于设定值时,光电传感器会产生有效信号,传递给
主控模块,主控模块给到蜂鸣器,使其蜂鸣,提示需要进行垃圾箱的倾倒排空操作,如图2.5所示为光电传感器部分
实物图。
图2.5 光电传感器部分实物图
在这里插入图片描述

第三章垃圾箱硬件组成

该课题中的硬件设计运用了模块化思想,每个模块都是单独设计的,最后进行整合。这种设计的目的是为了减
少每个模块的影响,并促进模块之间的合作。以下是每个模块的描述。
3.1 总原理图
  本系统以STC89C52RC单片机为核心,STC89C52RC采用Flash存储器技术,具有较低的生产成本,同时由于其体积
小、性能稳定等优点,因此非常适用于各种嵌入式控制领域的研究。设计中的电源开关采用的是自锁开关,复位电
路中的电容用的是10uf,配系统的电阻是10k,在未按下复位按键的时候,reset的引脚为低电平,当按下复位按键的
时候,reset引脚为高电平,晶振使用的是11.059MHz的晶振,电容采用的是30pf的电容,也有蜂鸣器电路,两个光电
模块,以及舵机模块和MQ2气味传感器模块,以及LED指示灯模块。总原理如图3.1所示。在这里插入图片描述
在这里插入图片描述

图3.1 系统总原理图

3.2 单片机最小系统
  单片机最小系统包括主芯片,复位电路和晶振脉冲产生电路。Y1是一个与30Pf电容并联的11.0592MHz晶体,它
在微控制器的 "心跳 "中产生一个持续时间约为1us的脉冲信号。复位电路是上电时的自动复位电路,它是由一个与
10uf电容并联的开关组成,当RST连接器为高电平时,可清除微控制器。RN1为排阻,作为P0端的上拉电阻,接此原
因是P0端口是由OC门组成,其中SW1为系统的电源开关,D2为电源指示灯,单片机的系统原理图如图3.2所示。
图3.2 单片机系统图
在这里插入图片描述

3.3 光电模块电路图
  为了实现监测垃圾箱中的垃圾高度,以及对需要自动打开垃圾箱盖的操作,本设计采用不规则反射型光电传感
器。其测量的原理都是三角测量原理。当红外光以一定的角度发射红外光束的时侯,当接收到物体信号时,光束会
被反射回来,如图3.3所示。 反射的红外光被CCD检测到,并给出一个位移值L。利用三角关系,发射角度a、激发距
离L、中心距离X和滤光片的焦距F是已知的情况下,传感器的距离D就可以很轻松的计算出来了。
  可以看到,当D距离够近的生活,L的值会很大,就是由于这个点,我们就会得出来一个结论,就是这种传感器
的缺点就是检测的最小距离太大。但是超声波传感器的测量距离不能太远,如果测量的距离是3米,那么无论声波是
否被发出,都可以被送回来。3*/340已经超过了10毫秒,再远的距离将无法测量,声波都穿不回来了,还有一种情
况就是,如果远端,是个非平面,比如说是个45°的斜面,那么,我们就能想象到,声波打到平面之后,然后反射
到另一个边的场景。但是相对于超声波雷达传感器来说,有个很好的优点,就是检测速度很快。还有一个优点就是
一致性非常好,还有一个要点,就是和超声波传感器相比,不会受声音的速度和风向的影响,不用考虑被吸引面给吸
收。 超声波传感器通常有较短的工作距离,一般有效检测范围在5-10米之间。然而,有一个最小的探测距离,通常
是几十毫米左右。由于声波的特性,超声波传感器会受到更大的环境干扰。
  它的发射器对准目标不断地发射红外线光束,测量的精度高,距离远,一般不会被吸收。抗干扰能力强。没有
像超声波传感器的波束角,接收器将探测器反射的光束转化为电流,并将其送至设备后面的集成电路,由内部电路
处理完成后,然后由放大器放大并输出。这是一个光电传感器,既能传输也能接收光信息。本设计中使用的光电传
感器的电路图如图3.5所示。
图3.5 光电模块电路图
在这里插入图片描述

3.4 气味模块电路图
  该设计使用一种含有气体敏感物质二氧化锡(SnO2)的气味传感器。它在纯空气中的导电能力很差。在有可燃
气体存在的情况下,传感器的电导率随着气体浓度的增加而增加,同时,传感器的导电能力也因气体浓度的升高而
增强。传感器的电导率的变化可以通过一个简单的电路转换成对应于该气体浓度的输出信号如图3.6所示为本设计中
的引脚图。
MQ-2烟雾传感器模块特点:
•具有信号输出指示。
•双路信号输出(模拟量输出及TTL电平输出)。
•TTL输出有效信号为低电平。(指示灯在输出信号电平低时亮起,可直接连接到单片机)。
•模拟量输出0~5V电压,浓度越高电压越高。
•对石油气、天然气、城市煤气有良好的敏感性。
•结果受温湿度影响。
  MQ-2气体传感器适用于家庭和工业应用中的泄漏检测,适用于液化气、丁烷、丙烷、甲烷、酒精、氢气、烟雾
等的检测,也适用于天然气及其他可燃气体的检测。该传感器具有测量各种可燃气体的功能,是一种适合多种应用
的低成本传感器。
3.5 舵机部分电路图
  本次设计中使用的舵机型号为SG90,伺服机有一个内部参考电压,由微处理器产生一个PWM信号,然后通过信号
线送入伺服机,产生一个直流偏置电压,与伺服机的内部参考电压比较,在输出端产生一个电压差。电压差的正负
显示在电机驱动芯片上,它决定了正向和反向旋转。当伺服机开始旋转时,电位器由伺服机内部的级联减速齿轮驱
动,使电压差重置为零,电机停止,因为伺服机本身有一个驱动电路,所以不需要特殊的驱动电路,通常由单片机
IO端口输出的PWM波都可以驱动舵机

这该舵机通常采用 PWM方式进行控制,其控制脉冲周期通常为0毫秒,并且转向角也有一定的幅度(不能像普通
的马达那样一圈圈地转动),90°的舵机的最大转角是90度。舵机的旋转角是根据脉宽确定的,在1.5 ms的脉宽下,
舵机的转动方向被定义为一个中间位置(也就是,从这个位置到最大的转角和最小的转角的角度一致),其中,逆
时针为反转,顺时针为正转,如果要将舵轮的转轴从中间的位置反转一定角度,那么,控制脉宽就会小于1.5 ms,反
之,则控制脉冲脉宽大于1.5ms。当数字舵机接收到脉宽调制信号(目的地位置信号)时,数字舵机可以被自动旋转
到该位置,而模拟舵机则必须反复地发出相同的脉宽调制信号,直至被旋转到该位置,之后还需持续发送该脉宽调制
信号来进行位置锁定。如图3.96所示为舵机PWM控制脉冲与转角之间的关系图。

3.6 蜂鸣器部分电路图
  本设计中的蜂鸣器是在垃圾箱满的时候,进行蜂鸣报警提示需要进行垃圾的倾倒清理工作。对于蜂鸣器来说,
一般我们会根据蜂鸣器的驱动方式分为两种,一种是有源蜂鸣器,另外一种为无源蜂鸣器。这里所说的“源”,说
的是激励源。无源的蜂鸣器其内部不具备激励源,若想让其进行发声,只有给它一定频率的方波信号,才能让其起
振,发声。有源的其内部有激励源,我们就只需要让其通过直流电即可发声。
3.7 LED部分电路图
  在本设计中,有一个功能就是在垃圾箱的内部,有异味的时候,进行垃圾箱的清理,消毒工作,在本设计中,
使用了一个LED灯模块,进行了表示,在没有异味的状态下,LED灯处于熄灭的状态,当垃圾箱内的气味超过我们的
设定值的时候,LED灯模块亮起如图3.11所示为LED模块电路图。
图3.11 LED电路图
在这里插入图片描述

第四章垃圾箱软件设计

4.1 软件流程图
  程序的主流程图如图4.1所示,程序开始后,先是进行初始化,对蜂鸣器进行关闭,对舵机的状态进行初始化,
使其进入关闭盖子的状态,然后就是对手势的检测,如果检测到有人,就操作舵机,让其进行打开垃圾箱盖子的状
态,若是没有检测到手势,就执行关闭盖子的操作,然后就是对垃圾箱的溢满进行检测,如果检测到垃圾箱溢满的
光电模块输出有效的信号,则打开蜂鸣器进行提示,提示需要对垃圾箱进行垃圾的倾倒工作,如果没有检测到垃圾
箱溢满的检测,就关闭蜂鸣器,无需进行操作,然后就是对异味的检测,气味传感器如果检测到了气味,就会输出
气味有效信息,然后就打开LED灯提示需要进行消毒提示,如果没有检测到异味,则无需进行处理。
图4.1 程序的主流程图
在这里插入图片描述

4.2 主程序
  蜂鸣器的定义为BEEP,当电平为0的时候,就是代表蜂鸣器关闭,OPEN_TEST为手势感应光电传感器,当其等于0
为触发状态,FULL_TEST为溢满检测传感器,同样为0为溢满状态,SMELL为气味传感器,低电平即为0,则表示检测
到气味,DISINFECT表示消毒的LED提示灯,为0表示需要进行消毒处理。
  进入主程序之后,首先是对蜂鸣器的关闭,然后将垃圾箱的盖子初始话,使其进入关闭盖子的状态,然后就进
入了循环中,然后就是各个功能模块的实现,本设计中的主程序如图4.2所示。
图4.2 主程序代码截图
在这里插入图片描述

4.3 舵机驱动部分程序
  本设计中的舵机需要不断的发送目的地PWM信号,才能旋转到指定位置,舵机的控制,需要一个20ms的时基脉
冲,控制高电平时间为0.5ms2.5ms范围内即可控制舵机在0180°转动。我理解的时间与角度的换算关系为:
高电平时间=0.5ms+(角度/180°)*2ms
t=0.5ms---------------舵机转动到0°
t=1.0ms---------------舵机转动到45°
t=1.5ms---------------舵机转动到90°
t=2.0ms---------------舵机转动到135°
t=2.5ms---------------舵机转动到180°
其转动到指定角度的代码如图4.3所示。
图4.3 舵机指定角度代码截图
在这里插入图片描述

有了上边说的转到指定角度的程序,我们还需要有一个使舵机运行到我们想要的角度的程序,如图4.4所示为舵
机运行到指定位置的执行程序代码截图。当我们需要打开盖子,和关闭盖子的操作的时候,只需要将我们需要的状
态,放到输入形参的位置即可。

4.4 自动开盖处理程序
  当光电传感器检测到需要打开盖子的手势时,if的判定条件就符合,然后就执行一下的函数,首先进入的前两
条的命令为打开垃圾箱盖子的操作指令,然后我们进行短暂的延时,延时的时间约为11秒,然后下面的两条命令为
操作舵机,使其关闭盖子,自动开盖的处理程序
4.5 垃圾溢满处理程序
  当处于垃圾箱盖子上的光电传感器检测垃圾的距离太近,将要溢满的时候,我们就会检测到传感器传来的溢满
状态信息,提醒我们进行垃圾的清理工作。在本次的设计中我们的溢满检测传感器还是用的红外光电传感器,这个
传感器我们本次的应用采用的数字的方式进行的设计,我们通过调节传感器上的电位器,对传感器的检测范围进行了
调节,调整后的传感器的触发范围调节在5cm左右的位置,当智能医用垃圾箱内的垃圾高度到达红外光电传感器的检
测范围的时候,此时单片机对对应的IO进行检测,若为低电平,则为触发状态,此时我们将蜂鸣器进行蜂鸣。使用
者在操作的时候,只需要看蜂鸣器不响就可以,在蜂鸣器蜂鸣的状态下,就提示使用者需要对只能垃圾箱进行处
理,当处理完成之后,传感器停止触发,此时IO的电平就是搞电平,蜂鸣器就停止进行蜂鸣。如图4.6所示为垃圾溢
满处理程序截图。
图4.6 垃圾溢满处理程序截图
在这里插入图片描述

4.6 气味处理程序
  当处于垃圾箱内部的气味传感器检测垃圾的有异味,会产生气味有效的信息到单片机,我们就会检测到传感器
传来的气味状态信息,提醒我们进行垃圾的消毒处理工作。我们本次设计中,采用的气体传感器为MQ2传感器进行的
替代,这款传感器的触发我们采用的数字触发的检测方式,进行的检测,当其触发状态下,电平的输出为低电平,
此时我们就对其检测,当我们在单片机中,检测到气体传感器的对应数据引脚电平为低的时候,将蜂鸣器进行蜂
鸣,将LED指示灯进行亮起,用来提示我们需要进行消毒提示。在实际的使用的时候,我们只需在其进行工作的时
候,我们需要对其进行供电,当其检测到其提示方式为LED指示灯提示,并且辅以蜂鸣器提示的方式,此时的我们就
需要对垃圾消毒处理。如图4.7所示为垃圾消毒提示程序截图。
图4.7 垃圾消毒提示程序截图
在这里插入图片描述

附录
/*函数:main.c*/
#include <reg52.h>
sbit PWM=P2^2 ; //定义给舵机信号线接的I/O口
sbit FULL_TEST=P2^0; //定义满检测红外传感器---检测垃圾是否已经满了
sbit OPEN_TEST=P2^1; //定义手势感应红外传感器---是否有人要扔垃圾
sbit BEEP=P2^4; //定义蜂鸣器引脚
sbit SMELL=P2^3; //定义气味(气体)检测传感器
sbit DISINFECT=P2^5; //消毒 =0,消毒 =1 不用消毒
  unsigned char Flag_Steering = 0; //舵机运行标志位,=0关闭状态 =1打开状态 
unsigned int count;
void Delay(unsigned char i) //12MHz 延时函数 
{
unsigned char a,b; //该段延时函数Delay(1)=0.5ms
for(;i>0;i--)
for(b=71;b>0;b--)
for(a=2;a>0;a--);
}
void Delay_L(unsigned char iii) //12MHz 延时函数 
{
for(;iii>0;iii--)
Delay(0xff);
}
  /****************************************************************
  总周期20ms通过调节占空比实现舵机需要转动的角度舵机代码用定时器控制更方便稳定,本文方便读者了解使
19
用,使用延时计算其功能可正常使用
  *****************************************************************/
void zero(void) //0度 子程序
{
PWM=1;
   Delay(1); //高电平 Delay(1)=0.5ms。因为周期为20ms,所以低电平就是19.5ms
PWM=0;
Delay(39); //低电平 Delay(39)=19.5ms
}
void one(void) //45度 子程序
{
PWM=1;
Delay(2); //高电平 Delay(2)=1ms
PWM=0;
Delay(38); //低电平 Delay(38)=19ms
}
void two(void) //90度 子程序
{
PWM=1;
Delay(3); //高电平 Delay(3)=1.5ms
PWM=0;
Delay(37); //低电平 18.5ms
}
void three(void) //135度 子程序
{
PWM=1;
Delay(4); //高电平 Delay(4)=2ms
PWM=0;
Delay(36); //低电平 18ms
}
void four(void) //180度 子程序
{
PWM=1;
Delay(5); //高电平 Delay(5)=2.5ms
PWM=0;
Delay(35); //低电平 17.5ms
}
  void Steering_Engine_Run(unsigned char status) //舵机运行到指定的程序 
{
switch(status)
{
case 0: //
for(count=0;count<20;count++)
zero();
break;
case 1:
for(count=0;count<20;count++)
20
one();
break;
case 2:
for(count=0;count<20;count++)
two();
break;
case 3:
for(count=0;count<20;count++)
three();
break;
case 4:
for(count=0;count<20;count++)
four();
break;
default:
break;
}
}
void main() //主程序
{ 
BEEP=0;
Steering_Engine_Run(2);//关闭垃圾桶盖
Delay(10000);
while(1)
{
if(OPEN_TEST==0)//检测到手势,打开垃圾桶盖
{
Flag_Steering = 0;
   Steering_Engine_Run(Flag_Steering); //垃圾桶盖子开合状态执行
Delay_L(70);
Flag_Steering = 2;
   Steering_Engine_Run(Flag_Steering); //垃圾桶盖子开合状态执行
}
if(FULL_TEST==0)//检测到垃圾桶满了,提醒清理垃圾
{
BEEP = 1;
Delay_L(3);
BEEP = 0;
Delay_L(3);
BEEP = 1;
Delay_L(3);
BEEP = 0;
Delay_L(3);
BEEP = 1;
Delay_L(3);
BEEP = 0;
Delay_L(3);
21
}
if(SMELL==0)//检测到气味,提醒消毒处理
{
DISINFECT = 0; //消毒LED灯 =0消毒 =1不用消毒
BEEP = 1;
Delay_L(9);
BEEP = 0;
Delay_L(9);
BEEP = 1;
Delay_L(9);
BEEP = 0;
Delay_L(9);
BEEP = 1;
Delay_L(9);
BEEP = 0;
Delay_L(9);
}
else if(SMELL==1)//检测不到气味,不提醒消毒处理
{
DISINFECT = 1; //消毒LED灯 =0消毒 =1不用消毒
}
}
}
//end 

第五章系统测试及总结

5.1 总体模块测试
  本文按照上述组装智能垃圾箱,首先对设备进行上电测试,将我们设计的智能医用垃圾箱线插好,另一端接入
到充电宝,此时的现象为单片机上电后,单片机上的PWR灯亮起,证明已经接入电源,其他的模块上电后电源指示灯
亮起,此项验证完成,设备工作正常。
  然后我们对自动开关垃圾箱盖子的功能进行验证,当人在红外感应范围内时,传感器的触发指示灯亮起,然后
智能医用垃圾箱的盖子自动打开,这个时候我们将垃圾投入,然后走出传感器的感应范围,在打开盖子11s左右的时
候,垃圾箱盖子自动关上,此项功能验证完成,功能正常。
  我们对垃圾箱的溢满检测功能进行验证,当我们重复的投入几次垃圾,然后当投入的垃圾高度,到达了垃圾箱
内部的红外光电传感器的检测范围的时候,此时垃圾箱的蜂鸣器会产生蜂鸣,进行提示我们需要对垃圾箱进行倾倒
垃圾的处理,此时我们处理垃圾,将垃圾箱的垃圾进行倾倒,当降到传感器的检测范围之后,蜂鸣器停止蜂鸣,此
项功能验证完成,功能正常。
  我们对智能医用垃圾箱的异味消毒提示功能进行验证,当我们向垃圾箱内的气味传感器使用打火机的液化气进
行少量泵入,此时气味传感器的触发指示灯亮起,此时气味传感器触发,此时,垃圾箱的消毒提示LED灯亮起,同时
蜂鸣器也蜂鸣,当煽动新鲜的气体,此时气味传感器检测不液化气的时候,气味传感器停止触发,此时垃圾箱的消
毒提示LED灯熄灭,同时蜂鸣器也停止蜂鸣,此项功能验证完成,功能正常。
  智能垃圾箱设计原理正确。现场调试测试验证了智能垃圾箱的各项功能,均能实现我们预设的功能。如图5.1所
示为垃圾箱的实物图。
图5.1 垃圾箱的实物图
在这里插入图片描述

5.2 性能分析
  在本次的设计中,在自动开关垃圾箱盖子方面,自动开盖的响应速度适中,但是在打开盖子的过程中,动作比
较僵硬,需要在机械设计上面进行改进。
在本次的设计中,在溢满检测方面。灵敏度较好,在产品中我们可以对传感器的检测范围进行调节,检测的距离我
们设定在了5CM。
  在本次的设计中,在异味消毒提示方面。由于现实演示的时候,腐烂发臭的物体不干净,我们就采用了MQ2传感
器进行了替代,这是一个强大的气体传感器适用于感测LPG,烟雾,酒精,丙烷,氢气,甲烷和碳一氧化碳在空气中
的浓度,我们在验证中,只需要一个打火机,并且不需要大量的气体,就可以传感器进行触发检测,在垃圾箱的反
应状态,我们还是比较灵敏的。
整体的设计中,还是处于一个实验阶段。实际的产品投入应用中,还需要进行一些改进。

第六章系统测试及总结

6.1论文总结
  本课题从环保、廉价、方便、智能的角度出发,以STC89C52RC单片机为控制核心,结合光电传感器、气味传感
器、舵机、蜂鸣器等,设计了一款智能医用垃圾箱,在本次的课题设计中,实现垃圾箱自动开盖、垃圾满溢检测以
及异味检测提示等功能。整个设计过程简单,功能可靠,价格客观,可广泛的用于家庭、办公、医院等场所,具有
一定的实用价值。
  设计中很好的使软、硬件相结合,尽管存在着一些问题,但是产品已经基本满足了设计的需求。在设计过程
中,通过参考资料,认真阅读相关书籍,并向导师提出许多问题,我知道我的毕业设计还不够完善,还有一些缺
陷,但在这个过程中,我对单片机有了更深的了解,在制作软件的时候,我会仔细的分析电路,绘制流程图,培养
了我的耐性和刻苦专研的精神。
6.2展望
  通过此次智医用能垃圾箱的设计,我收获颇丰。设计的核心内容就是利用单片机STC89C52RC的编程来实现控制
外围各电路的运行。通过这次设计,本人对程序控制系统的总体设计过程有了较好的了解,并在程序编制方面也有
了很大的进步。但是对于本次的设计,其中还有很多的不足之处,需要进行解决,在本次的设计中,由于时间比较
紧迫,在设计中很多都是采用了点到为止的方式进行的设计,比如说,在本次的设计中,电源的设计部分还需要进
行完善,如果能够设计上充放电系统电路,将极大的提高设计的科学性,以及实用性,而本次设计采用的是外接充
电宝的方式进行的供电,在实际的应用中应该采用嵌入式的方式,将电源部分与结构进行结合,说到这里,本次设
计采用的垃圾箱采用的箱体为牛奶壳子,虽说环保,但是实际生活应用中的箱体材料不可能是这种材料的,若想对
这个设计进行深入的研究,就需要对进行3D打印的设计,设计一款壳体,并对使用的材料进行分析,设计中就需要
对传感器进行内嵌设计,并且对传感器进行优化,不能使用传感器模块,因为传感器模块的体积太大,我们应该对
传感器的选型重新进行规划,并且对气味传感器的类型进行优化,使垃圾箱的功能更加的完善。
  我非常感激学校给予我们这个机会,让我们在实际操作和使用专业软件方面有很大的提高。通过这次课设,我
深刻地认识到了理论和实践的区别,也让我意识到了自己在数电方面的不足,需要好好学习。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值