
本文设计了一款智能电风扇控制系统,使用 STC89C51 作为主控制芯片,通过
DS18B20 检测环境温度并将温度信号发送给单片机。电机是否启动,以及电机的转速
由系统设定温度值与检测温度值的比较结果控制。同时用LED1602 显示检测到的温度
的普通风扇也有非常多的款式,比如说摇头风扇、璧扇等等,现在家用风扇中比例最
大的就是摇头风扇,因为他可以调节风向。有一些温度控制的风扇是可以通过传感器
检测当前环境温度,并且根据检测到的温度来开关电扇。如果当前环境的温度较高,
那么电扇就会自动开启吹风;如果温度低到了一定的限额,那么风扇就会自动关闭。
这种风扇适合在昼夜温差大的环境使用,而当室内没有人的情况下,系统依然工作,
已经逐渐的被空调所代替,但是相对于空调来说,风扇具有更加环保并且节约能源的
特点,因此,即便是有空调的家庭也会购买一个风扇,作为节省能源的降温方式使用。
伴随着科学技术的不断发展,温度控制技术也是逐渐的成熟,为了能够让电风扇在原
来的基础上更加的节约能源,智能化的电风扇就应运而生,也受到了广大群众的关注。
单片机是一个具有操作方便,价格低廉并且购买容易的产品,单片机的智能化程度随
着技术发展已经很高,不但能够有效的抵抗干扰,而且还具有非常高的精度,所以,
单片机也应用到了各个智能化的领域。现阶段,已经出现了能够根据人体温度来控制
电风扇开关的高智能型风扇,而且这种智能电风扇还能够自动的调节风速的大小。
本文设计了由单片机 STC89C51 作为控制器的可自动调速的智能电风扇。工作过
程当中首先会使用传感器对周边环境温度进行检查,并将检测到的数据传递到单片机
当中通过 PWM 对电风扇的电机进行驱动。本文所进行的设计可以按照环境检测到的
环境温度与预先设定的温度进行比对,根据结果完成转速的自动调节,并能根据人体
的对灯和电风扇智能控制的产品具有实用性强、价格低的特点,符合国人现有的消费
水平,产品外观还有待提高。但是,由于各个厂家没有统一的生产标准,产品的质量
难达标、专业服务的能力有限,缺乏品牌影响力。国内同时对于灯和电风扇的智能控
制的产品相对不多,而且大部分都是针对其中一种控制,特别是近些年国内一些灯具
企业已经开始推出一些简单实用的智能灯具,如组合控制灯具、遥控灯具、声控灯具
等,从另一个角度切入了智能控制的市场。但是这些产品大部分都是独立使用在各种
是直到现在,能够真正满足人们现代生活实际要求的案例少之又少,我国对灯和电风
扇智能控制的研究水平与欧美、日韩等发达国家之间还有很大的差距。现有的产品可
靠性不高,安装不方便,自动化控制水平低,根据这些实际情况开发出适合我国使用
欧洲、美国、日韩等国家的对于灯和电风扇智能控制产品已经在中国销售超过 10
年以上,市场占有率非常高,并且它们的生产技术水平比国内的大部分生产灯和电风
扇相关智能控制产品的公司都要高。在国外品牌当中有一些较大的公司具有非常强大
的品牌影响力,比如说欧洲的ABB、罗格朗等一些品牌,美国以及日韩的路创、松下
以及立维腾等。但是这些企业所制造的智能风扇大多数面向的是高端的客户,普通老
综上所述,对于灯和电风扇智能控制技术在许多发达国家(如美国、德国、英国、
韩国等)已经非常成熟,但具有价格高、安装复杂、维护起来不方便等缺点,因此,
为了解决这些缺点,让灯和电风扇智能控制技术能得到全世界的普及,该项技术的研
的温度信息传递到单片机当中,单片机对接受到的数据进行相应的处理,并且将信号
发送到显示屏中控制显示屏显示,与此同时,单片机也会对风扇的转速进行适当的控
制,单片机中的既定程序会根据单片机所检测到的温度进行适当的选用规则,然后将
当前电风扇的转速在显示屏中显示。在本系统中需要对两个温度进行设定,分别是TH
和TL,TH 的温度值是电风扇风速改变的界限温度,TL 则为控制风扇开关的最小温度。
本次设计中设置了三个按键,分别是 K1,K2 与 K3。其中 K1 按键是对 TH 与 TL 进行
数点后一位。当按下K1 时可调节TH,再次按下K1 可调节TL。按下K2 加一度,按下
K3 减一度。在本文所涉及的系统当中额外增加了一个红外感应探头用于对周边人员情
况进行一定的检测,当周边没有人且持续了一段时间之后,系统会自动控制将风扇进
行关闭。除此之外本文所设计的系统当中使用了PWM脉宽调制进行电机的控制,以实
现控制风扇转速的目的。根据系统的结构,可以绘制出如图2-1 所示的整体结构图。
利用温度传感器 DSI8B20 检测环境温度并直接输出数字温度信号给单片机
STC89C51 进行处理,在 LED 数码管上显示当前环境温度值以及预设温度值。其中预
设温度值只能为整数形式,检测到的当前环境温度可精确到小数点后一位。同时采用
PWM脉宽调制方式来改变直流风扇电机的转速。并通过两个按键改变预设温度值,一
个提高预设温度,另一个降低预设温度值。系统结构框图,如图所示,设计实物图如
调节转速,如果周围温度低于设定值的话风扇会自动停止,且温度的设定值可以用独
立按键改变。在风扇感应到其工作区域一段时间内没有人的话即会自动关闭运行。除
的方式是通过温度改变阻值的特点,当电阻的阻值发生了改变,那么电压也会发生一
定的变化,虽然这种变化是细微的,但是也能够被利用,然后将电压产生的细微的变
感器很早以前就已经技术成熟,除了能够对温度进行非常精确的检测之外,其输出的
优点,但是同时也存在着比较明显的缺点,因为是通过电阻与电压的变化检测周边的
温度,会出现精度不足的情况,因此在温度发生细微变化的是该元件难以进行实时的
反应。另外,热敏电阻所输出的是电压变化的信号,该信号还要经过处理以后才能够
显示成温度信号,当硬件变多,那么处理信号的过程必然会有所误差。因此在温度的
计算上相对比较困难,因此在设计的实现需要使用更加复杂的电路。因此该方案并不
对于第二种方案,由于传感器是一款比较成熟的温度传感器,具有较高的集成度,
单片机中进行数据处理,相较于热敏电阻来说,该系统的电路以及程序都得到了比较
大的简化,而且该类传感器所使用的技术为单总线,让单片机与该传感器之间的链接
接口非常简单,使得数据传输的抗干扰能力得到提升。综合考虑这些因素本系统采用
进行信号的处理与输入输出,达到获取温度信息并控制风扇转速的目的。该单片机所
需要的工作电压比较低而且所能够拥有的性能相对比较高,工作时能耗也比较小,除
此之外其还能够与直接用于良好的兼容性,且采购成本相对较低,故此能够使得本系
显示,显示控制相对容易。但是,该解决方案具有非常明显的缺点,由于解决方案中
的实际元素通过动态扫描显示信息,因此在工作时会发生一定量的闪烁。当闪烁频率
比较丰富,在显示过程中不会出现闪烁现象 因此它满足了该系统的设计要求,所以选
转速输出相应的控制信号至芯片当中,芯片将信号进行一定的转换然后发送至无极调
方案二:该方案使用软件对PWM进行模式控制,以达到调节电动机速度的目的。
该方案可调整脉冲序列的宽度,以在工作过程中获得不同的输出信号。此模式下最常
用的信号是矩形波PWM信号,该信号使用占空比的调整来控制电动机速度,占空比的
(1)使用软件延迟来调整输出信号。当高电平延迟结束时,相应的电平将被反转,
并且会有一段时间的延迟,而当低电平延迟被反转时也是如此,因此可以输出不同的
占空比信号通过软件控制时延可以实现。综合分析后,该模式实现起来比较简单,基
(2)使用计时器控制不同信号的输出。该方法与上述方法类似,但是需要使用定
(3)使用单片机的内置PWM控制器进行控制。此方法仅适用于某些类型的单片
通过对以上两种可行方案的分析,可以得出两种方案都可以实现较好的无级调速,
但是由于方案 1 所需的数模转换器成本较高,因此不能在本方案中使用。相比之下第
二种方案使用软件对占空比进行调节达到电机调速的目的,该方案具有的灵活性较高
且成本很低,同时能够对系统的要求进行较好的满足,故此选用方案二作为本系统的
在对于电机的控制当中该方案难以达到较好的效果,其驱动力方面具有一定的欠缺,
且在进行调速时也拥有很好的表现,因此在本文所要设计的系统当中采用此方案作为
如下图所示,此类小电机电压范围为5V-12V,在5V电源供电时,转速为2000 r/min,
此类电机往往应用于四轴飞行器,额定电压为3.7V,参考转速为45000 r/min,带
由于我们打算用 8050 和 8550 对管来驱动电机,因此方案二的高速空心杯电机就
不能考虑了,不然可能会击穿三极管,烧毁单片机。参考驱动电路的电流限制,我们
模块、显示模块、驱动模块以及风扇,除此之外还需要一些晶振、电源等必要的元件
时钟信号,使得系统能够进行精确工作得到保证,相应地,复位电路主要是用来使各
个口的电路进行复位操作。晶振是给电路提供工作信号脉冲的,采用12M的晶振,单
片机的工作速度为每秒 12M。当晶振在单片机的与所组成的振荡电路当中的时候出现
一定的谐波,使得电路稳定性受到影响,所以需要在晶振的引脚上加接两个的电容接
根据本系统的设计需要,在系统当中布置了三个独立按键。其连接电路图如图3-4
是三个独立按键,其各自与单片机的I/O 端口P1.5、P1.6、P1.7 和大
地连接,当按下按键后由高电平变为低电平,电路接通。在工作过程中,单片机扫描
按键子程序,之后就可以对温度进行设置,K1 是控制调节TH 还是TL, K2 和K3 能够
在进行温度设定的时候对设定值进行加减操作,每按下一次相应的温度设定值会增加
本文设计时选择了LCD1602 来显示温度信息,此电路和单片机的连接情况具体见
图7,此显示器的第一行可以显示系统检测到的温度与档位,而温度信号可以精确到小
数点后第一位,设定温度则可以在第二行显示。其中 T 表示检测到的温度,P 表示档
作中,震荡计数器可以将相应低温系数振荡器产生的时间形式的信号进行有效处理后
并完成计数,在此过程中,必须使系统内部对应于完成基权值的预置,一旦计数结果
显示为 0 状态并且相应的振荡周期没有终止,就可以认为测量的温度范围已溢出,温
度寄存器将执行增量操作,并且该周期将继续直到振荡周期结束。这时,内部寄存器
的值就是测得的温度。由于存储机制为二进制形式,因此可以通过读取信号来确定相
应的温度。值得注意的是,温度振荡器本身具有一定程度的非线性,只有在特定应用
中对其进行有效补偿才能确保输出的准确性。该电路具有数字信号输出,在与单片机
进行实时通讯的过程当中还需引入一定的上拉电阻,如图 3-6 所示相关引脚连接示意
实现该信号与驱动模块的衔接,从而对相应的电机完成驱动运转,除此之外,利用该
关的温度信号并完成与预设值的比较。可以通过比较结果的有效分析来实现所需的输
出脉冲。确定信号以驱动电动机以实现所需的速度控制。当外部温度变化到一定程度
时,将根据预定程序有效地改变电动机速度。两者在一定程度上显示出比例关系,这
意味着相应的速度将随着温度的升高而继续增加。如果情况太低,系统将立即终止操
作。另外,如果红外技术无法检测到相关人员,则只有在相关人员存在且测得的温度
高于预定值时,红外技术也会被终止。电动机将相应地运行,从而带动风扇进行吹风,
本系统在编程时主要用到 C 语言,也可以选择汇编语言,二者都有一定的优缺点
便,而且对其进行修改也不困难。所谓汇编语言本质上是一种机器形式的语言,受限


