家用风扇控制系统c语言程序设计,数字风扇控制系统的设计
本文主要描述如何利用 MSP430 系列微控制器实现数字风扇控制系统的设计。
1. 概述
风扇常用于驱散系统中产生的热量,典型地应用于电源系统或网络服务器中。一般简单的风扇冷却系统冷却风扇会一直在全速状态下连续运转,这样会消耗系统大量的能量并增加系统噪声。如果散热风扇的转速可以根据系统的工作温度进行实时调节)即会大大提高系统的效率,同时降低系统功耗。通过增加一个闭环控制系统,使散热风扇可以根据当前系统的温度实时调节风扇的转速,以维持系统工作温度,提高系统的可靠性。
本文利用 MSP430微控制器测量系统温度,然后通过微控制器输出的 PWM波控制风扇的转速,实现一个数字风扇控制系统,可选用 3- 线或4- 线直流无刷电机驱动风扇。
2.系统结构设计
这部分主要描述如何建立硬件设计开发平台。主控MCU选用 MSP430F4l7微控制器,采用 SOFtbaugh ES417开发板及l2V直流无刷电机(3线或4 线接口)。硬件框图如下图 所示,
包括 SoftbaughES417 开发板、MSP430 USB 调试接口(MSP430-FET430UlF)、直流无刷电机风扇(3- 线或4- 线接口)和系统电源四部分。
典型的标准3线或4线制直流无刷散热风扇接口与 MSP430F4l7微控制器及 Softbaugh ES417 开发板连接原理图分别如夏天所示。
文中将风扇转速设计为 LO-L56 个等级,根据需要将温度的不同等级相应增加到软件设计中与风扇转速配合运行。其中,每一等级的转速均包含高、低两个温度的极限值,当读取某一特定等级的温度值时即可确定风扇的转速。
当读取的系统温度值高于现有风扇转速对应的温度值时,徵控制器会增加风扇的转速;反之,当读取的温度值低于现有风扇转速对应的温度值时,微控制器会减小风扇的转速。系统的温度值由MSP430微控制器通过外接的热敏电阻获得,同时在软件设计中会保持和跟踪系统的温度及风扇转速。
ES417开发板上的 LCD显示将不断更新测量的系统温度及风扇的转速,随着系统温度的升高或降低,系统会实时调整风扇的转速。系统的冷却等级即风扇转速也将同步在 LCD 上显示,LCD 显示部分如下图所示。
例如,F2显示在 LCD屏的右上角,表示当前系统的冷却级别为 2)文中的冷却级别分别为 F1 -F55个级别。每个级别均通过显示屏中 F 段表示,x表示当前系统冷却级别,F 字符下面的方块字符也相应代表系统的冷却等级即风扇转速等级,UP/DOWN键可用于指示风扇在改变转速时的状态。
2.1 MCU外部温度传感器的设计
MSP430微控制器在系统运行时可以通过不同的方法获得系统的温度。大多数MSP430微控制器内部均含有温度传感器,设计者可以利用 MSP430微控制器自身的温度值作为改变风扇转速的标准,但此时测量的是芯片的温度;如果需要测量的温度值在芯片远端或者在微控制器的测试范围以外时,可以通过在系统需要检测的点上放置一个热敏电阻,同时通过2线制与总体电路设计相连。
MSP430F4l7微控制器的Com-parator_A输入端应连接一个10kΩ的负温度系数热敏电阻(NTC),同时NTC电阻应能满足在-55℃~+99℃范围内的温度测量,分辨率为1℃,即可达到系统的设计要求。该NTC电阻根据系统的温度的变化阻值相应发生变化,从而改变由ADC输入通道监控的DC电压的变化,然后MSP430F4l7微控制器根据测量的电压值确定相应的温度值,并相应的调整系统风扇的转速。
系统测量的温度为模拟量,微控制器分析时须转换成数字量。为降低成本、复杂度及PCB板面积大小,本文采用MSP430系列徵控制器的SlopeA/D技术实现AD转换,降低了采用分离ADC模块的系统成本。(此部分SlopeA/D实现方法可参考2007-2期中的详细叙述)2,2系统监控及风扇控制MSP430微控制器在控制风扇运转的同时还须监控系统温度参数,通过PWM信号控制风扇的转速。为产生不同的PWM信号,在设计前需确定不同冷却级别的转速(RPMs)所对应的PWM信号的频率或占空比。
所有的MSP430微控制器至少含有一个硬件定时器模块,这个定时器模块具有至少2、3个独立的定时器,即所有MSP430微控制器至少能产生1、2个频率相同、占空比不同的PWM信号。通过更新定时器中的CCR寄存器值可增加和减少产生PWM信号的占空比,这样印能有效地改变风扇的转速,并不会产生任何PWM噪声。
一般风扇均含有自身转动频率的信号输出端,该频率信号可作为微控制器的反馈信号。例如,风扇每个转动周期能产生2个脉冲信号,MSP430微控制器则可以捕获监控该脉冲信号并计算脉冲个数,同时通过该值得到风扇的转速,最后将转速值反馈到主控制器中,判断该转速是否达到当前温度条件下的风扇转速。
2.3LCD显示ES417开发板的LCD屏上采用高4位数值显示,指示当前的转速值,其它3位指示外部热敏电阻通过SlopeA/D转换方法读取的温度值。
当风扇转速发生变化时,MSP430微控制器会捕获到当前的转速值。例如,风扇在每个运转周期可以产生2个上升沿和下降洽,由于风扇有相应的频率输出端,MSP430微控制器通过捕获该端口的脉冲信号,可以软件编程计算每分钟上升沿和下降洽的个数,然后通过简单计算即可得到RPM转速值再通过LCD显示。
3.软件设计软件设计由系统监控和控制、转速测量和LCD驱动、PWM驱动程序和温度传感器驱动程序四部分构成,源程序由C语言和汇编语言相结合完成。软件设计流程图如下图所示。
本文MSP430微控制器软件设计允许用户通过MSP430开发板,如Soft-baughES417,与散热风扇简单的相连即可实现系统风扇的控制。大多数风扇都内置一个能产生频率信号的发生器,MSP430控制器可以检测这个频率信号,同时能产生PWM信号控制风扇的转速。
在软件设计中,看门狗定时器WDT用于周期性检测系统温度,并根据温度值设置风扇的转速。在WDTISR中断服务子程序中可改变风扇转速等级,看门狗每秒钟中断一次。
3.1风扇参数大多数风扇(电机)都含有一个由电源、地、PWM和FG信号的4线制接口,通常在风扇的数据手册中会提供PWM频率和占空比参数,或者一些运算参数,这些参数即可确定风扇的转速。
例如,风扇控制器以每100RPM转速为增量,使转速从1000RPM~4000RPM之间变化时,需要使用31个数据矩阵。比较寄存器的第一个值即能使风扇转速达到1000RMP,矩阵的第二个值则与1100RPM相关,后续风扇转速与矩阵值依此类推。比较寄存器的值为预先计算,并存储在MSP430微控制器的信息FLASH区中,以至于该值在系统运行时无需不停计算。MSP430微控制器通过读取寄存器的矩阵值,不断更新比较寄存器的值,即可在任一时间改变风扇的转速。
软件设计源代码提供了包含查表的例程,表中的数据为风扇转速占空比不同增量时比较寄存器的数据值,数据矩阵的大小和每一个位置值都可以根据需要进行修改。
MSP430微控制器内部FLL模块可以运行在1MHz以上,FLL的晶振输出可作为驱动PWM信号的时钟源。例如,大多数散热风扇的PWM频率为20kHz,软件运行时,1MHz的FLL时钟源即可产生作为风扇PWM信号的20kHz驱动频率。
MSP430微控制器的SMCLK时钟可作为Timer-A定时器的时钟源,在相应的定时器引脚输出PWM方波。CCRO寄存器值设置PWM频率间隔,CCR1寄存器值可以作为PWM信号的占空比。
PWM信号通过控器三极管通断来控制风扇电机的直流电源,随着PWM占空比的变化,驱动电机的平均电源电压也相应发生改变。平均电源电压的改变直接会影响风扇电机的转速。
3.2温度参数大多数风扇控制系统都会定义一个预设温度范围,该温度范围与风扇运转的某一特定速度均可相对应。本文的源代码提供了四种温度范围或调节等级,当温度达到某一特定范围时,微控制器可以调节或维持风扇的运行速度以保证系统的正常运转。
风扇转速的每一级都有一滞后间隔,因为每一级转速过渡时均与温度密切相关。例如,可以定义每一个过渡转速都可以增加1℃的滞后间隔,则意味着在任何转速的过度点温度每降低1℃风扇的速度都不会立刻改变,直到读取的温度值超过了滞后间隔值,这样即可防止有时系统温度在临界点变化时引起转速在两个速度等极间高速来回调整。
家用风扇控制系统c语言程序设计,数字风扇控制系统的设计相关推荐
- 家用风扇控制系统c语言程序设计,智能风扇控制系统设计.doc
- PAGE IV - 摘 要 由于当今信息技术的高速发展,温度的测量与控制系统在工业和农业以及人们的日常活动中充当着一个日趋重要的角色,它对我们的日常生活具有诸多的影响,因此温度的采集以及其控制系统 ...
- c语言程序设计第2章,C语言程序设计第2章 结构化程序设计与算法.ppt
C语言程序设计第2章 结构化程序设计与算法.ppt 现在人们公认的具有"良好风格"的程序设计方法之一是所谓的"结构化程序设计方法".其核心是规定了算法的三种基本 ...
- 红外遥控C语言程序设计,光电红外遥控开关设计(光电系统课程设计)【PCB图仿真图单片机C语言分工心得】..doc...
光电红外遥控开关设计(光电系统课程设计)[PCB图仿真图单片机C语言分工心得]. 本科生课程论文 论文题目光电红外遥控开关设计课程名称光电系统设计学生姓名学号所在学院所在班级指导教师 目 录 摘要3 ...
- c语言递进循环程序,基于“阶梯递进”模式《C语言程序设计》主讲教材的设计.pdf...
东 莞 理 工 学 院 学 报? 第 ??卷第 ?期? ????????????????????????????????????????????? ???.?????.?? ????年 ?? 月? ? ...
- c语言程序设计数字电位器,X9C103数字电位器中文.pdf
==2000:09:11== P&S武汉力源电子股份有限公 司 == 10-1== X9C102 103 104 503 2 TM E POT 非易失性数控电位器,端电压±5V ,100个抽头 ...
- C语言猜数字游戏的进阶设计
上一篇文章我们已经实现了猜数字游戏的程序设计,但是玩过游戏的我们都知道,这样的游戏界面实在是太过低级,下面我们运用system函数和Sleep函数进行一次小升级. 我们先对即将用到的函数进行简单介绍 ...
- c语言程序设计数学电压表,单片机课程设计-数字电压表的设计.doc
第 第 PAGE 1 页 共 NUMPAGES 18 页 课 程 设 计 设计名称 数字电压表的设计 . 全套设计加扣?3012250582 学年学期 2014-2015(上) 课程名称 单片机课程设 ...
- 液位控制系统c语言程序,水槽液位控制系统课程设计报告.doc
摘要 ? 本文根据液位系统过程机理,建立了单容水箱的数学模型.在设计中用到的PID算法提到得较多,PLC方面的知识较少.并根据算法的比较选择了增量式PID算法.建立了PID液位控制模拟界面和算法程序, ...
- C语言单片机数字音乐盒,单片机课程设计:数字音乐盒(4)
单片机课程设计:数字音乐盒(4) 来源:-- 作者:-- 浏览:749 时间:2016-08-10 14:18 标签: 摘要: 课程设计名称:数字音乐盒实验报告课程设计名称:数字音乐盒课程设计单位:自 ...
- c语言程序设计开发出怎样包装设计,设计开发输出可以是()。A.图纸B.计算书C.包装规范D.以上都是...
设计开发输出可以是().A.图纸B.计算书C.包装规范D.以上都是 更多相关问题 经济发展新常态的主要特点有( ) 经济发展如果长期依赖外资,不对外投资,对我国长期经济发展是. 经济变量的分类主要由哪 ...
最新文章
- POJ 2112 Optimal Milking(二分+最大流)
- QT:KeepAliveOption的应用
- Delphi 7 在程序中直接执行SQL脚本文件
- 每日一句(2014-8-26)
- 力扣53. 最大子数组和(JavaScript)
- 电脑当路由使用(目前只在win7上用过)
- Leetcode: 二叉树的后序遍历
- 各种水龙头拆卸图解_扭力扳手使用方法图解与注意事项、原理、种类
- pycharm:There is not enough memory to perform the requested operation
- c语言矩阵键盘反转法扫描,行列扫描法,反转法,状态机法三种矩阵键盘扫描方法详解 带程序...
- echarts实现平面3D柱状图
- Oracle VM VirtualBox Ubuntu1804虚拟机磁盘扩容
- Ubuntu笔记本使用peek 来录制 gif 动画
- Python实现图片转成字符图片
- 20145322何志威 Exp8 Web基础
- c语言abs作用是什么意思,c语言fabs()是什么意思?和abs()有什么区别
- 批济南某创华宇培训学校
- 订阅者Subscriber的编程实现——ROS
- 统计-均匀分布生成其他分布的两种方法
- matlab如何求反渐开线函数,inv函数(inv函数查询表)