微机原理无刷直流风扇调速与测速分析.pdf
《微机原理无刷直流风扇调速与测速分析.pdf》由会员分享,可在线阅读,更多相关《微机原理无刷直流风扇调速与测速分析.pdf(15页珍藏版)》请在三一文库上搜索。
1、 工 学 院 微机原理 (3 级)项目报告 项目名称:微机原理课程设计 项目题目:无刷直流风扇调速与测速 指导教师: 系别:机电系专业:机械设计制造及其自动化 组员信息学号:姓名:王 组员信息学号:姓名:郭 完成时间:2014 年12 月 01 日至 2016 年1 月 3 日 成绩:评阅人: 目录 一、学习目标 (1) 二、项目要求 (1) 三、转速测量和调节系统的硬件构成(1) 四、程序流程图并说明方案思路(3) 五、风扇转速与占空比之间的关系表格和曲线(4) 六、设计程序 (5) 七、分析设计过程出现的问题(12) 八、方案总结 (13) 1 一、学习目标 本次系统作业的目的在于: 通过
2、脉冲宽度调节实现无刷直流风扇转速的改变; 借助风扇转动时产生的脉冲信号,测量风扇的转速并显示; 比较每组风扇从某一转速(600r/min) 到另一转速 (2000r/min) 稳定运转的所需要 的时间。通过比较试验结果的估算结果并讨论结果差异的主要原因,让学生展示对无刷 直流风扇数学模型建立和调节方法局限性有深入理解。 二、项目要求 检查项目要求 转速显示 风扇转速能够显示在LED上,转速单位是 r/min ,刷新周 期为 1 秒钟左右 风扇转速可调 风扇转速可以改变,根据要求转速在700-1400r/min 风扇转速与显示 通过简单方法给风扇加负载,随着转速的下降应该看到 转速变化的显示 转
3、速指令输入环节通过串口或键盘输入 给定转速 给定某一转速, 1200-1500之间,看显示转速的稳定性 转速调节功能 在稳定转动条件下1500r/min ,在 30cm 处加载一个外加 一个风扇,对照加载前后的稳态转速 回答问题 随机提出有关转速测量、 PWM 输出和转速控制方面的问 题,要有针对性,检查设计过程中的付出。 三、系统硬件构成 2 3 风扇电路: 接线:黄线接 Vcc,黑线接地,绿线接P32,蓝线接 P25。 输出: OC输出,如下图 四、画程序流程图并说明方案思路 开始 初始化 中断产生PWM 波 显示转速和 占空比 查询是否需要反馈调整 查询是否收到串口数据 查询风扇转速是否
4、更新 查询有无按键操作 调整占空比 更新目标转速 刷新数码管缓存数据 计算需要的占空比 Y Y Y Y N N N N 4 程序主要用查询法判断需要执行的操作,并且利用中断处理函数来产生各种对应的标志位 来通知主循环,在主循环中进行要求的运算。 其中 T0定时约 500us,它的每次中断相当于输出一个载波脉冲,实际上是用载波脉冲数为 200 个,载波周期为 500us 的方式构成周期为100ms的 PWM 波。T1用做波特率发生器。 T2定 时 60ms 。每次 T2中断能重置一次按键处理标志位,这个标志位能保证每60ms内只允许处理 一次按键操作,让按键处理既能高速增减,也能准确;此外当有合
5、计25 次 T2 的中断发生时, 它能保存当前的转速值并且通知主循环刷新数码管显示请况,因此我们计算转速的方式是 “统 计 1.5s 内风扇的转动圈数” 。利用在 T2 中断的定时判断, 也能把当前数码管的显示请况发回 PC机。 串口通讯方面,也是利用一个标志位来申明是否接受了数据。使用“操作符+操作数据” 的 5 字节字符串数据格式,例如用“ A0980 ”代表需要风扇按 n=980r/min 的速度运行。通知标 志被主循环检测到的时候, 会将串口数据检查并且保存成整数形式,方便后续函数的调用。 当 串口数据不合理时,会发送信息到PC机。 五、风扇转速与占空比之间的关系表格和曲线 编程实现单
6、片机给PC定时发送转速与占空比数据后,取对应的数据制表如下。 占空比 (%) 100 95 90 85 80 75 70 65 60 55 50 转速 n/(r/min) 2140 1960 1820 1740 1680 1600 1500 1420 1300 1180 1060 占空比 (%) 45 40 35 30 25 20 15 10 5 0 转速 n/(r/min) 900 740 580 440 100 0 0 0 0 0 将 500 个转速与占空比数据拟合成关系曲线如下 5 可以发现,在风扇正常转动时,转速与占空比有着正相关的关系,占空比越大,风扇的转 速越高。此外,当占空比小于
7、26% 时,风扇停转。 六、设计程序 1、主程序: #include #define jingzhen 11059200UL /*使用 11.0592M晶体 */ #define botelv 9600UL /*波特率定义为9600*/ volatile unsigned char sending; sbit dula =P26; / 段选信号的锁存器控制 sbit wela =P27; / 位选信号的锁存器控制 sbit PwmOut=P25; /PWM 输出位置蓝线 sbit need_steady=P34; /接地后开始调整 sbit HideValue =P35; /接地后显示目标转速
8、 sbit K3 =P36; / 增加占空比按钮 sbit K4 =P37; / 减少占空比按钮 unsigned char code wei=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;/数码管各位的码表 unsigned char code duan=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/0-9的码表 unsigned char SPEED,SPEED_temp,count_time,count_send,wait; unsigned char PWM_count,PWM_turn,PWM_
9、max; /控制 PWM 波的计数,转变值,周期个数, unsigned char Number8=0,value6=0; /数码管显示缓存和串口字符串数据缓存 int Target; bit flag=0,flag_k=0,flag_send=0,flag_direct=0; / 通知标志 6 void Timer0Init(void); /初始化函数 void Timer2Init(void); void Ext0Init(void); void UARTInit(void); void check(); void VALUE_To_Num(int num,unsigned char d)
10、; /数据填入数码管函数 void direct(); / 直接与反馈调节PWM 函数 void adjust(); void Display(); void send(unsigned char d); void sendc(unsigned char * pd); void sendc_num(unsigned char * pd); void main() flag_direct=0; flag_send=0; wait=5; PWM_count=0,PWM_turn=170,PWM_max=200; Timer0Init(); Timer2Init(); Ext0Init() ; UA
11、RTInit() ; need_steady=1; / 接地后开始调整 HideValue =1; / 接地后显示目标转速 K3 =1; / 增加占空比按钮 K4 =1; / 减少占空比按钮 while(1) / 主循环 if(flag_k) / 控制每 60ms 允许通过按键调整一次PWM_turn if(!K3 flag_k=0; if(flag_direct) check(); direct(); flag_direct=0; wait=4; / 传送了直接值后不能马上进行反馈调整,误差太大了 if(flag) / 控制约 1.5s允许调整数码管显示值 7 VALUE_To_Num(50
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 直流 风扇 调速 测速 分析
链接地址:https://www.31doc.com/p-4738318.html