基于单片机的无刷直流风扇转速测量与调节.doc

上传人:laozhun 文档编号:4148648 上传时间:2023-04-07 格式:DOC 页数:11 大小:355.50KB
返回 下载 相关 举报
基于单片机的无刷直流风扇转速测量与调节.doc_第1页
第1页 / 共11页
基于单片机的无刷直流风扇转速测量与调节.doc_第2页
第2页 / 共11页
基于单片机的无刷直流风扇转速测量与调节.doc_第3页
第3页 / 共11页
基于单片机的无刷直流风扇转速测量与调节.doc_第4页
第4页 / 共11页
基于单片机的无刷直流风扇转速测量与调节.doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《基于单片机的无刷直流风扇转速测量与调节.doc》由会员分享,可在线阅读,更多相关《基于单片机的无刷直流风扇转速测量与调节.doc(11页珍藏版)》请在三一办公上搜索。

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.31转速r/s01234

3、567891011占空比0.350.380.420.460.510.540.610.740.840.941转速r/s1213141516171819202122四、设计程序:1、主程序:#include #include #include extern unsigned char set_value;/占空比设定/主函数void main()PS=1; /串行口中断优先级别设为高T0_init();/定时器0初始化T1_init(); /定时器1初始化EXT0_init();/外部中断0初始化USART_init();/串口初始化set_value=22;while(1)2、初始化子程序#in

4、clude #include /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.2)输入脉冲void EXT0_init()IT0=1;EX0=1;EA=1;/USART初始化/波特率 9600bpsvoid USART_init() PCON=0x40; SCON

5、=0x50;/模式1,允许接收 ES=1;3、数码管显示子程序#include #include /硬件连接sbit DAT = P02;sbit SCK = P00;sbit RCK = P01;/数码管驱动xdata NUM=0xf5,0x05,0xb3,0x97,0x47,0xd6,0xf6,0x85,0xf7,0xd7;/0-9数字xdata BIT=0xdf,0xbf,0x7f,0xef,0xfd,0xfb,0xf7,0xfe; /位选void dis_bit(unsigned char pos,unsigned char Data)unsigned char i;pos=BITpo

6、s-1;Data=NUMData;RCK = 0;for(i=0;i8;i+) SCK = 0;if(pos & 0x80)DAT = 1;elseDAT = 0;pos =1;SCK = 1;delay();for(i=0;i8;i+) SCK = 0;if(Data & 0x80)DAT = 1;elseDAT = 0;Data 0;i-);4、测速、调速子程序#include #include IT.H#include Display.H/硬件连接sbit fan =P10;/风扇脉冲输入sbit h = P06;/LED,测试/全局变量xdata unsigned char f=0,0

7、,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; /串口相关unsigned char Usart_buf2=00;/接收缓冲区/PID参数unsigned char Kp=5,Ki=1;/PID参数 (PI)static unsigned int error,error_re,S

8、um_e;/当前偏差,上一次的偏差,积分累加器 /T0参数static unsigned char time;/测速计时器unsigned char set_value;/PWM设定值/TC0中断void T0IT()interrupt 1 using 1 unsigned char temp; time+;if(time150)/0.5s,由于中断处理的程序过于庞大,以至于定时的理论值不能精确的算出。time=0;n=p;p=0;flag=0;/若串口的两位数据不是连续发送,则在下一次接收时全部刷新 temp=PID();if(1) PWM_GENERATER(temp);/PID调节dis

9、_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 USART_IT()interrupt 4 using 1unsigned char temp;Usart_bufflag=SBUF;flag+;if(flag1)flag=0;temp=(Usart_buf0-48)*10+Usart_buf1-48;i

10、f(temp23) 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_valueDuty_Cycle)fan=1;else if(com_valuefn)/error为正值的情况 error=set_value-fn;/偏差 Sum_e=Sum_e+error;/积分 feedback=Kp*error/2+Ki*Sum_e; /PID计算 el

11、se/error为负值的情况 error=fn-set_value;/偏差/积分部分if(Sum_eerror)/积分为正 Sum_e=Sum_e-error; else/积分为负Sum_e=0;proportion=Kp*error/2;/比例计算integral=Ki*Sum_e;/积分if(integralproportion)/PID计算feedback=integral-proportion;elsefeedback=0; return(feedback); /返回结果 五、方案总结本方案基本能完成风扇转速测量与控制,达到了设计任务的要求。通过测试,本控制系统可以根据气流和通风条件等

12、环境对运行的影响,比较及时调整PWM波形。但是,本方案也存在一些不足之处:1. 由于本程序的中断处理比较复杂,定时的理论值不能精确的算出,以至测量的转速不是很精确2. 由于时间关系,我们的PID控制模块只完成了PI调节,缺乏了微分调节,系统的动态性能有所下降。六、感想 通过该项目的实践,我们加深了对单片机的定时器、计数器、中断等模块的理解。但是万事开头难,一开始,我们只是学了相关的理论知识,对实体的单片机并不了解,遇到各种问题,比如缺乏硬件电路的了解,风扇该如何接线如何输出信号,pwm波如何输出和调节,在调试过程中难以调到稳定速度等问题。后来结合书本,通过摸索,得出了上述程序。尽管时间紧迫、压力大,但是我们还是灵活运用并掌握微机测控装置的经典设计过程,即电路-软件-仿真-实物的设计调试试制过程;通过实践,已经熟悉了主要应用软件,Keil、Proteus、Protel等软件的使用,并已经积累了应用经验;项目实践后,锻炼了硬件设计和调试水平,提高了工程应用的直观经验;对PWM驱动直流电机、电机带动风扇的模型有了感性认识,为后面的课程打下了基础;学习了微机编程的技术,积累了编程和软件调试经验;在集体项目活动中锻炼了组织、分工协调能力。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号