基于单片机的电风扇温控调速系统设计
- 格式:doc
- 大小:320.11 KB
- 文档页数:8
基于单片机的电风扇模拟控制系统设计一、引言电风扇是现代生活中常见的家用电器之一,它的使用方便、功能多样,深受人们喜爱。
随着科技的发展,基于单片机的电风扇控制系统逐渐成为研究的热点。
本文将介绍一种基于单片机的电风扇模拟控制系统设计,旨在提供一个可靠、智能的电风扇控制方案。
二、系统设计1. 系统框架基于单片机的电风扇模拟控制系统主要由单片机、传感器、电机驱动电路、显示器和按键等组成。
其中,单片机充当控制中心的角色,传感器用于采集环境参数,电机驱动电路用于控制电机的转速,显示器和按键用于用户与系统进行交互。
2. 传感器选择传感器的选择对于系统的精确性和稳定性至关重要。
在电风扇控制系统中,常用的传感器有温度传感器和湿度传感器。
温度传感器用于检测环境温度,湿度传感器用于检测环境湿度。
根据不同的需求,可以选择合适的传感器进行使用。
3. 单片机编程单片机是系统中的核心部件,其编程决定了整个系统的功能和性能。
在电风扇控制系统中,单片机需要实现以下功能:- 读取传感器采集到的温度和湿度数据;- 根据设定的温度和湿度阈值,控制电机的转速;- 实时显示温度、湿度和电机转速等信息;- 通过按键进行系统设置和操作。
4. 电机驱动电路电机驱动电路用于控制电机的转速。
常用的电机驱动电路有直流电机驱动电路和交流电机驱动电路。
根据不同的电机类型,选择适合的驱动电路。
在电风扇控制系统中,一般采用直流电机,因此需要设计一个合适的直流电机驱动电路。
5. 显示器和按键显示器和按键用于用户与系统进行交互。
显示器可以显示当前环境的温度、湿度和电机转速等信息,按键则可以用于设置温度和湿度阈值以及控制电机的开关。
合理设计显示器和按键的布局和界面,使用户操作方便,信息清晰。
三、系统优势1. 智能化控制基于单片机的电风扇模拟控制系统可以根据环境的温湿度变化自动调节电机的转速,实现自动控制。
用户只需设定好温湿度阈值,系统会自动根据环境参数进行调节,提供舒适的使用体验。
基于单片机温控风扇的设计
本文介绍的是基于单片机控制的温控风扇的设计。
该设计通过测量环境温度,实现根据温度变化自动控制风扇转速的功能。
该系统由单片机控制模块、温度传感器、风扇和电源组成。
单片机控制模块通过读取温度传感器的信号,判断当前环境温度,并根据预设的温度范围来控制风扇转速。
在设计中,温度传感器选用了常用的NTC热敏电阻,通过改变电阻值来反映温度变化。
风扇则采用了PWM控制电路,实现精确控制风扇转速的功能。
在实际使用中,用户可以根据需求设置风扇转速与温度之间的关系。
当环境温度超过设定的上限值时,风扇将自动启动,并以适当的转速来降低环境温度。
在温度恢复到预设范围内时,风扇将自动停止运转,以达到节能的目的。
总的来说,基于单片机温控风扇的设计具有可靠性高、精度高、使用方便等优点,可广泛应用于各种需要自动温控的场合。
- 1 -。
基于51单片机的智能温控风扇系统的设计题目:基于51单片机的智能温控风扇系统的设计一、需求分析在炎热的夏天人们常用电风扇来降温,但传统电风扇多采用机械方式进行控制,存在功能单一,需要手动换挡等问题。
随着科技的发展和人们生活水平的提高,家用电器产品趋向于自动化、智能化、环保化和人性化,使得智能电风扇得以逐渐走进了人们的生活中。
智能温控风扇可以根据环境温度自动调节风扇的启停与转速,在实际生活的使用中,温控风扇不仅可以节省宝贵的电资源,也大大方便了人们的生活。
二、系统总体设计1、硬件本系统由集成温度传感器、单片机、LED数码管、及一些其他外围器件组成。
使用89C52单片机编程控制,通过修改程序可方便实现系统升级。
系统的框图结构如下:图1-1硬件系统框图其中,单片机为STC89C52,这个芯片与我开发板芯片相同,方便拷进去程序。
晶振电路和复位电路为单片机最小系统通用设置,温度采集电路,使用的是DS18B20芯片,数码管使用的是4位共阳数码管,风扇驱动芯片使用的是L298N,按键为按钮按键,指示灯为发光二级管。
2、软件要实现根据当前温度实时的控制风扇的状态,需要在程序中不时的判断当前温度值是否超过设定的动作温度值范围。
由于单片机的工作频率高达12MHz,在执行程序时不断将当前温度和设定动作温度进行比较判断,当超过设定温度值范围时及时的转去执行超温处理和欠温处理子程序,控制风扇实时的切换到关闭、低速、高速三个状态。
显示驱动程序以查七段码取得各数码管应显数字,逐位扫描显示。
主程序流程图如图4-1所示。
图1-2软件系统框图这是该系统主程序的运行流程,当运行时,程序首先初始化,然后调用DS18B20初始化函数,然后调用DS18B20温度转换函数,接着调用温度读取函数,到此,室内温度已经读取,调用按键扫描函数这里利用它设置温度上下限,然后就是调用数码管显示函数,显示温度,之后调用温度处理函数,再调用风扇控制函数使风扇转动。
基于单片机的智能温控风扇系统设计一、本文概述随着科技的快速发展,智能家居系统在人们的日常生活中扮演着越来越重要的角色。
其中,智能温控风扇系统作为智能家居的重要组成部分,通过自动调节风速和温度,为用户提供舒适的室内环境。
本文旨在探讨基于单片机的智能温控风扇系统的设计与实现。
本文首先介绍了智能温控风扇系统的背景和意义,阐述了其在现代家居生活中的重要性和应用价值。
接着,文章详细分析了系统的总体设计方案,包括硬件平台的选择、软件编程的思路以及温度控制算法的实现。
在此基础上,文章还深入探讨了单片机在智能温控风扇系统中的应用,包括单片机的选型、外设接口的设计以及控制程序的编写。
文章还注重实际应用的可行性,对智能温控风扇系统的硬件电路和软件程序进行了详细的说明,包括电路原理图的设计、元器件的选择以及程序的调试过程。
文章对系统的性能和稳定性进行了测试和分析,验证了系统的有效性和可靠性。
通过本文的阐述,读者可以全面了解基于单片机的智能温控风扇系统的设计和实现过程,为相关领域的研究和应用提供参考和借鉴。
本文也为智能家居系统的发展提供了新的思路和方法。
二、系统总体设计智能温控风扇系统的设计旨在实现根据环境温度自动调节风扇转速的功能,从而提高使用的舒适性和能源效率。
整个系统以单片机为核心,辅以温度传感器、电机驱动模块、电源模块以及人机交互界面等组成部分。
在总体设计中,首先需要考虑的是硬件的选择与配置。
单片机作为系统的核心控制器,需要选择运算速度快、功耗低、稳定性高的型号。
温度传感器则选用能够精确测量环境温度、响应速度快、与单片机兼容的型号。
电机驱动模块负责驱动风扇电机,需要选择能够提供足够驱动电流、控制精度高的模块。
电源模块需要为整个系统提供稳定可靠的电源。
人机交互界面则用于显示当前温度和风扇转速,同时提供用户设置温度阈值的接口。
在软件设计上,系统需要实现温度数据的采集、处理与传输,风扇转速的控制,以及人机交互界面的管理等功能。
基于51单片机的温控风扇毕业设计温控风扇基于51单片机的毕业设计一、引言随着科技的不断进步,人们对于生活品质的要求也越来越高。
在夏季高温天气中,风扇成为了人们不可或缺的家用电器。
然而,传统的风扇常常不能够根据环境温度自动调节风速,给人们带来了一定的不便。
因此,设计一个基于51单片机的温控风扇成为了一项有意义的毕业设计。
二、设计目标本设计的目标是实现一个自动调节风速的温控风扇系统,通过测量周围环境的温度来调节风扇的风速,使风扇在不同温度下达到最佳工作效果,提高舒适度和节能效果。
三、硬件设计1.51单片机:采用AT89S52单片机作为主控制器,该单片机具有较强的性能和丰富的外设资源,能够满足本设计的需求。
2.温度传感器:采用DS18B20数字温度传感器,具有高精度和简单的接口特点。
3.风扇控制电路:通过三极管和可变电阻来控制风扇的转速,根据温度传感器的输出值来调节电阻的阻值,从而实现风扇的风速调节。
四、软件设计1.硬件初始化:包括对温度传感器和风扇控制电路的初始化设置。
2.温度检测:通过DS18B20传感器读取环境温度的值,并将其转换为数字量。
3.风速控制:根据不同的温度值,通过控制电阻的阻值来调整风扇的风速,从而实现风速的自动调节。
4.显示界面:通过LCD显示器将当前温度值和风速等信息显示出来,方便用户了解当前状态。
五、系统测试及结果分析经过对系统的调试和测试,可以发现该温控风扇系统能够根据环境温度自动调节风速。
当环境温度较低时,风扇转速较低,从而降低能耗和噪音;当环境温度较高时,风扇转速会自动提高,以提供更好的散热效果。
六、结论通过对基于51单片机的温控风扇系统的设计和测试,可以得到以下结论:1.该系统能够根据环境温度自动调节风速,提高舒适度和节能效果。
2.通过LCD显示界面,用户可以方便地了解当前温度和风速等信息。
3.本设计的目标已得到满足,具备一定的实用和推广价值。
七、展望在未来的研究中,可以进一步优化该温控风扇系统,例如添加遥控功能、改进风扇控制电路的效率等,以提高用户体验和系统的整体性能。
《基于单片机的多功能自动调温风扇系统设计》篇一一、引言随着人们对生活品质的要求不断提高,家用电器也向着多功能、智能化方向发展。
本文设计了一种基于单片机的多功能自动调温风扇系统,该系统不仅能够实现传统风扇的调速、定向等功能,还能根据环境温度自动调节风速和风向,以满足用户在不同环境下的需求。
二、系统设计概述本系统以单片机为核心控制器,通过温度传感器实时监测环境温度,根据预设的温度范围自动调节风扇的转速和风向。
同时,系统还具有手动控制功能,用户可以根据自己的需求对风扇进行调节。
此外,系统还具有定时开关机、睡眠模式等附加功能,以满足用户多样化的需求。
三、硬件设计1. 单片机控制器:本系统采用STC12C5A60S2单片机作为核心控制器,其具有高性能、低功耗、易于编程等优点。
2. 温度传感器:采用DS18B20数字温度传感器,其具有测量精度高、抗干扰能力强等特点。
3. 电机驱动模块:采用电机驱动芯片驱动风扇电机,实现风扇的调速和定向功能。
4. 显示模块:采用LCD显示屏,用于显示当前环境温度、风扇转速和风向等信息。
5. 其他辅助电路:包括电源电路、复位电路、按键电路等。
四、软件设计1. 主程序流程:系统上电后,首先进行初始化设置,然后进入主循环。
在主循环中,不断读取温度传感器的数据,根据数据调节风扇的转速和风向。
同时,根据用户的按键操作或定时任务执行相应的功能。
2. 温度控制算法:本系统采用PID(比例-积分-微分)控制算法对风扇的转速进行控制。
根据环境温度与设定温度的差值,计算风扇的转速调整量,以达到快速、准确地调节环境温度的目的。
3. 定时任务与睡眠模式:系统支持定时开关机功能,用户可以设置风扇在特定时间自动开启或关闭。
此外,系统还具有睡眠模式功能,在用户设定的时间段内自动降低风扇的转速和亮度,以达到节能降耗的目的。
五、功能实现1. 自动调温功能:系统通过温度传感器实时监测环境温度,当环境温度高于设定温度时,自动增加风扇转速;当环境温度低于设定温度时,自动降低风扇转速。
基于51单片机的温控风扇设计温控风扇是一种能够根据环境温度自动调节风速的风扇。
其设计基于51单片机,通过测量环境温度,并根据设定的温度范围控制风扇的转速。
本文将详细介绍基于51单片机的温控风扇设计。
我们需要准备以下硬件材料:1. 51单片机开发板2. 温度传感器3. 风扇4. 继电器模块5. MAX232芯片6. PC串口线在硬件准备完成后,我们需要进行以下步骤:1. 连接硬件:将温度传感器连接到51单片机的模拟输入引脚,将风扇连接到继电器模块,并将继电器模块连接到51单片机的数字输出引脚。
2. 连接电脑:使用MAX232芯片将51单片机的串口引脚连接到电脑的串口引脚上,以便进行程序的下载和调试。
3. 编写程序:使用C语言编写51单片机的程序,实现温度传感器的读取和风扇的控制。
我们需要初始化单片机的IO口和ADC模块,并设置串口通信。
然后,编写一个循环程序,在主循环中不断读取温度传感器的数值,并根据设定的温度范围控制风扇的转速。
4. 下载程序:使用单片机下载器将编写好的程序下载到51单片机的内部存储器中。
5. 调试程序:将51单片机与电脑进行连接,通过串口调试工具进行调试。
我们可以通过串口工具查看温度传感器的实时数值,并根据实际情况修改程序中的温度范围。
然后,通过串口工具发送控制指令到51单片机,观察风扇的转速是否符合预期。
6. 测试和优化:将温控风扇放置在不同的环境下进行测试,观察风扇是否能够根据环境温度自动调节转速。
根据测试结果,我们可以优化程序中的温度范围和风扇转速的控制算法,以提高温控风扇的性能。
基于51单片机的温控风扇设计可以在实际生活中广泛应用,例如用于机房散热、电器设备散热等场合。
通过合理的温度控制,可以有效延长设备的使用寿命,并提高设备的稳定性和安全性。
这种设计还具有简单、可靠、成本低等优点。
基于单片机的智能温控风扇设计
简介:本设计旨在利用单片机技术实现智能温控风扇系统,通过测量环境温度并根据预设的温度阈值自动调节风扇的转速,以达到舒适的室内温度。
设计要求:
1. 硬件设计:选择适当的单片机开发板和传感器,能够测量环境温度并输出相应的控制信号给风扇。
2. 温度检测:使用温度传感器实时测量环境温度,并将数据传输给单片机进行处理。
3. 控制逻辑:设计合理的控制算法,通过单片机对温度数据进行处理,判断是否需要调节风扇的转速。
4. 风扇控制:根据控制逻辑的结果,通过单片机控制风扇的转速,可以采用PWM(脉宽调制)技术控制风扇速度。
5. 用户界面:设计友好的用户界面,使用户能够设定温度阈值和其他参数,同时显示当前温度和风扇状态等信息。
拓展要求:
1. 温度补偿:考虑环境温度对传感器的影响,设计温度补偿算法提高测量准确性。
2. 风扇速度调节:根据温度差异的大小,设计风扇转速的连续调节策略,以避免频繁启停。
3. 报警功能:当环境温度超过设定的安全范围时,通过警报或其他方式提醒用户。
4. 能耗优化:设计合理的功耗管理策略,尽可能降低系统的能耗。
5. 远程监控:通过无线通信模块(如Wi-Fi或蓝牙)实现远程监控和控制功能,使用户能够通过手机或电脑远程操作风扇系统。
注意事项:
1. 设计应考虑系统的稳定性、可靠性和安全性。
2. 设计过程中需考虑电路设计、软件编程和用户界面设计等方面的问题。
3. 设计完成后,应进行测试和验证,确保系统功能正常并满足设计要求。
基于51单片机的温控风扇设计随着科技的不断发展,智能化、自动化成为了人们生活中不可或缺的一部分。
温控风扇作为家居生活中常见的电器之一,能够根据环境温度的变化来智能调节风速,为人们提供清爽的空气,方便舒适。
在温控风扇的设计中,单片机技术应用广泛,通过单片机可以实现风扇与温度的精准控制,提高了风扇的智能化水平和能效。
本文将介绍基于51单片机的温控风扇设计,旨在帮助读者了解温控风扇的工作原理以及基于单片机的设计原理。
一、温控风扇的原理概述温控风扇的设计原理主要是通过传感器检测环境温度,然后通过单片机控制风扇的转速,实现温度与风速的智能匹配。
基本的原理可以分为以下几个部分:1.传感器测温:常见的温度传感器有NTC热敏电阻、DS18B20数字温度传感器等,通过这些传感器可以实时感知环境温度的变化。
2.信号处理:传感器感知到的温度信号需要经过一定的信号处理,将模拟信号转化为数字信号,便于单片机的控制。
3.控制算法:单片机通过接收传感器的数字信号,利用控制算法进行计算和判断,从而决定风扇的转速。
4.驱动电路:单片机通过数字输出口控制驱动电路,调节风扇的转速。
基于以上原理,我们可以设计出一款基于51单片机的温控风扇系统,能够智能地根据环境温度调节风扇的转速,实现舒适的风冷效果。
1.硬件设计(1)传感器选择:在温控风扇设计中,常见的温度传感器有NTC热敏电阻和DS18B20数字温度传感器。
NTC热敏电阻价格低廉,精度较高,适合家用电器的温控应用。
DS18B20数字温度传感器在通信接口方面更加灵活,支持多个传感器在一条总线上工作,更适合复杂环境的温度监测。
(2)单片机选择:常用的51单片机有STC89C52、AT89S52等,在这里我们以STC89C52为例。
STC89C52具有丰富的外设资源,适合嵌入式系统的设计,成本较低,是家庭电器控制系统的理想选择。
(3)驱动电路设计:温控风扇通常采用交流电机或直流电机,驱动电路设计需根据具体的电机类型和功率进行选择,一般采用晶闸管调速电路或者直流电机驱动芯片。
基于单片机的多功能自动调温风扇系统设计随着科技的不息进步,人们对生活品质的要求也越来越高。
在炎热的夏季,风扇是人们最常使用的电器之一。
然而,传统的风扇无法依据室内温度自动调整风速,使得使用者需要不息手动调整风速以维持舒适的温度。
基于这个问题,我们设计了一种基于单片机的多功能自动调温风扇系统。
该系统由温度传感器、单片机、电机控制器和风扇组成。
温度传感器被安装在室内特定位置,可以实时感知室内的温度变化。
单片机是整个系统的核心,负责接收传感器传来的温度信号,并依据事先设定的温度范围来自动调整风扇的转速。
电机控制器负责向风扇传递控制信号,实现风速的调整。
该系统除了自动调整风速外,还具有许多其他功能。
起首,该系统可以依据室内温度变化,自动选择不同的工作模式。
在持续高温的状况下,系统可以自动切换到强风模式,提供更大的风力以降低室内温度。
其次,系统还可以设定定时开关机功能,依据用户的需求来自动开启或关闭风扇。
这样不仅便利了用户,还能节约能源。
此外,系统还可以通过手机APP或者遥程控制器实现遥程操作,为用户提供更多便利。
在详尽设计中,我们起首完成硬件方面的设计。
依据系统需求,选择合适的温度传感器、单片机和电机控制器。
通过电路毗连各个硬件组件,并编写相应的控制程序,实现温度传感器的实时读数和单片机对电机控制器进行控制。
然后,我们进行软件方面的设计。
通过编程语言,实现单片机和传感器的数据交互,以及与电机控制器的通信。
最后,对整个系统进行调试和优化,确保其稳定可靠的运行。
在实际应用中将具有巨大的潜力和市场需求。
该系统不仅能够提高生活品质,给用户带来更好的体验,同时也能够节约能源,缩减对环境的影响。
此外,该系统还具备可扩展性,可以依据用户需求增加更多的功能模块,如风速调整、空气净化等,以满足用户个性化需求。
综上所述,能够满足人们对于舒适生活的需求。
它不仅实现了风速的自动调整,还具备定时开关机、遥程控制等多种功能。
该系统的设计与实现为我们提供了一个有效的手段,使我们能够在炎热的夏季中更好地享受室内凉爽的环境,提高生活品质。
基于单片机的多功能自动调温风扇系统设计一、引言随着现代化生活水平的提高,人们对室内温度的要求越来越高。
为了保持室内环境的舒适度,传统的风扇已经无法满足人们的需求。
为此,本文将设计一种基于单片机的多功能自动调温风扇系统,以满足人们对温度控制的需求。
二、设计原理本系统的主要原理是通过温度传感器实时采集室内温度信号,并与预设温度进行比较,根据比较结果控制风扇的开关,并调节风速以达到室温控制的目的。
1. 硬件设计系统的硬件设计主要包括温度传感器、单片机、继电器和风扇。
温度传感器用于采集室内温度信号,单片机用于处理信号,并控制继电器的状态,从而控制风扇的工作与否。
继电器用于控制风扇的通电,风扇用于调节室内温度。
2. 软件设计系统的软件设计主要包括温度采集与处理、控制逻辑和风速调节三个部分。
温度采集与处理部分负责采集温度传感器信号并进行处理,将温度值转化为数字量。
控制逻辑部分根据预设温度和实时采集的温度值进行比较,并控制继电器的状态。
风速调节部分根据室内温度与预设温度的差值来调节风扇的转速,实现室内温度的稳定控制。
三、系统设计与实现过程1. 硬件设计与实现根据系统设计原理,我们选择了DS18B20温度传感器、STC89C52单片机、5V继电器和DC风扇作为系统硬件组成。
首先,将DS18B20温度传感器连接到单片机的IO口,并通过单片机的串行通信协议将温度值读取到单片机中。
然后,将单片机的IO口与继电器连接,通过控制IO口的高低电平实现继电器的打开与关闭。
最后,将继电器与风扇连接,通过继电器的打开与关闭来控制风扇的工作与否。
2. 软件设计与实现根据软件设计原理,我们使用Keil C编程语言进行开发。
首先,编写温度采集与处理的代码,使用单片机的串行通信协议读取温度传感器的数值,并进行数据转换。
然后,编写控制逻辑的代码,根据实时采集到的温度值和预设温度进行比较,并通过控制IO口来控制继电器的状态。
最后,编写风速调节的代码,根据室内温度与预设温度的差值来调节风扇的转速。
基于51单片机的温控风扇设计
温控风扇设计是一种能够根据环境温度自动调节风扇转速的系统。
本文将介绍一个基于51单片机的温控风扇设计,主要包括硬件设计和软件设计两个方面。
硬件设计:
1.温度传感器:选择一款适合的温度传感器,如DS18B20,它具有数字输出和较高的精度。
2.单片机:选择一款51单片机,如STC89C52,它有足够的I/O端口和定时器功能。
3.风扇:选择一款适合的风扇,根据所需风量和电压确定。
4.驱动电路:根据风扇的电压和电流要求设计一个驱动电路,常用的是三极管驱动电路或者MOSFET驱动电路。
软件设计:
1.初始化:设置单片机的工作模式和参数,包括定时器初始化、IO 口初始化等。
2.温度读取:使用单片机的IO口读取温度传感器输出的数据,将其转化为温度值。
3.控制算法:根据当前温度值和设定的温度阈值,设计一个控制算法来确定风扇的转速。
常用的控制算法有比例控制、PID控制等。
4.输出控制:根据控制算法的结果,通过单片机的IO口控制驱动电路,调节风扇的转速。
5.循环运行:将以上步骤放入一个循环中,使其不断地读取温度并控制风扇的转速。
除了以上基本的硬件和软件设计,还可以添加一些其他功能来提升系统的性能和灵活性,如:
1.温度显示:在单片机的LCD显示屏上显示当前温度值。
2.报警功能:当温度超过设定的阈值时,通过蜂鸣器或者LED灯进行报警。
3.调节参数:设计一个菜单系统,允许用户调节温度阈值或者其他参数。
总之,基于51单片机的温控风扇设计是一种简单实用的系统,通过合理的硬件和软件设计能够实现自动调节风扇转速的功能,提高设备的使用效率和稳定性。
基于STC89C52单片机的温控风扇系统设计1功能本设计为一种温控风扇系统,具有灵敏的温度感测和显示功能,系统选用STC89C52里左机作为控制平台对风扇转速进行控制。
可在测得温度值在高低温度之间时打开风扇弱风档,当温度升高超过所设定的温度时自动切换到大风档,当温度小于所设定的温度时自动关闭风扇,控制状态随外界温度而定。
2.硬件设计硬件电路主要由:1.单片机最小系统2.风扇驱动电路3.1CD1602显示屏电路4.DS18B20温度采集电路3.程序设计(1)1CDI602驱动程序^define1CD1602_DBPOsbit1CD1602RS=P2^0;sbit1CD1602RW=P2」;sbit1CD1602_E=P2^2;∕*等待液晶准备好*/void1cdWaitReady()(unsignedcharsta;1CD1602DB=OxFF;1CD1602RS=0;1CD1602RW=1;do{1CD1602_E=1;sta=1CD1602_DB;〃读取状态字1CD1602_E=0;}whi1e(sta&0x80);〃bit7等于1表示液晶正忙,重复检测直到其等于0为止}/*向1CDI602液晶写入一字节命令,Cmd-待写入命令值*/void1cdWriteCmd(unsignedcharcmd){1cdWaitReadyO;1CD1602_RS=0;1CD1602_RW=0;1CD1602_DB=cmd;1CD1602_E=1;1CD1602_E=O;∕*向1CDI602液晶写入一字节数据,dat-待写入数据值*/void1cdWriteDat(unsignedchardat)1cdWaitReadyO;1CD1602_RS=1;1CD1602_RW=0;1CD1602_DB=dat;1CD1602_E=1;1CD1602_E=0;∕*设置显示幽起始地址,亦即光标位置,(x,y)-对应屏幕上的字符坐标*/void1cdSetCursor(unsignedcharx,unsignedchary)unsignedCharaddr;if(y==O)//由输入的屏幕坐标计算显示RAM的地址addr=OxOO+x;〃第一行字符地址从OXOO起始e1seaddr=0x40+x;〃第二行字符地址从0x40起始1cdWriteCmd(addrI0x80);〃设置RAM地址}/*在液晶上显示字符串,(x,y)-对应屏幕上的起始坐标,St1字符串指针*/void1cdShowStr(unsignedcharx,unsignedchary,unsignedchar*str)1cc1SetCursor(x,y);〃设置起始地址whi1e(*str!='O')〃连续写入字符串数据,直到检测到结束符(1cdWriteDat(*str++);))/*初始化1602液晶*/voidInit1cd1602(){1cdWriteCmd(0x38);〃16*2显示,5*7点阵,8位数据接口1cdWriteCmd(OxOc);〃显示器开,光标关闭1cdWriteCmd(0x06);〃文字不动,地址自动+11cdWriteCmd(OxO1);〃清屏}(2)DS18B20驱动程序sbitI0-18B20=P3Λ2;I软件延时函数,延时时间C1O)us*/voidDe1ayX1Ous(unsignedchart){do{-∏θP-();-∏θP-();-∏θP-();∏0P-();-∏θP-();-∏θP-();-∏θP-();_nop_();}whi1e(一t);)/复位总线,获取存在脉冲,以启动一次读写操作/ bitGet18B20Ack()(bitack;EA=O;〃禁止总中断I0_18B20=0;〃产生500US复位脉冲De1ayX1Ous(50);I0_18B20=1;De1ayX1Ous(6);〃延时60USack=I0.18B20;〃读取存在脉冲WhiIe(!IOJ8B20);〃等待存在脉冲结束EA=I;〃重新使能总中断returnack;}/向DS18B2O写入一个字节,dat-待写入字节/voidWrite18B20(unsignedchardat)unsignedcharmask;EA=O;for(maSk=OXO1;mask!=0;mask〈〈=1)〃低位在先,依次移出8个bit {IO」8B20=0;〃产生2us低电平脉冲-∏0P-();nop_();if((mask&dat)==0)〃输出该bit值I0_18B20=0;e1seI0_18B20=1;De1ayX1Ous(6)〃/延时60usIO18B20=1”/拉高通信引脚}EA=I;}/从DS18B20读取一个字节,返回值-读到的字节/unsignedcharRead18B20()(unsignedchardat;unsignedcharmask;EA=O;for(mask=0x01imask!=CHmask<<=1)”低位在先,依次采集8个bit I0」8B20=0;〃产生2us低电平脉冲-∏0P-();-∏0P-();I0」8B20=1;〃结束低电平脉冲,等待18B20输出数据nop_();〃延时2us-∏θP-();if(!IO_18B20)//读取通信引脚上的值dat&=~mask;e1sedatI=mask;De1ayX1Ous(6);//再延时60us)EA=I;returndat;)/启动一次18B20温度转换,返回值-表示是否启动成功/bitStart18B20()(bitack;ack=Get18B20Ack();〃执行总线复位,并获取18B20应答if(ack==0)(Write18B20(Oxcc);Write18B20(0x44);return~ack;/读取DS18B20转换的温度值,返回值-表示是否读取成功/bitGet18B20Temp(int*temp)(bitack;unsignedchar1SB,MSB∕∕16bit温度值的低字节和高字节ack=Get18B20Ack();〃执行总线复位,并获取18B20应答if(ack==0)(Write18B20(OxCC);〃跳过R0M操作Write18B20(OxBE);〃发送读命令1SB=Read18B20();〃读温度值的低字节MSB=Read18B20();〃读温度值的高字节*temp=((int)MSB<<8)+1SB;〃合成为16bit整型数}return~ack;)(3)主程序sbitIN1=P27;sbitIN2=P2A6;sbitENA=P2";bitfIag1s=O;〃IS定时标志unsignedcharTORH=O;unsignedcharTOR1=O;i∏ttemp;〃读取到的当前温度值unsignedcharIen;intintT,decT;〃温度值的整数和小数部分unsignedcharstr[12];voidCompare();voidGetTempO;voidConfigTimerO(unsignedintms);unsignedcharIntToString(unsignedchar*str,intdat);externbitStart18B20();externbitGet18B20Temp(int*temp);externvoidInit1cd1602();externvoid1cdShowStr(unsignedcharx,unsignedchary,unsignedchar*str);voidmainO{bitres;EA=I;ConfigTimerO(IO);//T0定时IOmsStart18B20();〃启动DS18B20Init1cd1602();〃初始化液晶whi1e(1)if(f1ag1s)〃每秒更新一次温度fIag1s=O;res=Get18B2OTemp(&temp);〃读取当前温度if(res)〃读取成功时,刷新当前温度显示(GetTemp();1cdshowStr(θz o,''We1cometouse〃);〃显示字符及温度值1cc1ShowStr(0,1/'CurrentT:〃);1cdShowStr(10,1,str);Compare();}e1se〃读取失败时,提示错误信息(1cdShowStr(0,0,^error!〃);)Start18B20();〃重新启动下一次转换)}}/温度获取函数,获取当前环境温度值并保存在Str数组中/ voidGetTempO{intT=temp>>4;〃分离出温度值整数部分decT=tempMxOF;〃分离出温度值小数部分Ien=IntToString(str,intT);〃整数部分转换成字符串str[1en++]=,.,;CIeCT=(C1eCT*10)/16;〃二进制的小数部分转换为1位十进制位str[1en++]=decT+'0';〃十进制小数位再转换为ASCI1字符WhiIe(ICn<6)〃用空格补齐到6个字符长度(str[1en++]≈,,;)str[Ien++]=,❷';)/延时函数,用于PW/控制/voidde1ay(unsignedintz)(unsignedintx,y;for(x=z;x>0;x-)for(y=110;y>0;y--);)/比较函数,通过温度值的比较设置曳血的转速/voidCompareO(unsignedinti=0;unsignedcharj;if((intT>=24)&&(intT<26))〃以两度为一个温差范围,并设温度范围索引j=0;e1seif((intT>=26)M(intT<28)){J=I;)e1seif((intT>=28)&&(intT<30)){j=2;}e1seif(intT>=30){j=3;)switch(j)〃根据温度索引设置电机转速(case0:IN1=I;IN2=0;for(i=0;i<200;i++){ENA=I;de1ay(20);ENA=O;de1ay(30);break;1:IN1=I;IN2=0;for(i=0;i<200;i÷+)(ENA=I;de1ay(30);ENA=0;de1ay(30);)break;case2:IN1=1;IN2=0;for(i=0;i<200;i÷+){ENA=I;de1ay(55);ENA=O;de1ay(30);}break;case3:IN1=I;IN2=0;ENA=I;break;defau1t:break;/整型数转换为字符串,St1字符串指针,dat-待转换数,返回值-字符串长度/unsignedcharIntToString(unsignedchar*str,intdat)(signedchari=0;unsignedcharIen=O;unsignedcharbuf[6];if(dat<O”/如果为负数,首先取绝对值,并在指针上添加负号{dat=-dat;*str++≡,」;Ien++;}do{〃先转换为低位在前的十进制数组buf[i++]=dat%10;dat/=10;}whi1e(dat>O);Ien+=i;//i最后的值就是有效字符的个数\vhi1e(i—>0)〃将数组值转换为ASCI1码反向拷贝到接收指针上StΓ++=buf[i]÷,Q,;*str≡,❷';returnIen;}voidConfigTimerθ(unsignedintms){unsigned1ongtmp;tmp=11059200/12;tmp=(tmp*ms)∕1000;tmp=65536-tmp;tmp=tmp+12;TORH=(unsignedchar)(tmp>>8); TOR1=(unsignedchar)tmp;TMOD&=OxFO;TMOD∣=0x01;THO=TORH;T1O=TOR1;ETO=I;TRO=I;)voidInterrupt!imerθOinterrupt1static unsignedchartmr1s=0; THO=TORH;T1O=TOR1;tmr1s++;if(tmr1s>=100)(tmr1s=O;fIag1s=I; ))。
基于51单片机的温控风扇设计一、引言随着科技的不断发展,人们对生活品质的要求也在不断提高,对于室内温度的控制更是成为了人们生活中的重要问题。
在夏季炎热的天气中,难以忍受的高温和闷热让人们倍感不适,设计一款温控风扇成为了解决这一问题的一种有效途径。
本文基于51单片机,通过传感器检测室内温度,并设计相应的控制电路,实现了一款智能温控风扇。
在室内温度高于设定值时,风扇会自动启动并调节风速,有效降低室内温度,为人们带来了清凉与舒适。
下面将详细介绍该温控风扇的设计过程。
二、硬件设计1. 传感器选择由于温控风扇的核心是温度检测,因此需要一个高精度的温度传感器。
在本设计中,选择了DS18B20数字温度传感器。
该传感器具有精度高、稳定性好、成本低等特点,非常适合用于温控风扇的设计。
2. 电机与风扇设计本设计采用了直流无刷电机驱动模块,结合蜂鸣器实现了风扇的自动启停功能。
对电机进行了外壳设计,并在设计中考虑了风扇的散热问题,确保了风扇的安全性和稳定性。
3. 电路设计在本设计中,使用了51单片机作为控制核心,搭建了一个包括传感器、电机驱动模块、蜂鸣器等在内的完整电路。
还设计了可调节的电路板,方便后期对电路进行调整和维护。
三、软件设计1. 硬件初始化在软件设计中,首先进行了传感器的初始化,并对传感器进行了校准,以保证温度检测的准确性。
随后对电机驱动模块进行了初始化,设置了相关参数。
2. 温控算法设计本设计中采用了PID算法来进行温度控制。
PID算法是一种常见的控制算法,通过调节比例、积分和微分三个参数来实现温度的精确控制。
在本设计中,PID算法能够根据传感器检测到的温度信号,实时调节风扇的转速,以达到所需的温度控制效果。
3. 自动保护设计在软件设计中还加入了自动保护功能,当风扇出现异常情况时,比如转速过高或过载,系统能够自动切断电源,以保护电机和风扇不受损坏。
四、实验结果通过实际测试,本设计的温控风扇能够有效地检测室内温度,并根据设定的温度值自动启停风扇,调节风扇的转速。
基于单片机的电风扇温控调速系统设计摘要:本设计为一种温控电风扇调速系统,具有灵敏的温度测试和显示功能,系统以STC89C52 单片机作为控制平台对风扇转速进行控制,可选择由用户选择手动调速或自动调速。
在手动调速时自动调速系统不工作,在自动调速时由系统自动检测外界温度值并对电风扇转速做出相应调整,当温度低于温度设定的最低值时,控制电风扇自动关闭,当温度升到超过所设定的最大值时自动调速到最高挡,控制风速大小随外界温度而定。
关键词:自动控制单片机 DS18B20 电风扇引言:随着人们生活水平及科技水平的不断提高,现在家用电器在款式、功能等方面日益求精,并朝着健康、安全、多功能、节能等方向发展。
过去的电器不断的显露出其不足之处。
电风扇作为家用电器的一种,同样存在类似的问题。
现在电风扇的现状:大部分只有手动调速,再加上一个定时器,功能单一。
夏秋交替时节,白天温度依旧很高,电风扇应高转速、大风量,使人感到清凉;到了晚上,气温降低,当人入睡后,应该逐步减小转速,以免使人感冒。
虽然电风扇都有调节不同档位的功能,但必须要人手动换档,睡着了就无能为力了,而普遍采用的定时器关闭的做法,一方面是定时时间长短有限制,一般是一两个小时;另一方面可能在一两个小时后气温依旧没有降低很多,而风扇就关闭了,使人在睡梦中热醒而不得不起床重新打开风扇,增加定时器时间,非常麻烦,而且可能多次定时后最后一次定时时间太长,在温度降低以后风扇依旧继续吹风,使人感冒;第三方面是只有简单的到了定时时间就关闭风扇电源的单一功能,不能满足气温变化对风扇风速大小的不同要求。
之所以会产生这些隐患的根本原因是:缺乏对环境温度的检测。
为解决上述问题,我们设计了这套电风扇温控调速系统。
本系统采用高精度集成温度传感器DS18B20,用单片机控制,能做到实时温度显示,根据外界环境的温度自动作出小风、大风、关闭动作,灵敏度度高,动作准确。
1.系统总体功能描述及系统结构介绍本设计是以STC89C52单片机为控制中心,主要通过温度传感器DS18B20得到的温度以及内部定时器设定时间长短来控制电风扇的开关及转速的变化。
基于单片机的电风扇温控调速系统设计
摘要:
本设计为一种温控电风扇调速系统,具有灵敏的温度测试和显示功能,系统以STC89C52 单片机作为控制平台对风扇转速进行控制,可选择由用户选择手动调速或自动调速。
在手动调速时自动调速系统不工作,在自动调速时由系统自动检测外界温度值并对电风扇转速做出相应调整,当温度低于温度设定的最低值时,控制电风扇自动关闭,当温度升到超过所设定的最大值时自动调速到最高挡,控制风速大小随外界温度而定。
关键词:
自动控制单片机 DS18B20 电风扇
引言:
随着人们生活水平及科技水平的不断提高,现在家用电器在款式、功能等方面日益求精,并朝着健康、安全、多功能、节能等方向发展。
过去的电器不断的显露出其不足之处。
电风扇作为家用电器的一种,同样存在类似的问题。
现在电风扇的现状:大部分只有手动调速,再加上一个定时器,功能单一。
夏秋交替时节,白天温度依旧很高,电风扇应高转速、大风量,使人感到清凉;到了晚上,气温降低,当人入睡后,应该逐步减小转速,以免使人感冒。
虽然电风扇都有调节不同档位的功能,但必须要人手动换档,睡着了就无能为力了,而普遍采用的定时器关闭的做法,一方面是定时时间长短有限制,一般是一两个小时;另一方面可能在一两个小时后气温依旧没有降低很多,而风扇就关闭了,使人在睡梦中热醒而不得不起床重新打开风扇,增加定时器时间,非常麻烦,而且可能多次定时后最后一次定时时间太长,在温度降低以后风扇依旧继续吹风,使人感冒;第三方面是只有简单的到了定时时间就关闭风扇电源的单一功能,不能满足气温变化对风扇风速大小的不同要求。
之所以会产生这些隐患的根本原因是:缺乏对环境温度的检测。
为解决上述问题,我们设计了这套电风扇温控调速系统。
本系统采用高精度集成温度传感器DS18B20,用单片机控制,能做到实时温度显示,根据外界环境的温度自动作出小风、大风、关闭动作,灵敏度度高,动作准确。
1.系统总体功能描述及系统结构介绍
本设计是以STC89C52单片机为控制中心,主要通过温度传感器DS18B20得到的温度以及内部定时器设定时间长短来控制电风扇的开关及转速的变化。
本系统电路小巧方便,实用性、通用性强。
当要用手动调速时只需将执行设备从电风扇调速开关上取下即可由人工控制;在晚上需要选择自动调速时将调速
设备安装在调速开关上就可正常使用。
在自动调速时,随着温度传感器检测到外界温度的变化,单片机通过判断并发出指令控制由继电器和直流电机组成的执行模块,改变电风扇调速开关的旋转方向,使电风扇转速做出相应的调整。
当检测到外界温度低于最低预设值时,单片机发出关断指令将电风扇关闭,单片机处于休眠状态,当检测到外界温度升高时,系统将再次工作将电风扇打开到相应转速。
为做到实用、功耗低等特性,本系统摒弃了以往实时检测的弊端,采用每十分钟检测并控制调整一次的间歇式工作模式,大大延长了系统的工作寿命。
系统总体结构框图如图1所示,主要分为:检测输入、控制处理、温度显示及执行操作4大功能模块。
图1 系统框图
2.功能模块硬件简介与实现
系统主要部件包括DS18B20温度传感器、STC89C52单片机、四位LED 数码管、继电器、直流电动机和风扇。
辅助元件包括电阻、晶振、电源、电容、二极管、三极管和开关等。
2.1温度传感器
2.1.1温度传感器DS18B20简介
新型数字温度传感器DS18B20具有体积更小、精度更高、适用电压更宽、采用一线总线,在实际应用中取得了良好的测温效果,其管脚排列如图2所示,DQ 为数字信号端,GND 为电源地,VDD 为电源输入端。
DS18B20的主要特性:
(1)独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线
温度传感器DS18B20 单片机STC89C52
数码管显示
执行设备 +控制开关 被控对象(电风扇)
人工控制
C D E F
G
B A ROP
即可实现微处理器与DS18B20的双向通讯。
(2)测温温范围-55℃~+125℃ (3)最高分辨率为0.0625℃。
2.1.2 DS18B20的一般操作过程
(1)、初始化;
(2)、跳过ROM (命令:CCH ); (3)、温度变换(命令:44H ); (4)、读暂存存储器(命令:BEH ); 注:每次读取温度都要经过上面四个过程。
图2 DS18B20外形及管脚
2.2数码管显示电路
本系统的显示电路为4个八段共阴极数码管,共阴极数码管是将八段发光二极管封装在一起且二极管的阴极连在一起,原理图如图3所示,公共端接低电平,其它八个端口高电平点亮相应的二极管,低电平相反。
图3 共阴极数码管原理图
2.3继电器控制电路
2.3.1继电器简介
继电器是一种电子控制器件,它具有控制系统(又称输入回路)和被控制系统(又称输出回路),通常应用于自动控制电路中,它实际上是用较小的电流去控制较大电流的一种“自动开关”。
故在电路中起着自动调节、安全保护、转换电路等作用。
它有几个重要指标:
1、额定工作电压:正常工作时线圈所需要的电压。
2、直流电阻:继电器中线圈的直流电阻。
3、吸合电流:继电器能够产生吸合动作的最小电流。
4、释放电流:继电器产生释放动作的最大电流。
5、触点切换电压和电流:继电器允许加载的电压和电流。
2.3.2继电器驱动电路设计及工作原理简介
采用晶闸管也可以用于小电流控制大电流电路,但是其控制电路比较复杂,而采用继电器其控制电路就比较简单,且具有电气隔离作用。
虽然其响应速度没有晶闸管快但在低频情况下采用继电器控制电路较为方便。
其控制电路图如下4所示:
图4 继电器开关控制电路原理图
电路工作原理简介:当单片机控制端口为高电平时,三极管导通继电器吸合,
常闭触电断开,常开触点闭合。
当控制端口为低电平时三极管关断,继电器线圈通过二极管放电并断开,常闭、常开触电复位。
2.4 STC89C52 单片机简介
STC89C52 是一种带4K字节闪存可编程可擦除只读存储器(FPEROM)256B片内RAM的低电压,高性能CMOS8 位微处理器。
该器件采用ATMEL 高密度非易失存储器制造技术制造,与工业标准的MCS-51 指令集和输出管脚相兼容。
由于将多功能8 位CPU 和闪烁存储器组合在单个芯片中,ATMEL 的AT89C52 是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
STC89C52单片机管脚如图5所示。
图5 STC89C52单片机管脚
3 系统的总电路原理图介绍
本系统总电路图如图6所示,电路中温度传感器DS18B20通过P2^0与单片机通信;单片机的P0和P1口作为数码管电路输出;Q1、Q2、Q3三个继电器和电机组成执行电路,单片机的P2^2,P2^3,P2^4分别控制Q1、Q2、Q3,管脚为高电平时继电器吸合,当电机正转时需要Q1吸合,当电机反转时需要Q1、Q2、Q3同时吸合,通过控制继电器吸合时间来控制电机转动角度,由于电机和电风扇旋钮同轴相连,从而确定了电风扇旋钮的转动角度,达到控制电风扇转速的目的。
图6 总电路原理图
4.软件设计与实现
4.1整体设计思路介绍
软件设计整体思路:主程序开始部分进行一些初始化以及温度的读取和显示;定时器0进行继电器吸合时间控制、休眠时间控制等相关操作;在显示方面,在休眠期显示温度不改变,直至下一次温度数据在此检测有变化才进行重新刷新,从而达到显示温度与控制的电风扇转速相对应的目的。
4.2主程序流程图
图7 总程序流程图
主程序开始
显示温度
初始化内部资源
读取温度
温度处理
执行指令,定时器开
定时器关
休眠十分钟。