版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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波如何输出和调节,在调试过程中难以调到稳定速度等问题。后来结合书本,通过摸索,得出了上述程序。尽管时间紧迫、压力大,但是我们还是灵活运用并掌握微机测控装置的经典设计过程,即
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 模板工程劳务分包班组合同
- 租赁合同终止的原因分析
- 饲料行业博览会购销合同
- 专业财务外包协议范本
- 校园物资订购协议
- 政府单位采购合同中的云计算采购
- 家庭护理家政服务雇佣合同
- 高效消毒清洁协议
- 典型服务合同示范文本
- 农村自来水安装协议范本
- 减少巡回护士手术中外出次数品管圈汇报书模板课件
- 小班 社会语言 懂礼貌的好宝宝 课件(互动版)
- 2022-2023学年小学一年级语文上册无纸笔化测试评价方案(含测试题)
- 5分钟安全五人小品剧本
- 苏教版六年级下册数学例6比例尺的意义【含答案】
- DBJ33-T 1286-2022 住宅工程质量常见问题控制标准
- 西门子变频器选型手册
- 教育研究导论首都师范
- 《国际关系理论》PPT课件
- 公司层面风险评估操作手册
- (附件)-架空输电线路状态评价细则(试行)
评论
0/150
提交评论