基于51单片机的智能温控风扇设计说明书
基于51单片机的智能温控风扇设计说明书,基于,51,单片机,智能,温控,风扇,设计,说明书,仿单
附件6 中期报告(学生用表)系(部): 专业: 班级: 学生姓名 学号 指导教师 课题名称基于51单片机的智能温控风扇设计自上交开题报告之后,针对毕业设计所要研究的内容,展开了一系列的具体工作,具体工作如下:首先,查找与论文所研究的内容相关的期刊、文章或者其他前人所做的设计。在图书馆中翻阅了一部分书籍,还有一些所需的资料图书馆没有收藏,所以就在学校官网的电子图书馆查阅期刊,了解了单片机的种类和应用,掌握了单片机的工作原理,理清了我的设计方案和技术路线。目前已经完成的工作有:查找、阅读相关文献,明确思路;各个单元模块的设计及硬件选型;系统原理图的绘制及系统图的搭建;完成了部分软件程序的编写。目前我存在的问题是1. 在电路设计方面还存在一定的欠缺;2. 在软件和编程方面还存在一些不足;3. 在电路的接入和调试方面不熟练;4. 论文各部分之间的衔接不够强,有的地方缺少逻辑性;解决方案:我将去图书馆查找有关的专业书籍或者学校的电子图书馆,找到与该论文有关的资料,借鉴和提升自己的能力,我会查找上学期老师讲过的课本,重新找到我设计的智能温控风扇的有关知识;最后熟悉边缘知识,做到细心、耐心,算对每一个关键数据,对于写作过程中遇到的具体难题要多向指导老师请求援助。 下一步主要是弄清楚我的智能温控风扇设计的软件设计的准确和硬件设计的合理,他是如何实现我预想的工作流程,通过上学期学习的单片机原理及应用和可编程控制原理与应用技术,设计出控制系统,再进行硬件的调试,对已完成的论文修改稿进行多次审阅,从内容、结构、用语及格式等方面给予修改,在前人的研究成果上进行深度解读与分析,在这个基础上才能更好的完成该篇总结性论文。指导教师对前期工作的评价:指导教师签名:年 月 日注:1、本表可根据内容续页;2、指导教师评价及签名手写,其他内容电子版填写。附件3 任务书(指导教师用表)系(部): 专业: 班级: 学生姓名 指导教师姓名 论文(设计)题目基于51单片机的智能温控风扇设计下达任务日期 任务起止日期 主要研究内容及方法1、完成用单片机控制电风扇电机工作;2、利用单片机内部定时器实现电风扇定时时间的设定;3、完成以51单片机为控制核心,根据环境温度与设定温度的差值自动调整风扇电机的转速,同时在显示屏实时显示当前环境的温度值。主要任务及目标1、设计一个智能温控风扇系统,根据环境温度与设定温度的差值控制风扇的启动及转速;2、可以实时显示当前的温度值;3、配备一个红外探头,探测出风扇范围内是否有人,来控制风扇的启停。主要参考文献1邹于丰.基于AT89C51单片机的温控器系列J.电子世界,2011年,第五期.2张海龙.基于单片机的风扇控制系统J.网络与信息,2009年,第四期.3潘勇、孟庆斌.基于DS18B20的多点温度测量系统设计J.电子测量技术,2008(9).进度安排各阶段工作任务起止日期查阅文献,明确思路,制定设计方案,完成开题03.05-3.10硬件电路搭建,软件编程,完成初稿03.11-4.08系统调试或软件仿真,参加中期答辩04.09-4.15修改完善,完成论文终稿,制作出实物,准备答辩04.16-5.26任务下达人签名任务接收人签名教研室指导小组组长签名系部领导小组组长签名注:1、本表可根据内容续页; 2、本表一式两份,学生、系部存档各一份;3、签名需手写,其他内容电子版填写。附件7工作中期检查记录系(部): 专业: 班级: 姓名 学号 指导教师 检查主要内容自上交开题报告之后,针对毕业设计所要研究的内容,展开了一系列的具体工作,具体工作如下:首先,查找与论文所研究的内容相关的期刊、文章或者其他前人所做的设计。在图书馆中翻阅了一部分书籍,还有一些所需的资料图书馆没有收藏,所以就在学校官网的电子图书馆查阅期刊,了解了51单片机的种类和应用,也清楚了设计路线。现在已经进入毕业设计的中期,目前已经完成的工作有:查找与论文相关的文献;各个单元模块硬件的选取;各部分电路的设计;软件的设计;硬件的调试。指导教师是否到位,有无指导记录,记录情况如何等。指导教师每个星期有固定的时间和学生见面交流,进行指导,检查设计完成的情况,并提出自己的建议,解决在设计过程当中遇到的各种问题和不足,平时也会用微信联系,解决学生设计中的问题,并作记录。目前存在的问题是1. 在电路设计方面还存在一定的欠缺;2. 在软件和编程方面还存在一些不足;3. 在电路的接入和调试方面不熟练;4. 论文各部分之间的衔接不够强,有的地方缺少逻辑性;解决方案:将去图书馆查找有关的专业书籍或者学校的电子图书馆,找到与该论文有关的资料,借鉴和提升自己的能力,查找上学期老师讲过的课本,重新找到设计的智能温控风扇的有关知识;最后熟悉边缘知识,做到细心、耐心,算对每一个关键数据,对于写作过程中遇到的具体难题要多向指导老师请求援助。毕业论文(设计)工作领导小组意见组长签名:年 月 日注:1、本表可根据内容续页;2、领导小组意见手写,其他内容电子版填写。附件5开题报告(学生用表)系(部): 专业: 班级: 课题名称基于51单片机的智能温控风扇设计指导教师 学生 学号 1、 课题的来源及意义电扇是人们日常生活中常用的降温工具,从开始的吊扇到现在的USB风扇,无处不见电扇的踪迹。虽然如今空调已经走进千家万户,但是电扇的地位还是无可取代,作为一种节能环保,并且廉价简单的降温工具,电扇在很多人家中依旧发挥着自己独特的作用。为了顺应时代潮流,各种多功能的风扇逐渐在取代传统风扇。单片机作为一种智能化程度高,控制精度高,操作简单,廉价易得,抗干扰能力强等特点的产品,越来越多的应用于智能化产品之中。市场上智能风扇产品相继问世,制作方法也多种多样,功能也逐渐完善,普遍都具有了手动变速和定时关闭等功能,相对而言,具备人性化,智能化的风扇还是很少,使用也并不广泛,而且在电子工艺高度发展的今天,智能化的步伐也越来越快,尤其是在中国这个高速发展的国家,电扇的智能化也该向前迈进一个步伐。在现阶段,温控风扇的研究已经具有一定的规模了,传统电风扇具有以下缺点:风扇不能随着环境温度的变化自动调节风速,这对那些昼夜温差大的地区是致命的缺点,尤其是人们在熟睡时,不但浪费资源,还很容易使人感冒生病;传统电风扇机械的定时方式常常会伴随着机械运动的声音,特别是夜间影响人们的睡眠,而且定时范围有限,不能满足人们的需求。鉴于这些缺点,我们需要设计一款智能的电风扇温度控制系统来解决。温控风扇系统,是根据当时温度情况去自动开通和关闭电风扇,能很好的节约电能,同时也方便用户们的使用,更具人性化。而且温控风扇系统在工业生产、日常生活中都有广泛的应用,如在工业生产中大型机械设备的散热系统,或限制笔记本电脑上的智能CPU风扇等,基于单片机的温控风扇都能够根据环境温度的高低自动启动或停止转动,并能够根据温度的变化实现转速的自动调节,在现实生活中具非常广泛的用途,因此它的设计具有一定的价值意义。2、 国内外发展状况及研究背景目前,温控风扇的设计已经有了一定的成效,可以使风扇根据环境温度的变化进行自动无级调速,当温度升高到一定时能自动启动风扇,当温度降到一定时能自动停止风扇的转动,实现智能控制,如现在笔记本电脑中广泛应用的智能CPU风扇。还可通过无线通信,实现远程控制。温控风扇已广泛用于工业控制和生产生活中。 随着技术的进步,温控风扇将会得到进一步的发展,不断提高其智能控制的精确度,不断的降低其运转的噪音,甚至实现零噪声,不断的降低功耗以节能,以及充分提高其集成度使其嵌入到更多的机械设备中将是其发展的趋势。而本设计基于对人性化与智能化相结合的考虑,同时基于对价格的考虑,决定制作一个基于51单片机的智能温控风扇,该风扇具有随温度自动调节风速的功能,并且在无人时可以自动关闭,而且可以根据每个人的不同情况来设定基准温度,从而实现了人性化与智能化的双重目标。三、研究目标及内容1、设计目标:利用温度传感器DS18B20来检测当前环境温度,并直接输出数字温度信号给51单片机,实时温度显示在数码管上。将检测到的温度转化为数字信号,单片机对输入的数字信号进行分析处理,当感应到人体温度高于上限值时,风扇全速旋转;当温度低于下限时,风扇停转;当温度处于上限值与下限之间时,风扇转速越慢,当人走30秒后自动关闭风扇。设置温度辅以3个可调按键,一个设置键,一个提高设置温度,一个降低设置温度,设置温度的精准度能达到小数型式,检测到的环境温度也可以精确到小数点后一位。本系统还配备一个红外探头,探测出风扇范围内是否有人,若无人则不会开启或自动关闭风扇。系统的组成框图如图1所示。按键电路温度传感器人体感应模块AT89C51单片机驱动风扇温度显示图1 系统组成框图本设计主要分为硬件部分的设计、软件部分的设计以及系统调试。(1) 硬件设计:完成系统的硬件电路设计及系统原理图(2) 软件设计:用单片机C51语言进行编程,采用Keil Software公司的软件Keil uVision2进行程序的编辑调试。(3) 系统调试:软件调试部分分别进行按键显示部分的调试、传感器DS18B20温度采集的调试以及电动机调速部分的调试。硬件调试同样也分别进行按键显示部分的调试、传感器DS18B20温度采集的调试以及电动机调速部分的调试。四、本课题研究方法及进度安排研究方法:在合理的理论分析的基础上,设计出各个模块电路,制作实物。进度安排:2018年3月05日3月10日:选题、广泛收集整理资料、撰写开题报告,并完成总体方案设计,请导师检查开题报告。 2018年3月11日4月08日:硬件电路搭建,软件编程,完成论文初稿,请导师批改并修改完善。 2018年4月09日4月15日:系统调试或软件仿真,参加中期答辩。 2018年4月16日5月18日:修改完善,完成论文终稿,制作出实物。2018年5月19日5月26日:论文终审答辩,最后修订毕业论文。5、 研究方案的可行性分析和已具备的研究条件1、控制器的选择课题的控制器核心是51单片机芯片,控制核心对设计起着举足轻重的作用,所以我在以下两种方案中选择:(1) AT89C51单片机的指令简单,易学易懂,外围电路简单,硬件设计方便,io口操作简单,无方向寄存器,资源丰富,一般设计足够用了,价格便宜、容易购买,资料丰富容易查到,程序烧写简单,比较适用本设计。(2) AVR单片机技术体现了单片机集多种器件(包括FLASH程序存储器、看门狗、EEPROM、同/异步串行口、TWI、SPI、A/D模数转换器、定时器/计数器等)和多种功能(增强可靠性的复位系统、降低功耗抗干扰的休眠模式、品种多门类全的中断系统、具输入捕获和比较匹配输出等多样化功能的定时器/计数器、具替换功能的I/O端口)于一身,充分体现了单片机技术的从“片自为战向“片上系统SoC过渡的发展方向,但是指令系统复杂,位操作不方便。故排除次方案。2、温度传感器的选择要检测温度变化的方案有多种但是此设计对于温度变化有严格的要求,如果检测有较大的出入则次设计就失去了实际的“智能”功能,所以我们在下列两方案中选择: (1)要检测环境温度我们可以选择实验室最常见的热敏电阻,并通过运算放大器放大以得到的数据作为处理依据,原理:理工生应该很了解,热敏电阻的变化曲线是怎么样的,不是直线的,是曲线,不是一元一次方程,所以误差相当大,其中检测到的电压变化要通过模数装换变成数字信号,但是我们所得到数字信号比较弱,几乎很难识别,所要我们需要进行放大再处理一下然后传入芯片中。(2)我们所选的DS18B20在检测温度来说是相对有优越性的,虽然价格方面是贵一点,但是还是在接受范围内,在温度分辨率的误差方面是把热敏电阻甩出了九条街,在精细方面没有可比性,检测出的数字信号可以通过I/O口传给微处理器。方案(一)热敏电阻是我们在实验室就可以轻易找到的普通电器元件,很实用,很便宜,所以我们需要考虑的是它是否适合我们的设计,对于温度检测的灵敏率是否达到要求,经过实验验证热敏电阻对环境温度的测量,精细度方面很差,在某个范围内,误差极大,大家所知热敏电阻的“电阻时间”关系不是直线而是曲线,所以在微小的温度变化下有可能造成极大的误差,而且很难通过电路来调制,我们所在的环境温度变化不会很大在短时间内,故该排除本方案。方案(二)经过实验验证对比DS18B20代替热敏电阻作为温度检测器在一定的温度范围内有极大的优越性,极大的降低了误差DS18B20能更好的检测温度的变化率,因为其两者之间的检测原理有着本质的不同,DS18B20的温度分辨力很高,而且抗干扰能力极强,符合本设计的需求,而且价格在接受范围内。3、显示器的选择方案(一):采用LCD液晶显示屏显示温度。用LCD液晶显示屏显示温度,如果不考虑价格问题,对比方案(二)是更加美观而且方便的,但是实际问题是价格偏高,而且并不是有硬性需求,所以放弃此方案。方案(二):采用四位LED共阳极数码管显示温度。选用此方案即在意料之外又是合情合理,打动大家的说服力只有一个而已“便宜”在价格上两者之间相差极大,但是LED数码管在不考虑美观的前提下也能完成所需功能,所以LED数码管得到了很广泛的应用。当然这不是说它没缺点,如果如何优秀,LCD液晶显示屏也就没有存在的理由,其动态扫描的显示方法,由于人眼的视觉暂留时间为20MS,而且LED数码管是逐个点亮的,因此会产生闪烁,但是人眼无法分辨闪烁问题,因此只要描频率设置得当即可采用该方案。4、调速方式的选择 PWM可以说是一种对方脉冲宽度进行调制的技术,全名为脉冲宽度调制,利用微处理器对模拟电路可以对模拟电路进行控制。主要是用在测量或者通信等控制与变换的领域中。作为一种模拟控制方式,PWM调制,可根据相应的载荷变化做相应变化,来实现晶体管或MOS管导通时间的改变,让电源输出达到稳压状态,使电压保存稳定状态保证机器的工作状态,PWM是用微处理器对模拟电路进行控制的一种有效技术。PWM控制技术以其控制简单,最广泛应用的控制方式,也是人们研究的热点。6、 参考文献1邹于丰.基于AT89C51单片机的温控器系列J.电子世界,2011年,第五期.2张海龙.基于单片机的风扇控制系统J.网络与信息,2009年,第四期.3潘勇、孟庆斌.基于DS18B20的多点温度测量系统设计J.电子测量技术,2008(9).4李钢.赵彦峰.1-Wire总线数字温度传感器DSI8B20原理及应用J.现代电子技术,2005.2.5张毅刚.新编MCS-51单片机应用设计.哈尔滨工业大学出版社,2006,10.6胡汉才.单片机原理及其接口技术,清华大学出版社,2004.7王会明、侯加林.智能电风扇控制器的研制J,电子与自动化,1998,5.8梁廷贵、王裕琛.可控硅触发电路语音电路分册M.北京:科学技术文献出版社,2003.9陈富忠、翁杜琴.智能温控调速风扇的设计J.上海电机学院学报,2009(4)10韩志军.单片机系统设计与应用实例.机械工业出版社,2010,02.11肖洪兵. 跟我学用单片机. 北京:北京航空航天大学出版社,2002.8.12冯先成,单片机应用系统设计,北京航空大学出版社,2009.13李广第 单片机基础 第1版北京:北京航空航天大学出版社,1999. 14夏继强. 单片机实验与实践教程. 北京:北京航空航天大学出版社, 2001.指导教师意见:指导教师签名: 年 月 日注:1、本表可根据内容续页;2、指导教师意见及签名手写,其他内容电子版填写。附件4指导记录(指导教师用表)系(部): 专业: 班级: 姓名 学号 指导教师 职称/学位 毕业设计题目基于51单片机的智能温控风扇设计日 期指导内容存在问题指导学时数20180305首次小组指导,课题下达,指导老师根据实际情况安排毕业设计课题的分配,并详细介绍了设计中的注意事项,布置了开题报告不确定自己的实际情况,不好定题。2学时20180309指导老师检查每个同学的开题报告,指出各个同学的不足,提出修改意见。没有找到足够的参考资料,不足以定题。2学时20180316指导老师再此检查开题报告,确定无误以后,开始讲解设计章节安排,布置下一阶段的任务。思路不是很清晰。2学时20180320听取各个同学对自己课题设计思路的阐述,老师指出其中的不足之处并对每个同学的课题的重点进行详细解释.论文结构的一些细节问题不是很清楚。2学时20180323对各个同学目前主要设计的东西进行分析,让同学们有了清晰的思路。控制器的选择存在问题。2学时20180330主要对论文的结构进行指导,并对论文的格式进行说明。论文结构的一些细节问题不是很清楚。2学时20180406指导学生完成论文的初稿,并说明接下来论文完成方向。论文初稿方向不明确,各章节内容过乱2学时20180413指导学生论文初稿的批改,包括内容是否与论点和论题相关,论点的阐述是否完整等,指导学生文章中逻辑混乱的地方。论文中逻辑有混乱的地方2学时20180420检查学生论文初稿的修改情况。论文中有常见的语法错误2学时20180425指导学生进行毕业论文中期检查,并完成论文第二稿的批阅和修改。主要指导学生第一稿中尚未修改的遗留问题。论文中的格式有些和要求不符,需要进一步修改2学时20180428查看学生完成论文情况,定下论文的终稿。写论文当中出现瓶颈,思路紊乱2学时20180504查看论文的查重情况。论文的查重过高2学时20180511指导完成论文终稿的降重问题,并解决学生提出的问题。论文的重复率降不下去2学时20180518指导论文中遗留的问题,进一步审查了论文中的细节部分,包括字体大小,文章编排等扫尾工作。经过几次修改,论文准备完善。需要进一步准备答辩事宜2学时20180522查看学生的实物,确保答辩过程中不出现重大问题。实物焊接不美观,要完善硬件布局2学时20180525告诉学生论文答辩中的注意事项,调整好学生的心态。有关答辩的一些问题不明白2学时注:本表可续页,由指导教师根据毕业设计指导工作方案和实际指导情况填写(可电子版填写)。基于51单片机的智能温控风扇设计摘 要本次设计的单片机系统是基于单片机的智能温控风扇设计。使用的控制芯片是AT89C51单片机,用数字温度传感器DS18B20检测环境温度的变化,并通过数码管显示出来,通过小电流的单片机控制大电流的电风扇电机工作,利用单片机内部定时器实现电风扇定时时间的设定。本套系统的软件程序主要是通过实时温度与设定的温度上下限值进行比较后,控制电风扇启停、强弱挡,最终使环境维持让人舒适的温度。用户可以根据自身需求自行设定温度上下限值、电风扇启停及工作时间。用户设置高、低温度值,测得温度值在高低温度之间时打开风扇弱风档,当温度升高超过所设定的温度时自动切换到大风档,当温度小于所设定的温度时自动关闭风扇,控制状态随外界温度而定。用户设定的温度上下限值通过软件程序自动保存在数字温度传感器DS18B20内部的EPPROM内存单元中,掉电后数据不会丢失,不必劳烦用户每次启动风扇后反复重新设定温度上下限值。本次设计中新增的人体感应传感器可以探测出风扇范围内是否有人,如果没有探测到人体,风扇会自动关闭,达到节约电源的目的。关键词:AT89C51芯片;温度传感器DS18B20;人体感应模块PIRAbstractThe design of single chip microcomputer system is designed based on single chip microcomputer intelligent temperature control fan. Using the control chip is AT89C51 single chip microcomputer, digital temperature sensor DS18B20 is used to inspect the change of environmental temperature, and through digital tube display, through the single chip microcomputer to control large current of small current fan motor work, realize electric fan timing time of internal microcontroller timer setting. This set of system software is mainly through the real-time temperature and set temperature upper and lower limit value after comparison, start-stop control electric fans, strong or weak and eventually make the environment to maintain a comfortable temperature. The user can according to their own needs to set temperature upper and lower limit, electric fan start-stop and working time. Users to set high and low temperature, when the measured temperature value between high and low temperature open the fan weak wind, when the temperature exceeds the set temperature automatically switch to the wind, when the temperature is less than the set temperature automatically shut down the fan, control state varies with temperature. Users to set the temperature of the upper and lower limit value automatically by the software program stored in the digital temperature sensor DS18B20 the internal EPPROM memory unit, data is not lost after power off, dont need to bother the user with each fan launched after repeatedly reset temperature limit up and down. Of the human body in the design of the new sensor can detect whether someone fan scope, if not detected by the human body, the fan will shut down automatically, achieve the goal of saving power.Key Words:AT89C51; The temperature sensor DS18B20; The human body induction module PIR.目 录第1章 绪论 1 1.1 背景及意义 1 1.2 国内外发展状况及研究背景 2 1.3 系统整体设计 2 1.4 方案论证 3 第2章 系统方案设计 5 2.1 控制器的选择 5 2.3 显示器的选择 7 2.4 调速方式的选择 7 第3章 各单元电路的设计 9 3.1 AT89C51单片机芯片 9 3.2 LED数码管 10 3.3 DS18B20温度传感器 11 3.4 人体感应模块PIR 14 3.4.1 菲涅耳透镜 14 3.4.2 BISS0001芯片简介 15 3.4.3 信号采集处理模块 16 3.5 开关复位与晶振电路 17 3.6 风扇驱动电路 17 3.7 电机调速电路 18 3.7.1电机调速原理 18 3.7.2电机控制模块设计 19 第4章 软件设计 21 4.1 总体设想 21 4.2 用Keil C51编写程序 22 4.3 用Proteus进行仿真 22 第5章实物制作及系统调试 27 5.1 按键电路的调试 27 5.2 温度传感器电路的调试 27 5.3 电机电路的调试 27 5.4 人体感应模块的调试 27 5.5 硬件调试遇到的问题 28 第6章 总结与展望 29 附录1 31 附录2 45 参考文献 49 致谢 51 第1章 绪论1.1 背景及意义近些年来,随着空调行业的迅速发展,空调价格的大幅度“跳水”,电风扇行业曾被普遍认为是“夕阳产业”。其实并非如此,市场人士称,家用电风扇并没有随着空调的普及而淡出市场,近两年反而出现了市场销售复苏的态势。其主要原因:一是风扇和空调的降温效果不同;空调有强大的制冷功能,可以快速有效地降低环境温度,但电风扇的风更温和,更加适合老人儿童和体质较弱的人使用。二是电风扇有价格优势,价格便宜而且相对省电,安装和使用都非常简单。传统电风扇多采用机械方式进行控制,功能少,噪音大,各档的风速变化大。随着科技的发展和人们生活水平的提高,家用电器产品趋向于自动化、智能化、环保化和人性化,使得由微机控制的智能电风扇得以出现。生活中,我们经常会使用一些与温度有关的设备。比如,现在不少城市家庭用上了空调,但在占中国大部分人口的农村地区依旧使用电风扇作为降温防暑设备,春夏(夏秋)交替时节,白天温度依旧很高,电风扇应高转速、大风量,使人感到清凉;到了晚上,气温降低,当人入睡后,应该逐步减小转速,以免使人感冒。虽然电风扇都有调节不同档位的功能,但必须要人手动换档,睡着了就无能为力了,而普遍采用的定时器关闭的做法,一方面是定时时间长短有限制,一般是一两个小时;另一方面可能在一两个小时后气温依旧没有降低很多,而风扇就关闭了,使人在睡梦中热醒而不得不起床重新打开风扇,增加定时器时间,非常麻烦,而且可能多次定时后最后一次定时时间太长,在温度降低以后风扇依旧继续吹风,使人感冒;第三方面是只有简单的到了定时时间就关闭风扇电源的单一功能,不能满足气温变化对风扇风速大小的不同要求。又比如在较大功率的电子产品散热方面,现在绝大多数都采用了风冷系统,利用风扇引起空气流动,带走热量,使电子产品不至于发热烧坏。要使电子产品保持较低的温度,必须用大功率、高转速、大风量的风扇,而风扇的噪音与其功率成正比。如果要低噪音,则要减小风扇转速,又会引起电子设备温度上升,不能两全其美。为解决上述问题,我设计了这套智能温控自动风扇系统。本系统采用高精度集成温度传感器,用AT89C51单片机控制,能显示实时温度,并根据使用者设定的温度自动在相应温度时做出小风、大风、停机动作,精确度高,动作准确。1.2 国内外发展状况及研究背景国内外现状:目前,温控风扇的设计已经有了一定的成效,可以使风扇根据环境温度的变化进行自动无级调速,当温度升高到一定时能自动启动风扇,当温度降到一定时能自动停止风扇的转动,实现智能控制,如现在笔记本电脑中广泛应用的智能CPU风扇。还可通过无线通信,实现远程控制。温控风扇已广泛用于工业控制和生产生活中。发展趋势:随着技术的进步,温控风扇将会得到进一步的发展,不断提高其智能控制的精确度,不断的降低其运转的噪音,甚至实现零噪声,不断的降低功耗以节能,以及充分提高其集成度使其嵌入到更多的机械设备中将是其发展的趋势。而本设计基于对人性化与智能化相结合的考虑,同时基于对价格的考虑,决定制作一个基于51单片机的智能温控风扇,该风扇具有随温度自动调节风速的功能,并且在无人时可以自动关闭,而且可以根据每个人的不同情况来设定基准温度,从而实现了人性化与智能化的双重目标。1.3 系统整体设计本设计的整体思路是:本系统采用AT89C51单片机为控制核心,通过数字温度传感器DS18B20对外界环境温度进行数据采集,并直接将数字温度信号传递给51单片机进行处理,并将实时温度显示在三位数码管上,从而建立一个控制系统,使电风扇随温度的变化而自动调节档位,实现“温度高、风力大、温度低、风力弱”的性能。本系统还配备一个红外探头,探测出风扇范围内是否有人,探测到有人时则会开启风扇,若无人则不会开启或自动关闭风扇,并且在人走后30s后风扇会自动停止。本设计设置温度辅以3个可调按键,一个设置键,一个提高设置温度键,一个降低设置温度键,设置温度的精准度能达到小数形式,检测到的环境温度也可以精确到小数点后一位。本设计主要内容如下:(1)风速设为从低到高共2个档位,可由用户通过键盘设定;(2)每当温度低于下限值时,未探测到人则电风扇风速关闭;(3)每当温度在下限和上限之间时,探测到人时则电风扇转速缓慢;(4)每当温度高于上限值时,探测到人时则电风扇风速全速运转。系统结构框图如图1-1所示。AT89C51单片机按键电路驱动风扇温度显示温度传感器人体感应模块 图1-1 系统结构框图1.4 方案论证智能温控风扇顾名思义就是实现在温度变化下的智能调速功能,在所设定的温度上下限值控制范围内,做到符合人们对于风扇的真实需求,实现温度较低自动停机,温度在上下限值内微速,高温时全力转动,所以我们需要对温度变化有较高检测率的电器件以保证功能的实现。- 3 -第2章 系统方案设计本设计的主要硬件有AT89C51单片机芯片,红外热释电传感器,四位LED共阳数码管,DS18B20温度传感器,风扇直流电机,辅助元件包括电阻电容、晶振、电源、按键、拨码开关等。所用到的元件清单如表2-1所示:表2-1 元件清单元件型号元件名称元件标号数量10uF电容C1120电容C2, C32发光二极管D11SMG04_1数码管DS11红外热释电人体感应传感器P11Header 2电源接口P2, P329012三极管Q1, Q2, Q3, Q4, Q551K电阻R1, R2, R3, R8, R9, R10, R11, R1281K电阻R4, R5, R6, R7, R1551K电阻R13110K电阻R14, R162SW-PB按键S1, S2, S3, S44sw-灰色电源开关SW11单片机单片机U11DS18B20温度传感器U2112M晶振Y112.1 控制器的选择课题的控制器核心是51单片机芯片,控制核心对设计起着举足轻重的作用,所以我在以下两种方案中选择:方案(一)AT89C51单片机的指令简单,易学易懂,外围电路简单,硬件设计方便,io口操作简单,无方向寄存器,资源丰富,一般设计足够用了,价格便宜、容易购买,资料丰富容易查到,程序烧写简单,比较适用本设计。方案(二)AVR单片机技术体现了单片机集多种器件(包括FLASH程序存储器、看门狗、EEPROM、同/异步串行口、TWI、SPI、A/D模数转换器、定时器/计数器等)和多种功能(增强可靠性的复位系统、降低功耗抗干扰的休眠模式、品种多门类全的中断系统、具输入捕获和比较匹配输出等多样化功能的定时器/计数器、具替换功能的I/O端口)于一身,充分体现了单片机技术的从“片自为战向“片上系统SoC过渡的发展方向,但是指令系统复杂,位操作不方便。故排除次方案。2.2 温度传感器的选择要检测温度变化的方案有多种,但是此设计对于温度变化有严格的要求,如果检测有较大的出入则此次设计就失去了实际的“智能”功能,所以我们在下列两种方案中选择: (1)要检测环境温度我们可以选择实验室最常见的热敏电阻,并通过运算放大器放大以得到的数据作为处理依据,原理:理工生应该很了解热敏电阻的变化曲线是怎么样的,不是直线,是曲线,不是一元一次方程,所以误差相当大,其中检测到的电压变化要通过模数转换变成数字信号,但是我们所得到数字信号比较弱,几乎很难识别,所要我们需要进行放大再处理一下然后传入芯片中。(2)我们所选的DS18B20在检测温度来说是相对有优越性的,虽然价格方面是贵一点,但是还是在接受范围内,而且在温度分辨率的误差方面是把热敏电阻甩出了九条街,在精细方面没有可比性,检测出的数字信号可以通过I/O口传给微处理器。方案(一)热敏电阻是我们在实验室就可以轻易找到的普通电器元件,很实用,很便宜,所以我们需要考虑的是它是否适合我们的设计,对温度检测的灵敏度是否达到要求,经过实验验证热敏电阻对环境温度的测量,精细度方面很差,在某个范围内,误差极大,大家所知热敏电阻的“电阻时间”关系不是直线而是曲线,所以在微小的温度变化下有可能造成极大的误差,而且很难通过电路来调制,我们所在的环境温度变化在短时间内不会很大,故该排除本方案。方案(二)经过实验验证对比,用DS18B20代替热敏电阻作为温度检测器在一定的温度范围内有极大的优越性,极大的降低了误差。DS18B20能更好的检测温度的变化率,因为其两者之间的检测原理有着本质的不同,DS18B20的温度分辨率很高,而且抗干扰能力极强,符合本设计的需求,而且价格在接受范围内。2.3 显示器的选择方案(一):采用四位LED共阳极数码管显示温度。方案(二):采用液晶显示屏LCD显示温度。对于方案(一),该方案成本低廉,显示温度十分明确,在夜间也能看见,功耗极低,显示驱动程序的编写也相对简单,这种显示方式得到广泛应用。不足的地方是扫描显示方式是使五个LED逐个点亮,因此会有闪烁,但是人眼的视觉暂留时间为20ms,当数码管扫描周期小于这个时间时人眼将感觉不到闪烁,因此可以通过增大扫描频率来消除闪烁感。对于方案(二),液晶体显示屏具有显示字符优美和不但能显示数字还能显示字符甚至图形的优点,虽然这是LED数码管无法比拟的,但是液晶显示模块价格昂贵,驱动程序复杂,从简单实用的原则考虑,本系统采用方案(一)。2.4 调速方式的选择方案(一):采用变压器调节方式,运用电磁感应原理将220V电压通过线圈降压到不同的电压,控制风扇电机接到不同电压值的线圈上可控制电机的转速,从而控制风扇风力大小。方案(二):采用晶闸管构成无级调速电路。对于方案一,由于采用变压器改变电压调节,有风速级别限制,不能适应人性化要求,且在变压过程中会有损耗发热,效率不高,发热有不安全等因素。对于方案二,以电位器控制晶闸管的导通角大小,可实现由最大风速到关闭的无级别调速,可将风力调节在关闭无风到最大风之间的任意风力,实现“自由风”。且在调速环节中基本无电力损耗。故本系统采用方案(二)。第3章 各单元电路的设计3.1 AT89C51单片机芯片此产品的控制器核心是51单片机芯片5,是用C语言为编写语言,编写所需功能程序,通DS18B20温度感应器检测环境温度变化进而输出变化,并控制I/O输出控制信号,内部拥有4k字节FLASH闪速存储器,128字节内部RAM等,微处理器不止是一个单一功能的芯片,也可以理解为一个小型电脑,它便宜,小巧,轻敏;为个人学习、学者技术人员应用和开发作为基础。单片机在价格方面也适合大多数人群的对设计的要求。所以基于单片机的设计如雨后春笋般崛起。 AT89C51的引脚图如图3-1所示:图3-1 AT89C51的引脚图表3-1 8051的初始态表特殊功能寄存器初始态特殊功能寄存器初始态ACC00HB00HPSW00HSP07HDPH00HTH000HDPL00HTL000HIPxxx00000BTH100HIE0xx00000BTL100HTMOD00HTCON00HSCONxxxxxxxxBSBUF00HP0-P31111111BPCON0xxxxxxxB3.2 LED数码管本设计的思路是利用LED数码管的8段发光特性来显示环境温度的。由于数码管内部是由不同二极管组合,所以可以显示我们所需数字,而且我们对温度传感器的选择对于温度分辨率较高,所以我们的温度检测是需要精确到小数点后一位才能完成我们的显示需要。而我们在系统中加入三极管起到电流放大,开关控制的作用(单片机的I/O口驱动能力有限)。引脚图如图3-2所示: 数码管引脚分配图 a.共阴极 b.共阳极图3-2 LED数码管引脚图本设计的思路就是想用四位共阳极数码管来显示当前的环境温度,所以下图是在DXP软件下的电路接线设计图,由于DS18B20的检测范围在很大范围内都是精确的,所以我们在设定程序时就打算把温度精确到小数点后一位,可以准确检测温度的细微变化进而分辨本设计的智能性与可行性。数码管显示电路如图3-3所示:图3-3 数码管显示电路3.3 DS18B20温度传感器DS18B20是美国DALLAS半导体公司继DS1820之后最新推出的一种改进型智能温度传感器。与传统的热敏电阻相比,它能够直接读出被测温度并且可根据实际要求通过简单的编程实现912位的数字值读数方式。可以分别在93.75ms和750ms内完成9位和12位的数字量,并且从DS18B20读出的信息或写入DS18B20的信息仅需要一根口线(单线接口)读写,温度变换功率来源于数据总线,总线本身也可以向所挂接的DS18B20供电,而无需额外电源,因而使用DS18B20可使系统结构更趋简单可靠性更高。他在测温精度、转换时间、传输距离、分辨率等方面较DS1820有了很大的改进,给用户带来了更方便的使用和更令人满意的效果。 DS18B20简介:(1)独特的单线接口方式:DS18B20与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。(2)在使用中不需要任何外围元件。(3)可用数据线供电,电压范围:+3.0+5.5 V。(4)测温范围:-55+125 。固有测温分辨率为0.5 。(5)通过编程可实现912位的数字读数方式。(6)用户可自设定非易失性的报警上下限值。(7)支持多点组网功能,多个DS18B20可以并联在惟一的三线上,实现多点测温。(8)负压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。单线(1wire)技术:该技术采用单根信号线,既可传输时钟,也能传输数据,而且是双向传输。适用于单主机系统,主机能够控制一个或多个从机设备,通过一个漏极开路或三态端口连至该数据线,以允许设备在不发送数据时能释放该线,而让其他设备使用。单线通常要求外接一个5K的上拉电阻,这样当该线空闲时,其状态为高电平。主机和从机之间的通讯分成三个步骤:初始化单线器件、识别单线器件和单线数据传输。单线1wire协议由复位脉冲、应答脉冲、写0、写1、读0、读1,这几种信号类型实现,这些信号中除了应答脉冲其他都由主机发起,并且所有指令和数据字节都是低位在前。DS18B20直接将测量温度值转化为数字量提交给单片机。DS18B20温度传感器温度的测量范围大,足够完成在正常情况下的温度变化测试,温度分辨率较高。设计中采用四位共阳极数码管,环境温度的测量精准度精准到小数点后一位,具有较高温度检测性,而且在接线方面占用单片机的接口少,节省了工作量。优点:1:与单片机的接口简单;2:单只使用比较简单;3:有体积小,硬件开销低,抗干扰能力强。DXP设计图如图3-4所示:图3-4 DXP设计图DS18B20温度传感器外型和管脚如图3-5所示:图3-5 DS18B20温度传感器外型和管脚图工作原理:DS18B20数字温度传感器采集现场温度,将测量到的数据送入AT89C51单片机的P2.4口,经过单片机处理后显示当前温度值,并与设定温度值的上下限值作比较,若高于设定上限值或低于设定下限值则控制电机转速进行自动调整。3.4 人体感应模块PIR 热释电红外传感器(简称PIR)是80年代发展起来的一种新型高灵敏度探测元件。它能以非接触形式检测出人体辐射的红外线能量的变化,并将其转换成电压信号输出。将这个电压信号加以放大,便可驱动各种控制电路,如作电源开关控制、防盗防火报警、自动检测等,人体辐射的红外线中心波长为910um,而探测元件的波长灵敏度在0.220um范围内几乎稳定不变。在传感器顶端开设了一个装有滤光镜片的窗口,这个滤光片可通过光的波长范围为710um,正好适合于人体红外辐射的探测,而对其它波长的红外线由滤光片予以吸收,这样便形成了一种专门用作探测人体辐射的红外线传感器,本传感器是整个系统的关键只有本传感器才能感应到人体红外线。如图3-6所示。图3-6 热释感应传感器3.4.1 菲涅耳透镜菲涅耳透镜片相当于热释感应传感器的“眼镜”,它和人的眼睛一样具有相同的作用,配用得当与否直接影响到使用的功效,配用不当产生错误的动作,致使用户或者开发者对其失去信心。它的作用是有效的将探测到空间的红外线集中到传感器上,菲涅耳透镜根据性能要求不同,具有不同的焦距(感应距离),从而产生不同的监控视场,视场越多,控制越严密。如图3-7所示为菲涅耳透镜模型图。图3-7 菲涅耳透镜3.4.2 BISS0001芯片简介BISS0001是一款传感信号处理集成电路,只要热释感应器把红外线接收到的信号传输到BISS0001里进行信号处理。它本身静态电流极小,工作电压在3V5V之间,当工作电压为5V时输出的驱动电流为10MA。配以热释电红外传感器和少量外围元器件即可构成被动式热释电红外传感器,广泛用于安防,自控等一些领域,它是有16个管脚组成的一种集成块。管脚功能说明如表3-2所示。表3-2 管脚说明图引脚名称I/O功能说明1AI可重复触发和不可重复触发选择端。当A为“1”时,允许重复触发;反之,不可重复触发2VOO控制信号输出端。由VS的上跳前沿触发,使Vo输出从低电平跳变到高电平时视为有效触发。在输出延迟时间Tx之外和无VS的上跳变时,Vo保持低电平状态。3RR1-输出延迟时间Tx的调节端4RC1-输出延迟时间Tx的调节端5RC2-触发封锁时间Ti的调节端6RR2-触发封锁时间Ti的调节端7VSS-工作电源负端,一般接0V8VRFI参考电压及复位输入端。通常接VCC,当接“0”时可使定时器复位9VCI触发禁止端。当VcVR时允许触发(VR0.2VDD)10IB-运算放大器偏置电流设置端,经RB接VSS端,RB取值为1M左右。11VCC-工作电源正端,范围为35V122OUTO第二级运算放大器的输出端132IN-I第二级运算放大器的反相输入端141IN+I第一级运算放大器的同相输入端151IN-I第一级运算放大器的反相输入端161OUTO第一级运算放大器的输出端3.4.3 信号采集处理模块本电路是将人体辐射的红外线转变为电信号。热释红外感应2脚输入到前置放大器OP1进行放大,然后由C4耦合给运算放大器OP2进行第二级放大。再经过电压比较器COP1和COP2构成双向鉴幅器处理后,检出有效触发信号去启动延时时间定时器输出信号在经过R3进入单片机部分进行处理。延时周期可通过R12来调节输出,在延时时间内只要Vs发生上跳变,Vo就会从Vs上跳变时刻起继续延长一个周期,而电路中的电容为了能够更好的控制了芯片内的定时器,若Vs一直保持为高电平,这样就可以通过P10传输到单片机内进行下一步处理。而根据不同的距离要求来调节R13,最大可以调节到7米左右。BISS0001中1脚用跳线连连接住一个接高电平后,在延时时间段内如果有人体在其感应范围活动,其输出将一直保持高电平,直到人离开后才将高电平变为低电平,本电路设计就是可触发方式。信号采集处理模块如图3-8所示: 图3-8 信号处理模块3.5 开关复位与晶振电路在单片机应用系统中,除单片机本身需要复位以外,外部扩展I/O接口电路也需要复位,因此需要一个包括上电和按钮复位在内的系统同步复位电路。单片机上的XTAL1和XTAL2用来外接石英晶体和微调电容,即用来连接单片机内OSC的定时反馈回路。本设计中开关复位与晶振电路如图3-1所示,当按下按键开关S1时,系统复位一次。图3-9 系统复位电路3.6 风扇驱动电路这个设计用红外探测即人体感应模块来控制电机的开关,以三个按键的组合来调节所设置的温度上下限值进而达到智能的效果,根据DS18B20反馈回来的温度通过程序处理从而实现电扇转速的调节。当所处的环境温度变化了,在红外探测到人时,电机随温度变化而转速进行变化,温度过低则停止,处于上下限值之间则中速,高于上限值则全速运转,红外探测无人时电机也是停止运转的。有人时电机根据温度是否处于所设值而开启。 图3-10 风扇驱动电路3.7 电机调速电路电机调速是整个控制装置中的一个相当重要的方面。通过控制改变控制角的大小,使输出端电压发生改变,从而使施加在电风扇的输入电压发生改变,以调节风扇的转速,实现各档位风速的无级调速。3.7.1电机调速原理双向可控硅的导通条件如下:(1)阳-阴极间加正向电压;(2)控制极-阴极间加正向触发电压;(3)阳极电流IA 大于可控硅的最小维持电流IH。电风扇的风速从高到低设为5、4、3、2、1档,每档风速都有一个限定值。在额定电压、额定功率下,以最高转速运转时,要求风叶最大圆周上的线速度不大于2150m/min。且线速度可由下列公式求得V=Dn103 (3-1)式(3-1)中,V为扇叶最大圆周上的线速度(m/min),D为扇中的最大顶端扫出圆的直径(mm),n为电风扇的最高转速(r/min)。代入数据求得n51555r/min,取n5=1250 r/min.又因为:取n1=875r/min。则可得出五个档位的转速值:n1=875r/min,n2=980r/min,n3=1063r/min,n4=1150 r/min,n5=1250r/min又由于负载上电压的有效值u0=u1 (3-2)式(3-2)中,u1为输入交流电压的有效值,为控制角。解得:(1) 当5=0时,t=0ms;(2) 当4=23.5时,t=1.70ms;(3) 当3=46.5时,t=2.58ms;(4) 当2=61.5时,t=3.43ms;(5) 当1=76.5时,t=4.30ms。(6) 上述计算出的是控制角和触发时间,当检测到过零点时,按照所求得的触发时间延时发脉冲,便可实现预期转速。3.7.2电机控制模块设计本模块电路中采用了过零双向可控硅型光耦MOC3041M ,集光电隔离、过零检测、过零触发等功能于一身,避免了输入输出通道同时控制双向可控硅触发的缺陷, 简化了输出通道隔离2驱动电路的结构。其中RL即为电机负载,其工作原理是:单片机响应用户的参数设置, 在I/ O 口输出一个高电平, 经反向器反向后, 送出一个低电平,使光电耦合器导通, 同时触发双向可控硅, 使工作电路导通工作。给定时间内,负载得到的功率为: (3-3)式中: P 为负载得到的功率( kW); n 为给定时间内可控硅导通的正弦波个数; N 为给定时间内交流正弦波的总个数; U为可控硅在一个电源周期全导通时所对应的电压有效值(V); I 为可控硅在一个电源周期全导通时所对应的电流有效值(A)。由式(3) 可知,当U , I , N 为定值时, 只要改变n 值的大小即可控制功率的输出,从而达到调解电机转速的目的。图3-11 电机控制原理图- 41 -第4章 软件设计4.1 总体设想首先是软件检测数字温度传感器DS18B20工作是否正常,系统检测数字温度传感器DS18B20采集的温度数据检测正常时,通过3个功能按键K1、K2、K3来设定好系统温度上下限值后,按确认键,系统进入正常运行状态。通过对数字温度传感器DS18B20进行数据采集,用数码管显示实时温度。当实时温度低于或高于设定温度上下限时,通过单片机输出信号控制继电器关断从而控制电风扇启停、强弱风挡的切换,从而达到环境温度的调控目的7。主程序流程图如图4-1所示:图4-1主程序流程图4.2 用Keil C51编写程序在大学专业学习中,汇编和C语言都是专业所学科目,对两种语言都是有一定的学习了解,Keil C51是在应用上相对比较广泛的C语言软件开发系统,与汇编语言相比,它比较容易学,容易上手,可是很难学到精深,但是汇编如果学会了是深刻理解了其中原理,所以两者的优缺点要编程者自己把握;汇编语言适用于高端的开发设计,难度较高,不是说对比于C语言不如,主要是难度太高,如果不是有专业的研究汇编语言,没有应用与设计开发的能力。而Keil C51开发系统是对于C语言的专业开发系统,适合于初学者。Keil C51的使用界面如图4-2所示:图4-2 Keil C51的使用界面4.3 用Proteus进行仿真Proteus软件是当前仿真软件中最受欢迎的几种之一。Proteus 软件是英国 Labcenter electronics公司出版的 EDA 工具软件,可完成从原理图布图、 PCB 设计、代码调试到单片机与外围电路的协同仿真,真正实现了从概念 到产品的完整设计,是目前世界上唯一将电路仿真软件、 PCB 设计软件和虚拟模型仿 真软件三合一的设计平台,其处理器模型支持 8051、 HC11、 PIC 、 A VR 、 ARM 、 8086和 MSP430等, 2010年又增加了 Cortex 和 DSP 系列处理器,并持续增加其他系列处 理器模型。 Proteus 软件主要具有以下特点: 具有强大的原理图绘制功能。 实现了单片机仿真和 SPICE 电路仿真相结合。 具有模拟电路仿真、 数字电路仿 真、单片机及其外围电路的系统仿真、 RS232动态仿真、 I 2C 调试器、 SPI 调试器、键 盘和 LCD 系统仿真的功能; 有各种虚拟仪器, 如示波器、 逻辑分析仪、 信号发生器等。 支持主流单片机系统的仿真。目前支持的单片机类型有:68000系列、 8051系 列、 A VR 系列、 PIC12系列、 PIC16系列、 PIC18系列、 Z80系列、 HC11系列以及各 种外围芯片。 提供软件调试功能。具有全速、单步、设置断点等调试功能,同时可以观察各 变量以及寄存器等的当前状态,并支持第三方编译和调试环境,如 wave6000、 Keil 等 软件。在设计真正动工之前,仿真的重要性不需要多说,设计方案可行度的高低,仿真软件的检测具有最好的说服性,我们学校的教学过程中,如果都是让学生通过焊接动手来练习熟悉元器件来让自己熟悉零器件和焊接经验所花费的费用可想而知。为了降低这种消耗,仿真软件Proteus就不可或缺了。软件使用的主界面如图4-3所示:图4-3软件使用的主界面设计的Proteus仿真图如图4-4所示:图4-4作品的Proteus仿真图设计的PCB图如图4-5所示:图4-5 设计的PCB图第5章 实物制作及系统调试5.1 按键电路的调试 所谓按键电路就是要实现对于温度上限值和下限值的自主设定,主要由三个按键来完成这个功能,设置键,加键,减键,要是想改变设置值可以自主改变,根据不同地区不同人去的需要,自由设置温度上限值,再按一下,设置温度下限值,再按显示当前环境温度值,可以根据个人的不同需求自由设置温度上下限值,以达到智能需求。本设计的数码管由单片机P0口控制,当P0口传送段码时发生混乱,不能正确识别段码会导致数码管的显示问题,经过调试,只要加入锁存器就可以解除次问题,保证数码管的正常显示功能。 5.2 温度传感器电路的调试在上述温度检测元件的选择中因为其对于温度的灵敏检测性而选择了温度传感器DS18B20,在数码管在单片机p0口正常输出控制和显示的情况下,用手指握住温度传感器DS18B20以改变温度,代替环境温度的改变,观察数码管是否产生数字变化,而且是否处于正常变化下,因为人体的温度在37度左右,所以在短时间的接触内,温度传感器DS18B20是不可能达到或者超过此温度,而且其温度变化率应该在温度小数点后一位缓慢变化而不是一度两度直接跳跃,高度数字集成的温度传感器使设计的困难度大大降低,这个元件体积小,功耗较低,主要是对于环境温度的检测分辨率高,而且设计中使温度的检测达到小数点后一位,大大增加了对温度变化的准确性和对调试难度的降低。 5.3 电机电路的调试 电机电路的调试主要是在电机能正常启动的前提下,在不停调节按键电路设置不同的温度上限值和下限值在改变环境温度下观察电机转速的变化,是否在低于温度下限值时停止,处于上下限值之间低速运转,高于上限值时候高速运转(有人情况下)。如果能达到预期效果则成功。5.4 人体感应模块的调试设计以热释电传感器和菲涅尔透镜组成的人体感应模块,在前方无人时,热释电传感器感应不到动态变化,风扇处于待机状态,直流电机不启动。红外探测到人时,电机开始转动(基于温度高于预设温度的时候),此模块的加入使设计本身的高端性增加了一大截,对于应用到实际生活中有较大的实际性,21世纪对于电源的浪费问题一直是一项重大问题,人体感应能最大程度的防止浪费的情况,真正做到节能性智能。 5.5 硬件调试遇到的问题本次设计中遇到的问题不少,但是都一一解决了,主要是C语言的程序有太多的不确定性,需要根据实际的硬件电路更改源程序,但是源程序无误,硬件连接无误的情况下,直流电机转动无法根据DS18B20的检测反馈的温度变化进行转速变化,无法精准的根据温度的变化而确切改变转速,驱动力不足的情况使设计停滞了一段时间,最后经过对程序的改进使风扇能进行俩段较为明显的变速,分为高低俩档,虽然无法做到无极变速,但是以初步达到设计的的原本要求。课题的实物图如图5-1所示:图5-1 实物图第6章 总结与展望本设计的整体思路是:本系统采用AT89C51单片机为控制核心,通过数字温度传感器DS18B20对外界环境温度进行数据采集,并直接将数字温度信号传递给51单片机进行处理,并将实时温度显示在三位数码管上,从而建立一个控制系统,使电风扇随温度的变化而自动调节档位,实现“温度高、风力大、温度低、风力弱”的性能。系统还配备一个红外探头,探测出风扇范围内是否有人,探测到有人时则会开启风扇,若无人则不会开启或自动关闭风扇,并且在人走后30s后风扇会自动停止。本设计设置温度辅以3个可调按键,一个设置键,一个提高设置温度键,一个降低设置温度键,设置温度的精准度能达到小数形式,检测到的环境温度也可以精确到小数点后一位。本设计的设计成本较低而且由于时间和本身技术的限制,作品的调试是基于5V电压电源的情况下,没有判断应用于220V电源电压下是否可以正常的工作运行,对于电路是否需要进行改进还无确切的判定,而且实际应用中要考虑对于风扇电机等设备的发热问题,会不会影响温度传感器DS18B20对于环境温度的检测,要完善设计可以加装一个报警电路,当热释电传感器探测人体开启风扇时可以发出声响提示开启风扇。设计本身还有一个不足的地方在于风速的调控上,本设计本身只有两档速度的变化,低速和高速,这可能不能正常符合大多数人群的需求,没做到真正的无极变速,只是初步的实现根据温度的变化改变电机转速,这是未来一个改进的方向。附录1数字温度传感器模块和显示子模块程序:#include /调用单片机头文件#define uchar unsigned char /无符号字符型 宏定义变量范围0255#define uint unsigned int /无符号整型 宏定义变量范围065535#include eeprom52.h/数码管段选定义 0 1 2 3 4 56 7 8 9uchar code smg_du=0x28,0xee,0x42,0x52,0xe5,0xa8,0x41,0xe7,0x20,0xa0, 0x60,0x25,0x39,0x26,0x31,0x71,0xff; /断码/数码管位选定义uchar code smg_we=0xef,0xdf,0xbf,0x7f;uchar dis_smg8 = 0x28,0xee,0x32,0xa2,0xe4,0x92,0x82,0xf8;uchar smg_i = 3; /显示数码管的个位数sbit dq = P24;/18b20 IO口的定义bit flag_lj_en; /按键连加使能bit flag_lj_3_en; /按键连3次连加后使能 加的数就越大了 uchar key_time,key_value; /用做连加的中间变量bit key_500ms ;sbit pwm = P23; uchar f_pwm_l ; /越小越暗uint temperature ; /bit flag_300ms ;uchar menu_1; /菜单设计的变量uint t_high = 300,t_low = 100; /温度上下限报警值 /*1ms延时函数*/void delay_1ms(uint q)uint i,j;for(i=0;iq;i+)for(j=0;j= smg_i)i = 0;P1 = 0xff; /消隐 P3 = smg_wei; /位选P1 = dis_smgi; /段选 /*把数据保存到单片机内部eepom中*/void write_eeprom()SectorErase(0x2000);byte_write(0x2000, t_high % 256);byte_write(0x2001, t_high / 256);byte_write(0x2002, t_low % 256);byte_write(0x2003, t_low / 256);byte_write(0x2055, a_a);/*把数据从单片机内部eepom中读出来*/void read_eeprom()t_high = byte_read(0x2001);t_high = 8;t_high |= byte_read(0x2000);t_low = byte_read(0x2003);t_low = 8;t_low |= byte_read(0x2002);a_a = byte_read(0x2055);/*开机初始化保存的数据*/void init_eeprom()read_eeprom();/先读if(a_a != 22)/新的单片机初始单片机内问eepromt_high = 320;t_low = 280;a_a = 22;write_eeprom(); /保存数据/*18b20初始化函数*/void init_18b20()bit q;dq = 1;/把总线拿高delay_uint(1); /15usdq = 0;/给复位脉冲delay_uint(80);/750usdq = 1;/把总线拿高 等待delay_uint(10);/110usq = dq;/读取18b20初始化信号delay_uint(20);/200usdq = 1;/把总线拿高 释放总线/*写18b20内的数据*/void write_18b20(uchar dat)uchar i;for(i=0;i= 1;/*读取18b20内的数据*/uchar read_18b20()uchar i,value;for(i=0;i= 1; /读数据是低位开始dq = 1; /释放总线if(dq = 1) /开始读写数据 value |= 0x80;delay_uint(5); /60us读一个时间隙最少要保持60us的时间return value; /返回数据/*读取温度的值 读出来的是小数*/uint read_temp()uint value;uchar low; /在读取温度的时候如果中断的太频繁了,就应该把中断给关了,否则会影响到18b20的时序init_18b20(); /初始化18b20EA = 0;write_18b20(0xcc); /
收藏