基于单片机的温控风扇的设计摘要温控风扇在现代社会中的生产以及人们的日常生活中都有广泛的应用,如工业生产中大型机械散热系统中的风扇、现在笔记本电脑上的广泛应用的智能CPU风扇等。
本文设计了基于单片机的温控风扇系统,采用单片机作为控制器,利用温度传感器DS18B20作为温度采集元件,并根据采集到的温度,通过一个达林顿反向驱动器ULN2803驱动风扇电机。
根据检测到的温度与系统设定的温度的比较实现风扇电机的自动启动和停止,并能根温度的变化自动改变风扇电机的转速,同时用LED八段数码管显示检测到的温度与设定的温度。
关键词:单片机、DS18B20、温控、风扇第一章整体方案设计1.1前言在现代社会中,风扇被广泛的应用,发挥着举足轻重的作用,如夏天人们用的散热风扇、工业生产中大型机械中的散热风扇以及现在笔记本电脑上广泛使用的智能CPU风扇等。
而随着温度控制技术的发展,为了降低风扇运转时的噪音以及节省能源等,温控风扇越来越受到重视并被广泛的应用。
在现阶段,温控风扇的设计已经有了一定的成效,可以使风扇根据环境温度的变化进行自动无级调速,当温度升高到一定时能自动启动风扇,当温度降到一定时能自动停止风扇的转动,实现智能控制。
随着单片机在各个领域的广泛应用,许多用单片机作控制的温度控制系统也应运而生,如基于单片机的温控风扇系统。
它使风扇根据环境温度的变化实现自动启停,使风扇转速随着环境温度的变化而变化,实现了风扇的智能控制。
它的设计为现代社会人们的生活以及生产带来了诸多便利,在提高人们的生活质量、生产效率的同时还能节省风扇运转所需的能量。
本文设计了由ATMEL公司的8052系列单片机AT89C52作为控制器,采用DALLAS公司的温度传感器DS18B20作为温度采集元件,并通过一个达林顿反向驱动器ULN2803驱动风扇电机的转动。
同时使系统检测到得环境温度以及系统预设的温度动态的显示在LED数码管上。
根据系统检测到得环境温度与系统预设温度的比较,实现风扇电机的自动启停以及转速的自动调节。
1.2系统整体设计本设计的整体思路是:利用温度传感器DS18B20检测环境温度并直接输出数字温度信号给单片机AT89C52进行处理,在LED数码管上显示当前环境温度值以及预设温度值。
其中预设温度值只能为整数方式,检测到的当前环境温度可精确到小数点后一位。
同时采用PWM脉宽调制方式来改变直流风扇电机的转速。
并通过两个按键改变预设温度值,一个提高预设温度,另一个降低预设温度值。
系统结构框图如下:结论本次设计的系统以单片机为控制核心,以温度传感器DS18B20检测环境温度,实现了根据环境温度变化调节不同的风扇电机转速,在一定范围能能实现转速的连续调节,LED数码管能连续稳定的显示环境温度和设置温度,并能通过两个独立按键调节不同的设置温度,从而改变环境温度与设置温度的差值,进而改变电机转速。
实现了基于单片机的温控风扇的设计。
本系统设计可推广到各种电动机的控制系统中,实现电动机的转速调节。
在生产生活中,本系统可用于简单的日常风扇的智能控制,为生活带来便利;
在工业生产中,可以改变不同的输入信号,实现对不同信号输入控制电机的转速,进而实现生产自动化,如在电力系统中可以根据不同的负荷达到不同的电压信号,再由电压信号调节不同的发电机转速,进而调节发电量,实现电力系统的自动化调节。
综上所述,该系统的设计和研究在社会生产和生活中具有重要地位。
附录2:程序代码#include#defineucharunsignedchar#defineuintunsignedintsbitDQ=P1^7;sbitkey1=P1^3;sbitkey2=P1^4;sbitdianji=P3^1;floatff;uinty3;ucharshi,ge,xiaoshu,sheding=20,gaonum,dinum;ucharcodedispcode[]={//段码0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};ucharcodetablel[]={//带小数点的段码0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};uchardispbitcode[]={//位选0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};uchardispbuf[8]={0,0,0,0,0,0,0,0};voidDe
2018/6/1 19:43:36 624KB 单片机 温度控制 风扇
1
CentOS7+,紧缩保证包含gcc\gcc-c++所有安装rpm包;
openssl包;
zlib包;
pcre的包以及nginx安装包,支持Linux下离线安装nginx如下:nginx-1.15.12.tar.gzopenssl-1.0.2r.tar.gzpcre-8.42.tar.gzzlib-1.2.11.tar.gzgcc组包cpp-4.8.2-16.el7.x86_64.rpmgcc-4.8.2-16.el7.x86_64.rpmgcc-c++-4.8.5-36.el7.x86_64.rpmglibc-2.17-55.el7.x86_64.rpmglibc-common-2.17-55.el7.x86_64.rpmglibc-devel-2.17-55.el7.x86_64.rpmglibc-headers-2.17-55.el7.x86_64.rpmglibc-static-2.17-55.el7.x86_64.rpmglibc-utils-2.17-55.el7.x86_64.rpmkernel-headers-3.10.0-123.el7.x86_64.rpmlibmpc-1.0.1-3.el7.x86_64.rpmlibstdc++-devel-4.8.5-36.el7.x86_64.rpmmpfr-3.1.1-4.el7.x86_64.rpm
2018/7/2 20:46:39 57.51MB nginx gcc gcc-c+ openss
1
st_asio_wrapper是一组类,功能是对boost.asio的包装(调试环境:boost-1.51.0),目的是简化boost.asio开发;
其特点是效率高、跨平台、完全异步,当然这是从boost.asio继承而来;
自动重连,数据透明传输,自动处理分包粘包问题(你可以像udp一样使用它);
注:只支持tcp协议;
教程:http://blog.csdn.net/yang79tao/article/details/77245141.1版更新内容:增加了自定义数据模式的支持,可用于st_asio_wrapperserver与其它客户端的通信、或者st_asio_wrapperclient与其它服务端的通信;
当然,两端都是st_asio_wrapper的话,就用透明传输即可(1.0版已经支持了)。
1.2版更新内容:修复BUG:当stop_service之后,再start_service时,client_base内部某些成员变量可能没有得到复位;
服务端增加修改监听地址功能,当然仍然要在start_service之前调用set_server_addr函数。
1.3版更新内容:增加自定义消息格式的发送,这个本来是在1.1版本实现的,结果我漏掉了,只实现了自定义消息格式的接收。
1.4版更新内容:将打包与解包器从client_base分离出来,以简化这个日益复杂的基类;
可以在运行时修改打包解包器。
1.5版更新内容:增加ipv6支持,默认是ipv4,服务端和客户端都通过设置一个ipv6的地址来开启这个功能;
增加了一些服务端helper函数,小改了一下客户端set_server_addr函数签名(调换了两个参数的位置以保持和服务端一样)。
1.6版更新内容:增加了接收消息缓存(改动较大,on_msg的语义有所变化,请看开发教程第三篇)。
1.7版更新内容:修复vc2010下编译错误;
修复默认解包器BUG(同时修改解包器接口);
修复log输出BUG;
更好的包装了服务端类库,现在服务端可以像客户端一样简单的使用了(完全不用继承或者重写虚函数,申请一个对象即可);
结构大调整,类名大调整,请参看开发教程第一篇。
1.8版更新内容:增加健壮性和稳定性;
退出服务更新优雅。
1.9版更新内容:提高代码通用性;
可以指定服务端同时投递多少个async_accept;
修复BUG,此BUG可能造成数据发送不完全。
2.0版更新内容:服务端增加对象池功能;
优化美化代码;
更规范化接口签名。
2015/10/13 15:38:36 16KB boost asio boost.asio asio_wrapper
1
本文档包含下述项目:第1章零碎分析 §1.1项目的要求、目标和环境 §1.1.1项目的要求 §1.1.2项目的目的 §1.1.3项目的环境 §1.2可行性分析 §1.2.1社会可行性分析 §1.2.2技术可行性分析 §1.2.3经济可行性分析 第2章需求分析 §2.1总体需求分析 §2.2零碎数据流图 §2.3数据字典 §2.3.1数据字典清单 §2.3.2外部实体 第3章概要设计 §3.1绘制零碎H图 §3.2绘制零碎软件的HIPO图 第4章详细设计 §4.1零碎功能详细设计 §4.2各功能程序流程图 第5章测试 §5.1测试环境 §5.2测试计划 §5.2.1零碎说明 §5.2.2测试策略 §5.2.3测试方案 §5.3黑盒测试 §5.3.1测试项目名称及测试内容 §5.3.2测试用例 第6章项目管理 §6.1绘制关键日期表 §6.2预览甘特图 §6.3预览网络图
1
合用型号:UC20UC15EC20UMTS/HSPA/LTE模块系列
2015/11/19 8:22:45 7.96MB 移远 驱动 UC20 UC15
1
第一章绪论1.1天体力学的发展简史与研究内容;
1.2现代天体力学的主要研究领域第二章二体问题2.1任意外形天体的引力势;
2.2二体运动方程与经典积分;
2.3二体运动轨道类型;
2.4空间与质心系中二体运动轨道;
2.5椭圆展开与平均值;
2.6椭圆运动的正则根数第三章限制性三体问题3.1N体问题地经典积分与特解;
3.2N体运动的Jacobi坐标;
3.3限制性三体问题;
3.4圆型限制性三体问题;
3.5平动点的线性稳定性;
3.6限制性三体问题中的混沌运动第四章受摄二体问题4.1Gauss型受摄运动方程;
4.2正则受摄运动方程;
4.3第三体摄动的摄动函数展开;
4.4线性长期摄动理论;
4.5主天体外形摄动;
4.6太阳系中主要耗散力第五章天体运动中的共振现象5.1轨道共振的基本模型;
5.2低阶轨道共振的相空间结构;
5.3小行星带的3:1Kirkwood共振;
5.4长期共振;
5.5自转-轨道共振;
5.6潮汐演化第六章保守系统中的有序与混沌运动6.1Hamilton系统相流的特点及奇点稳定性;
6.2可积Hamilton系统;
6.3有心力势场下质点的运动;
6.4近可积Hmailton系统6.5标准映射
1
第一章网络规划1.1需求分析1.2网络的总体设计原1.3网络方案设计1.4、设备选型1.5、投资预算第二章综合布线工程规划2.1工程概况2.2设计概述2.3需求分析2.4设计的标准、准绳2.5根据网络拓扑结构确定综合布线的系统结构2.6设备选型:2.7绘制图纸第三章网络设备的配....第四章服务器配置....第五章总结:致谢参考文献
2016/5/8 20:08:29 1.42MB 校园网 网络规划设计 网络 组网设计
1
第一章系统分析1.1系统目标电子词典的设计主要是用于协助用户查找一些不懂的单词。
以确定意思,再加上一些相关的扩展功能。
1.支持用户查询需求,能够实现英汉互相翻译的功能2.支持用户自定义词库能够使用户对词库进行操作,以便使用户获得更多的资料。
3.加入轻松背单词功能,是用户对单词有一个及时全面的复习环境。
2016/3/22 22:12:43 4.03MB 英汉互译电子词典
1
WTL_Freecell-Release04-v1.3-20190126(WTL空当接龙v1.3)本程序主要特点介绍:1、本程序全部使用WTL编程,VS2017编译,程序短小精悍,不依赖VC运行库;
2、本程序支持XP/7/8/8.1/10及相应Server版Windows系统;
3、本程序可以实现窗口任意缩放移动,真正的任意窗口大小,真正实现全屏、满屏、最大化、大窗口、大图标、适应大字体;
4、自动适应分辨率较小的情况,当屏幕分辨率较小时(宽小于1213或高小于850),程序会自动最大化显示、以自动适应屏幕大小;
5、为方便使用,增加了窗口还原功能;
6、将常用功能增加为顶级菜单;
7、允许无限次撤销;
8、能够自编牌局,牌局数几乎没有限制。
9、牌局能够以文本文件存档、读档;
10、绝大部分牌局能够实现电脑自动解答和演示,可以回放解答过程;
11、新版本v1.1修正了窗口信息问题;
12、新版本v1.2修正了保存牌局错误问题;
13、新版本v1.3处理在Win10高DPI时的窗口大小显示、字体模糊问题。
WTL是WindowsTemplateLibrary,可参见http://wtl.sourceforge.net/。
本程序借鉴了网友的一些实现模块,对向海飞等网友表示感谢。
--------------------------------------------By:MinJunQQ:153248043E-mail:ybmj@vip.163.comBlog:http://blog.csdn.net/shuren8/--------------------------------------------
2019/3/7 20:14:20 240KB WTL Freecell 空当接龙 全屏
1
本人复习时做的期末复习纲要,还算详细毕竟一点一点磨出来的,欢迎下载
2015/2/18 11:23:16 17.61MB 数据库 计算机科学
1
共 619 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡