1、基于单片机的智能温控风扇系统的设计与实现厉俊:本设计是一个温度控制风扇系统,该系统采用单片机STC89C52进行控制。系统中的温度传感器DS18820,可以对该系统设置温度,所设置的温度值保存在DS18820温度传感器内部的E2ROM中,具有掉电保护功能,即使掉电之后,最后一次设定的温度值在E2ROM中不会丧失。设定温度时需设定高温与低温值,当系统正常工作时,系统会检测外部的温度情况,如所检测的温度高于所设定高温值,那么单片时机控制风扇切换到强风档,如果测得温度在高温与低温之间,那么会自动将风扇切换到弱风档,如果测得温度低于低温,那么会将风扇关闭。整个系统控制精准,工作性能稳定。关键词:DSl
2、8820传感器:温控风扇:单片机STC89C52;智能化控制0引言大局部传统风扇都是采用机械方式进行控制,这种方式控制的风扇噪音大、功能少,同时不同档位之间的风量变化较大,已很难满足人们的要求。随着电子科技的快速开展,电器都朝着智能化、自动化的方向开展。于是采用微机方式控制的风扇应运而生。传统风扇虽然可以通过换挡来调节风速,但必须通过手动的方式实现,并且定时功能无法根据环境温度自动调节关闭时间,也无法实现根据温度的变化来自动调节风速的大小。大功率电子产品在工作时,为了使其能够很好地散热,保持低温状态,都会采用风扇对其降温,这就需要风量大、功率大以及转速大的风扇,而一旦风扇转速快,功率大了之后,
3、就会出现噪声大的问题,而如果使用小功率风扇,虽然能减少噪声,但是又无法使大功率电子设备保持良好散热。因此很难实现两全其美。为了使上述的问题得到很好地解决,本文设计了一款智能温控风扇系统,该系统采用单片机控制,使用的温度传感器具有高精度等特点,能够实时地将当前的温度进行显示,同时用户还可以根据实际情况对其进行温度设定,一旦温度设定后,系统就会根据外界温度的变化自动控制风扇,实现关机、弱风、强风三挡的自动切换,系统具有精确度高,性能稳定等特点。1 系统整体设计智能温控风扇系统核心控制芯片采用STC89C52单片机,对外界温度的采集使用型号为DS18820的数字温度传感器,能精确地测量外界的温度情况
4、,使风扇的风速以及开关情况能够实现自动调节。另外,该系统还配备了按键以及红外接收功能,可以通过红外进行远程遥控,或者利用按键对风扇进行控制。用户可以对该系统的温度情况进行设定,如果环境温度低于所设定的最小温度,系统就会自动将风扇关闭。相反,如果高于这个温度,系统就會重新启动风扇。图1为系统设计结构框图。2 系统硬件设计系统的硬件局部主要包括STC89C52单片机、DSl8820温度传感器、电机调速控制模块、LCD液晶和风扇。2.1 单片机的选用STC89C52是一款8位的单片机,功耗小、性能高、工作稳定。内部集成了4KB的PEROM以及128KB的RAM,对单片机编写的程序可以烧人到该芯片的存
5、储器当中。该单片机拥有32个I/O口,中断口。内部拥有16bit的计数器以及定时器。同时具备一个全双工串口,可以很好地对串口设备进行通信。正因为其功能强大、性能稳定,所以在很多电子领域当中运用。智能温控风扇系统的核心控制器为STC89C52,使用高精度的温度传感器实时地检测外界环境的温度变化,能够精确地检测出环境温度的微小变化,同时将所检测的温度情况实时地显示在电路中的显示器上。另外,用户使用该系统时,可以根据自己的需求设定温度的上限与下限。一旦温度设定好后,系统所检测的温度就会与设定的温度进行比照,然后启动相应的控制程序,实现系统的智能控制。2.2 温度传感器的选用DS18820是一种改良型
6、智能温度传感器,其通信方式十分简单,工作时无需电源,只要使用一根线便能够与单片机控制器进行通信。该温度传感器所检测的温度可以实现9-12位数值读数,同时运行速度快,可以在93.75ms完成9位数字量,在750ms实现12位数字量,效率高。基于DS18820的高度集成。外接放大和转换电路,从而大大降低了其误差因素,有很高的温度分辨率,所检测出来的温度模拟量会在该芯片内部进行转换,将其转换成数字量输出,简化了系统编程。同时该芯片通信采用的是单总线技术,简化了通信接口,同时具有较强的抗干扰能力。所以,DS18820可在温度测量精度、转换时间、传输距离、分辨率等方面更便捷、高效。不同温度下所对应的数字
7、量的对照表见表1。2.3 电机调速控制模块的选择风扇转速的调节那么是通过电机控制的,通过将风扇两端的输入电压进行调整,实现对风扇转速的调节,从而风扇进行无级调速。本系统中驱动电路的控制那么是采用了可控硅型光耦MOC3041M来实现。其能够对过零进行检测和触发,还具有集光电隔离功能,从而简化了驱动电路。当系统需要响应用户所设定的温度参数时,会启动风扇,此时单片机通过I/O口发出一个高电平,而所发出的高电平会通过一个反相器,输出变成低电平,这样光电耦合器就会被导通,使得双向晶闸管处于导通状态。系统硬件电路如图2所示。3 系统软件设计系统软件分为主程序模块、电机调速与控制模块、传感器温度检测模块、显
8、示模块等。限于篇幅只介绍几个关键软件局部的设计。3.1 主程序系统上电后,会对主程序初始化,接着系统就会循环地访问系统内部各个功能模块的缓冲区标志,如果发现那个功能模块的标志位被置位,那么说明需要处理这个模块。系统将调用该模块相应的处理程序对数据进行处理。主程序流程如图3所示。3.2 显示模块与传感器温度检测模块要实现对温度的检测。那么需要利用单片机对DS18820进行控制,控制需分三步:初始化、ROM操作指令以及存储器操作指令。系统中所使用的晶振为12MHz,因此系统频率为12MHz。系统需要完成温度的检测,那么需要分别对初始化、读、写时序进行编程。3.3 电机调速与控制模块系统对电机调速控
9、制是通过控制双向可控硅的通断到达调节电机速度的目的,而可控硅的通断由主控单片机来实现,这样便可以在一个控制周期内通过改变可控硅导通和关断的次数到达调节电机速度的目的。单片机上的INTO口可以反响工频电压过零时间,因此利用该中断口来决定控制门的开、关操作。通过对中断的次数进行计算和判断,每次产生一个中断时,中断控制量n就会做减1操作,当n为O时,那么将控制门关闭,从而过零脉冲也就无法通过。当n不等于0时,控制电平保持为“1。通过这种方式,到达调速的目的。3.3.1 中断效劳程序当中断发生时,系统响应中断,需要将现场进行保护,然后将该中断的标志位进行设置,这样就能够确保主程序不会修改当时的工作参数
10、,接着作减1计数。然后再根据计数后的值来决定是否将晶闸管关闭。当处理完中断所需要执行的程序后,需要将中断的标志位进行去除,再将原来的数据进行恢复,复原现场,再返回。在此设置在1s内可以通过100个波形数3.3.2 控制回路执行程序控制回路所执行的程序最主要的任务是将数据存储单元进行初始化,将电机最初的参数nmin/nmax确定,然后将这个参数转换成“有效过零脉冲的个数:接着再将所有的中断进行排序,确定中断优先级。同时为了使正弦波的完整性更好,在此,将INTO的优先级设置为最高。处理过程如图4所示。采用Protues软件进行仿真测试,仿真结果如图5所示。4 结束语本系统以STC89C52单片机为核心控件。温度检测采用高精度的数字温度传感器DS18820,将可控硅与风扇进行串联,并接到电源与GND之间。通过控制可控硅的通断频率以及占空比来对风扇的风速进行调节,设计简单、使用方便、稳定性高、性能优越、节约电能。用户在使用本系统时,只需要在用户界面上设定需要的温度参数,系统就会对环境温度进行检测,同时比照所设置的参数。进行自动风速调节。另外,本系统具有较强的扩展性,只需对系统做适当的修改,就能增加不同的功能。本设计具有广阔的市场前景。