欢迎来到天天文库
浏览记录
ID:22363064
大小:27.00 KB
页数:7页
时间:2018-10-28
《电机转速测量系统设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、电机转速测量系统设计 摘要:以测量电机转速为目的,使用电涡流传感器、AT89C5l单片机设计出电机转速测量系统,首先说明了设计思想,随后进行了软、硬件设计。实验表明该测量系统的测试误差小,精度高。 ?P键词:电涡流传感器;AT89C51;转速测量 DOI:10.16640/j.cnki.37-1222/t.2017.10.168 1引言 随着现科技的不断进步,各个领域对测速系统的应用越来越多,同时也对测速精度的要求越来越高。从测速仪器是否与转轴接触又可分为接触式,非接触式,目前常用的是非接触测量,采用传感
2、器为检测元件,读取到的信号通过微处理器来进行计算、显示。 2系统设计 在系统中,AT89C5l作为控制器负责读取电涡流传感器输出的脉冲信号,通过外部中断对脉冲信号计数,每1s读取一次外部中断计数值,此值为脉冲信号的频率,最后通过电机转速计算公式得到转速,并由LCD显示,如果电机的转速超出限定值,蜂鸣器报警。系统框图如图1所示。 2.1硬件设计 2.1.1测量原理 电涡流位移传感器属于非接触测量器件,当金属物体接近电涡流传感器的感应面时,金属表面吸取电涡流传感器中的高频振荡能量,使振荡器的输出幅度衰减或频率
3、变化,输出脉冲信号,单片机根据脉冲信号的数目可以计算出与被检测物体的转速。测量原理如图2所示。 2.1.2仿真电路 根据系统设计进行电路仿真,仿真电路图如图3所示。 2.1.3硬件电路 (1)电涡流传感器。电涡流传感器的基本工作原理是电涡流效应,当金属导体置于高频磁场中,会在金属表面产生感应电流。电涡流传感器就是利用电涡流效应来检测金属物体的位移、振动、转速等机械量的,具有非接触测量、线性范围宽、灵敏度高、抗干扰能力强、无介质影响、稳定可靠、易于处理等优点,经常应用在旋转机械状态的测量中。 (2)微处理器
4、。微处理器AT89C51对电涡流传感器输出的脉冲信号进行计数,利用定时闸门完成转速频率的测量,通过计算得到电机的转速,电机转速计算公式: 其中n为电机转速,f为电机脉冲信号频率,z为转轴旋转一圈产生的脉冲数。 (3)硬件电路。硬件电路如图4所示。 2.2软件设计 2.2.1工作过程 对各中断初值进行初始化,电涡流输出脉冲信号到来后,启动外部中断,每来一个脉冲信号启动一次中断,记录中断次数;并在启动外部中断的同时启动T0定时器,每1秒T0定时中断一次,读取在1秒中记录的中断次数,即电机输出的脉冲信号频率,将
5、频率值代入公式计算电机的转速,LCD显示转速值,若转速高于1000则报警。 2.2.2流程图 如图5所示。 2.2.3程序 main() { TCONDF=0x11; P20=1; TMODF=0x01; P20=0; IE=0x83; TWH0=TH_M1; init_WEB(); TWL0=TL_M1; while(count==0){} WPS=0; if(zs>=1000) { P20=1; } disp_led(); } voidcounter(void)int
6、errupt0 {count++; if(count%6==0) {zs++;} } voidDelayTime(void)interrupt1 {TWH0=TH_M1; TWL0=TL_M1; if(++count==20) {fwb=1;} } voiddisp_led()//LED显示 {inti; while(1) {display_count(); write_contrs(0x80); for(i=0;i7、lable(display[i]); } } } voiddisplay_count() {display[12]=(icount/1000+'0'); display[13]=(icount/100%10+'0'); display[14]=(icount/10%10+'0'); display[15]=(icount%10+'0'); } voidinit_WEB(void) {write_contrs(0x01); yc1ms(15); write_contrs(0x38); wr8、ite_contrs(0x0f); write_contrs(0x06); } voidwrite_contrs(charinst) {RES=0; REW=0; ent=1; LCDP=inst; ent=0;checkbestf(); } voidwrite_lable(intshuju) {RES=1;REW=0; ent=1;
7、lable(display[i]); } } } voiddisplay_count() {display[12]=(icount/1000+'0'); display[13]=(icount/100%10+'0'); display[14]=(icount/10%10+'0'); display[15]=(icount%10+'0'); } voidinit_WEB(void) {write_contrs(0x01); yc1ms(15); write_contrs(0x38); wr
8、ite_contrs(0x0f); write_contrs(0x06); } voidwrite_contrs(charinst) {RES=0; REW=0; ent=1; LCDP=inst; ent=0;checkbestf(); } voidwrite_lable(intshuju) {RES=1;REW=0; ent=1;
此文档下载收益归作者所有