速度检测实验报告

 重庆邮电大学综合实验报告 基于旋转编码器得转速测量实验 姓

  名:

  魏

  敏

  学

  号:

  2012213148

 班

  级:

 0881202

 组

  号:

  专

  业:电气工程与自动化 指导老师:

  陈 俊 华

  自动化学院检测与控制实验中心 2014 一、实验目得 1、 了解编码器工作原理 2、 掌握编码器速度检测得方法; 二、实验原理 1、 编码器 编码式数字传感器就是测量转轴角位移得最常用得检测元件,它具有很高得分辨率、测量精度与可靠性。

 在一个圆形玻璃盘得边缘开有相等角距得缝隙,成为透明与不透明得码盘,在此码盘开缝得两边,分别安装光源及光电元件。当码盘随被测物体得工作轴转动时,每转过一个缝隙,光电元件所获得得光强就发生一次明暗得转换,光电转换电路就产生一定幅值与功率得电脉冲输出信号。将这一脉冲信号送加法计数器进行记数,则所计数码就等于码盘转过得缝隙数目,在缝隙之间得角度已知时,码盘(被测物体)所转过得角度也就确定了。

 旋转编码器 E6C2- -C CWZ6C 参数表

 编 码器 参数 电 源电压 DC5V~24V 消 耗电流 70mA 以下 分 辨率(脉冲/旋转) 100、200、300、360、400、500、600、720、800、1000、1024、1200、1500、1800、2000 输 出相 A 、B、Z 相

 输 出方式 NPN集电极开路输出 输 出容量 外加电压:DC30V 以下;同步电流35mA 以下;残留电压:0、4V 以下(同步电流 35mA)

 最 高响应频率 100kHz 2、测量方法: 2、1 编码器鉴相电路设计:

  2、3 测量原理: 检测光电式旋转编码器与转速成正比得脉冲,然后计算转速,有三种数字测速方法:即M法、T 法与 M/T 法。

 光电式旋转编码器就是转速或转角得检测元件,旋转编码器与电机相连,当电机转动时,带动码盘旋转,便发出转速或转角信号。如图所示。

 码盘轴发光装置接收装置CCV数字测速装置原理图 M 法测速 测取 Tc时间内旋转编码器输出得脉冲个数 ,用以计算这段时间内得平均转速,称作 M 法测速,如图所示。

 M 法测速得分辨率:

 电机得转速为 :

 M 法测速得分辨率: M 法测速误差率:

 M 法测速适用于高速段 T 法测速 记录编码器两个相邻输出脉冲得间得高频脉冲个数 M2,f0 为高频脉冲频率,如图所示。

 电机转速

 T 法测速得分辨率:

 T 法测速误差率:

 T 法测速适用于低速段。

 M/T法测速 把 M 法与T法结合起来,既检测T C 时间内旋转编码器输出得脉冲个数 M 1 ,又检测同一时间间隔得高频时钟脉冲个数 M 2 ,用来计算转速,称作 M/T 法测速。采用 M/T 法测速时,应保证高频时钟脉冲计数器与旋转编码器输出脉冲计数器同时开启与关闭以减小误差。

 电机转速

 三、实验内容

  1、 根据旋转编码器得工作原理,设计基于旋转编码器得速度检测原理图; 2、 利于实验室提供得单片机最小系统,设计位置检测、速度检测系统得应用电路;画出系统框图; 3、 编写相关程序, 实现对位置及转速得测量,并显示; 程序设计: #include<reg51、h>

 ﻩ#define uchar unsigned char

 #define uint unsigned int

 sbit dula=P2^6;

  sbit wela=P2^7; sbit q1=P3^4;

  bit bit_0; uint count_N,count_N1; uint count_n8;//计数值 uchar T_N=20; void msplay(uchar,uchar);

 void INT_0_Init(); void Timer0_Init(); void Motor_Init(); ucharcode x1[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x27,0x7f,0x6f,0x40,0x7c,0x39,0x5e,0x3e,0x48}; uchar code x2[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; void delay(uint z)// ﻩ ﻩ

 数函时延ﻩ{

 uint x;

 for(x=z;x>0;x--) ; } void INT_0_Init()

  {

  ;1=0XEﻩ ;1=0TIﻩ

 } void Timer0_Init() {

 TMOD=0X01;

  ;652/)00005-63556(=0HTﻩ

 ;652%)00005-63556(=0LTﻩ ﻩ

 ;1=0RTﻩ ;1=0TE ;1=AEﻩ ﻩ} void main()

 {

  ﻩ ﻩuchar k6,k5,k4,k3,k2,k1,k0;

 INT_0_Init(); Timer0_Init();

  )1(elihwﻩ { ﻩ

  ;f0x0=1k ;e0x0=0kﻩ

 if(!q1)

 ﻩ

 ;0=6kﻩ

  ﻩ else

 k6=10;

  if(!bit_0)

  {

  k2=count_N%10000/1000; k3=count_N%1000/100;

 ;01/001%N_tnuoc=4kﻩ k5=count_N%10; bit_0=1;

 ﻩ }

 ;)3,6k(yalpsmﻩ ;)1,1k(yalpsmﻩ ;)0,0k(yalpsmﻩ

  msplay(k2,4); msplay(k3,5);

 ;)6,4k(yalpsmﻩ msplay(k5,7);

 } ﻩ} void int_0() interrupt 0 {

 ;++8n_tnuocﻩ} void timer0()

 interrupt 1 {

  ;0=0RTﻩ TH0=(65536-50000)/256;

  ;--N_T

 ;652%)00005-63556(=0LTﻩ

 if(0==T_N)

 { ﻩ

 ;8n_tnuoc=1N_tnuocﻩ count_N=27、952*count_N1;

  ;0=8n_tnuocﻩ ;0=0_tibﻩ T_N=20;

 } ﻩ

 ;1=0RTﻩ}

 ﻩ

 void msplay(uchar y1,uchar y2)

 {

  ;]1y[1x =0Pﻩ

 ;08x0|0P =0Pﻩ

 )6==2y(fiﻩ ﻩ

  ;)1(yaled

 ;0=alud ;1=aludﻩ

 ;]2y[2x =0Pﻩ

 ;)1(yaled

 ;0=alew ;1=alewﻩ

 ;00x0 =0Pﻩ ﻩ

 ;)1(yaled

 ;0=alud ;1=aludﻩ

  ﻩ ﻩ

 ;ff0x0 = 0Pﻩ ﻩ

 ;)1(yaled

 ;0=alewﻩ ;1=alewﻩ } ﻩ原理图设计:

 四、总结

  随着课程得推进,实验涉及得越来越多,对绘制原理图越来越得心应手,但由于编程涉及到对中断得应用,我仍不够熟练,在程序编写中遇到大大小小得问题,尽管通过不断地练习解决了这一问题,但在编码器旋转测速得显示部分,对误差得处理,还有一些问题,在后续得学习中,我将不断得完善自己在编程方面得不足,更加努力。当然,通过此次旋转编码器得速度检测实验,我也学会如何根据编码器旋转原理进行速度检测。