




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上基于单片机的无刷直流风扇转速测量与调节一、 项目设计要求1、 实现无刷直流电机转速的测量和控制 2、给定转速指令:由PC发送转速值,经单片机控制器,使得电机达到并稳定在指定转速上。 二、硬件设备1、测量风扇型号:品牌:台达,型号:AFB0712HHB 2、51系列单片机学习板 3、PC三、方案设计1、硬件电路USB提供+5V电源,可以实现PC机与开发板的数据通讯和程序下载。数码管显示速度和占空比风扇电路连接:P1.0口接PWM波输入,P3.2口接测速脉冲输入风扇输入和输出信号图1、 输出信号-转速输出 每转输出2个脉冲OC输出,如上图2. OC输出的特点 外加集电极电
2、源和负载;输出幅值任意;注意ICMAX3. 输入信号-PWM输入2、程序流程图说明:程序应用模块化进行设计,主要有初始化模块、显示模块、测速模块和调速模块。编程次序可按此先后进行。(1)、初始化模块:T0和T1工作方式、标志位状态、所用单元初值、中断设置以及初始显示等。(2)、显示模块:显示风扇转速的实测值及其对应的PWM占空比。(3)测速模块:将0.5s测出的脉冲数即风扇每秒的转速。(4)调速模块:通过串口通信把风扇转速设定值发给单片机,通过改变脉冲波的占空比和PI调节来控制转速的大小。3. 占空比与转速关系:占空比000.160.170.180.190.20.220.240.270.290
3、.31转速r/s01234567891011占空比0.350.380.420.460.510.540.610.740.840.941转速r/s1213141516171819202122四、设计程序:1、主程序:#include <REGX52.H>#include <T_init.H>#include <Display.H>extern unsigned char set_value;/占空比设定/主函数void main()PS=1; /串行口中断优先级别设为高T0_init();/定时器0初始化T1_init(); /定时器1初始化EXT0_init(
4、);/外部中断0初始化USART_init();/串口初始化set_value=22;while(1)2、初始化子程序#include <REG52.H>#include <T_Init.H>/TC0初始化/设为定时器、模式2(自动重装) void T0_init() EA=1;ET0=1;TMOD |= 0x02;TH0=TL0 = 0x00;TR0=1;/TC1初始化/设为定时器、模式2(自动重装)void T1_init()EA=1;ET1=0;/中断关TMOD |= 0x20;TH1=TL1=0xfd;TR1=1;/EXT0初始化/负跳变沿有效、INT0(P3.
5、2)输入脉冲void EXT0_init()IT0=1;EX0=1;EA=1;/USART初始化/波特率 9600bpsvoid USART_init() PCON=0x40; SCON=0x50;/模式1,允许接收 ES=1;3、数码管显示子程序#include <REG52.H>#include <Display.H>/硬件连接sbit DAT = P02;sbit SCK = P00;sbit RCK = P01;/数码管驱动xdata NUM=0xf5,0x05,0xb3,0x97,0x47,0xd6,0xf6,0x85,0xf7,0xd7;/0-9数字xdat
6、a BIT=0xdf,0xbf,0x7f,0xef,0xfd,0xfb,0xf7,0xfe; /位选void dis_bit(unsigned char pos,unsigned char Data)unsigned char i;pos=BITpos-1;Data=NUMData;RCK = 0;for(i=0;i<8;i+) SCK = 0;if(pos & 0x80)DAT = 1;elseDAT = 0;pos <<=1;SCK = 1;delay();for(i=0;i<8;i+) SCK = 0;if(Data & 0x80)DAT = 1;
7、elseDAT = 0;Data <<=1;SCK = 1;delay();RCK = 1;/delay();/显示数值,两位/输入:pos:显示首位 word:一个两位以下的数值void dis_word(unsigned char pos,unsigned char word)dis_bit(pos+,word/10);dis_bit(pos+,word%10);/软件延时void delay()unsigned char i;for(i=5;i>0;i-);4、测速、调速子程序#include <REGX52.H>#include "IT.H&qu
8、ot;#include "Display.H"/硬件连接sbit fan =P10;/风扇脉冲输入sbit h = P06;/LED,测试/全局变量xdata unsigned char f=0,0,16,17,18,19,20,22,24,27,29,31,35,38,42,46,51,54,61,74,84,94,100,100,100;/转速与占空比关系对照表/INT0参数volatile unsigned char n;/转速volatile unsigned char p;/脉冲数/USART参数static unsigned char flag; /串口相关un
9、signed char Usart_buf2="00"/接收缓冲区/PID参数unsigned char Kp=5,Ki=1;/PID参数 (PI)static unsigned int error,error_re,Sum_e;/当前偏差,上一次的偏差,积分累加器 /T0参数static unsigned char time;/测速计时器unsigned char set_value;/PWM设定值/TC0中断void T0IT()interrupt 1 using 1 unsigned char temp; time+;if(time>150)/0.5s,由于中断
10、处理的程序过于庞大,以至于定时的理论值不能精确的算出。time=0;n=p;p=0;flag=0;/若串口的两位数据不是连续发送,则在下一次接收时全部刷新 temp=PID();if(1) PWM_GENERATER(temp);/PID调节dis_word(1,n);dis_word(5,set_value);/显示占空比/dis_word(3,error);/dis_word(7,temp);/TC1中断void T1IT()interrupt 3 using 1/EXT0中断void EX0_IT()interrupt 0 using 1p+;/脉冲计数/USART中断void USAR
11、T_IT()interrupt 4 using 1unsigned char temp;Usart_bufflag=SBUF;flag+;if(flag>1)flag=0;temp=(Usart_buf0-48)*10+Usart_buf1-48;if(temp<23) set_value=ftemp;RI=0;TI=0;/PWM生成程序/输入:Duty_Cycle:占空比高电平持续值void PWM_GENERATER(unsigned char Duty_Cycle)static unsigned char com_value;com_value+;if(com_value&l
12、t;Duty_Cycle)fan=1;else if(com_value<Limit)fan=0;elsecom_value=0;/PID控制器/输入:pidtarget:目标值/输出:返回占空比(Duty_Cycle)unsigned char PID()xdata unsigned int feedback,proportion,integral;error_re=error;/上一次的偏差 if(set_value>fn)/error为正值的情况 error=set_value-fn;/偏差 Sum_e=Sum_e+error;/积分 feedback=Kp*error/2+
13、Ki*Sum_e; /PID计算 else/error为负值的情况 error=fn-set_value;/偏差/积分部分if(Sum_e>error)/积分为正 Sum_e=Sum_e-error; else/积分为负Sum_e=0;proportion=Kp*error/2;/比例计算integral=Ki*Sum_e;/积分if(integral>proportion)/PID计算feedback=integral-proportion;elsefeedback=0; return(feedback); /返回结果 五、方案总结本方案基本能完成风扇转速测量与控制,达到了设计任
14、务的要求。通过测试,本控制系统可以根据气流和通风条件等环境对运行的影响,比较及时调整PWM波形。但是,本方案也存在一些不足之处:1. 由于本程序的中断处理比较复杂,定时的理论值不能精确的算出,以至测量的转速不是很精确2. 由于时间关系,我们的PID控制模块只完成了PI调节,缺乏了微分调节,系统的动态性能有所下降。六、感想 通过该项目的实践,我们加深了对单片机的定时器、计数器、中断等模块的理解。但是万事开头难,一开始,我们只是学了相关的理论知识,对实体的单片机并不了解,遇到各种问题,比如缺乏硬件电路的了解,风扇该如何接线如何输出信号,pwm波如何输出和调节,在调试过程中难以调到稳定速度等问题。后来结合书本,通过摸索,得出了上述程序。尽管时间紧迫、压力大,但是我们还
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 养老护理质量控制方案的制订
- 青岛西海岸新质生产力
- 2025年微生物学实验技巧培训考试答案及解析
- 民族工作相关课件
- 安全检测机构管理规定讲解
- 剪力、弯矩方程与剪力、弯矩图
- 2025年法医学法医病理学案例溯源分析答案及解析
- 民族声乐课件
- 2025年生物信息学基因组数据分析论述题考试答案及解析
- 2025年医学影像技术应用与操作规范答案及解析
- 托管班的转让合同协议书
- 2025年新西师大版数学三年级上册全册教学课件
- 2025年证券从业资格考试金融市场基础知识押题及答案
- 教育机构兼职教师聘用合同
- 湖北省高中名校联盟2026届高三上学期第一次联合测评物理试题(含答案)
- 形势与政策正确认识中国经济热点问题讲稿-2025秋版本
- (正式版)DB1509∕T 0003-2023 《奶绵羊产奶性能测定技术规程》
- 2025年广东省中考化学真题及答案
- 托盘运输知识培训内容课件
- 2025年小学信奥选拔试题及答案
- 2025年不明原因肺炎应急演练预案范文
评论
0/150
提交评论