文档库 最新最全的文档下载
当前位置:文档库 › STM32编码器接口模式测速 分成两段上升

STM32编码器接口模式测速 分成两段上升

原子哥,小弟第一次发帖子求救。

我用编码器测电机角速度 当电机速度2000RPM 时显示转速为0,电机从静止到额定转速,STM32测出转速如图

:

我的源码:

[C] 纯文本查看 复制代码

?

1

02 03 04 05 06 07 08 09

1

1

int main() { Stm32_Clock_Init(9);//系统时钟设置 delay_init(72); //延时初始化 PID_Oline_init(0,0,0); //PID 在线调参初始化 delay_ms(200); Timer2_Init(1000,719); //定时器2 定时器10ms 中断 TIM4PWM_Init(1000,0); //定时器4 PWM B8输出 Encoder_Init(); //定时器3 编码器初始化 while(1); }

12

[C] 纯文本查看 复制代码

?

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 2void TIM2_IRQHandler(void)

{

if(TIM2->SR&0X0001)//溢出中断

{

////////////////获得电机角速度///////////////////////////////////////////////////////////////////////////////////////

old_Encoder_Angle=Encoder_Angle;

Encoder_Angle=TIM3->CNT*360/179

2; //从编码器获得角度 一圈1792脉冲

Encoder_Angle_Speed=(int)(Encoder_Angle+360-old_Enco der_Angle)%360; //角度转化为角速度

////////////////均值得平均速度/////////////////////////////////////////////////////////////////////////////////////////////

for(timer_i=0;timer_i<21;timer_i+

+)

speed_data_buf[timer_i]=speed_data_buf[timer_i+1];

speed_data_buf[21]=Encoder_Angle_Speed;

filter_res=mean_filter(speed_data_buf);

Encoder_Angle_Speed=filter_res;

////////////////求得PID 数据并发送上位机////////////////////////////////////////////////////////////////////////////////////////// PID_Get_Err(&filter_res,&Goa

l); //获取角速度以及角加速度

PID_res=PDCtrl_Res

(); //得到输出值

TIM4->CCR3=PID_re

s; //输出给电机

Do_send_PIDOL(&Goal,&Encoder_Angle_Speed,&PID_re s); //发送给上位

}

TIM2->SR&=~(1<<0);//清除中断标志位

2

1

2

2

[C] 纯文本查看 复制代码

?

1

2

03 04 05 06 07 08 09 10 11 12 13 14 15 1

6

1

7

1

8

void Encoder_Init(void) { RCC->APB1ENR|=1<<1; //TIM3时钟使能 RCC->APB2ENR|=1<<2; //使能PORTA 时钟 GPIOA->CRL&=0XF0FFFFFF;//PA6 GPIOA->CRL|=0X04000000;//浮空输入 GPIOA->CRL&=0X0FFFFFFF;//PA7 GPIOA->CRL|=0X40000000;//浮空输入 TIM3->PSC = 0x0;//预分频器 TIM3->ARR = 1792-1;//设定计数器自动重装值 TIM3->CR1 &=~(3<<8);// 选择时钟分频:不分频 TIM3->CR1 &=~(3<<5);// 选择计数模式:边沿对齐模式 TIM3->CCMR1 |= 1<<0; //CC1S='01' IC1FP1映射到TI1 TIM3->CCMR1 |= 1<<8; //CC2S='01' IC2FP2映射到TI2 TIM3->CCER &= ~(1<<1);//CC1P='0' IC1FP1不反相,IC1FP1=TI1 TIM3->CCER &= ~(1<<5);//CC2P='0' IC2FP2不反相,IC2FP2=TI2 TIM3->SMCR |= 3<<0; //SMS='011' 所有的输入均在上升沿和下降沿有效 TIM3->CNT = 0; //初始值 TIM3->CR1 |= 0x01; //CEN=1,使能定时器 }

9

2

2

1

2

2

10ms电机最多转0.333圈,而且把定时器中断时间缩小也会有类似问题

TIM3的编码器输入引脚是PA6和PA7,如果使用PC6和PC7,要使能引脚重映射。

STM32的定时器引脚如果接编码器,只能接到TIMx_CH1和TIMx_CH2上,可以实现向上向下计数,寄存器中有表示当前编码器方向的bit 位DIR

编码器使用教程与测速原理

编码器使用教程与测速原理 我们将通过这篇教程与大家一起学习编码器的原理,并介绍一些实用的技术。 1.编码器概述 编码器是一种将角位移或者角速度转换成一连串电数字脉冲的旋转式传感器,我们可以通过编码器测量到底位移或者速度信息。编码器从输出数据类型上分,可以分为增量式编码器和绝对式编码器。 从编码器检测原理上来分,还可以分为光学式、磁式、感应式、电容式。常见的是光电编码器(光学式)和霍尔编码器(磁式)。 2.编码器原理 光电编码器是一种通过光电转换将输出轴上的机械几何位移量转换成脉冲或数字量的传感器。光电编码器是由光码盘和光电检测装置组成。光码盘是在一定直径的圆板上等分地开通若干个长方形孔。由于光电码盘与电动机同轴,电动机旋转时,检测装置检测输出若干脉冲信号,为判断转向,一般输出两组存在一定相位差的方波信号。 霍尔编码器是一种通过磁电转换将输出轴上的机械几何位移量转换成脉冲或数字量的传感器。霍尔编码器是由霍尔码盘和霍尔元件组成。霍尔码盘是在一定直径的圆板上等分地布置有不同的磁极。霍尔码盘与电动机同轴,电动机旋转时,霍尔元件检测输出若干脉冲信号,为判断转向,一般输出两组存在一定相位差的方波信号。

可以看到两种原理的编码器目的都是获取AB相输出的方波信号,其使用方法也是一样,下面是一个简单的示意图。 3.编码器接线说明 具体到我们的编码器电机,我们可以看看电机编码器的实物。 这是一款增量式输出的霍尔编码器。编码器有AB相输出,所以不仅可以测速,还可以辨别转向。根据上图的接线说明可以看到,我们只需给编码器电源5V供电,在电机转动的时候即可通过AB相输出方波信号。编码器自带了上拉电阻,所以无需外部上拉,可以直接连接到单片机IO读取。

编码器测速

飞思卡尔智能车舵机和测速的控制设计与实现 时间:2010-04-1411:53:10来源:电子设计工程作者:雷贞勇谢光骥五邑大学 2.1舵机工作原理 舵机在6V电压下正常工作,而大赛组委会统一提供的标准电源输出电压为7.2V,则需一个外围电压转换电路将电源电压转换为舵机的工作电压6V。图2为舵机供电电路。 舵机由舵盘、位置反馈电位计、减速齿轮组、直流动电机和控制电路组成,内部位置反馈减速齿轮组由直流电动机驱动,其输出轴带动一个具有线性比例特性的位置反馈电位器作为位置检测。当电位器转角线性地转换为电压并反馈给控制电路时,控制电路将反馈信号与输入的控制脉冲信号相比较,产生纠正脉冲,控制并驱动直流电机正向或反向转动,使减速齿轮组输出的位置与期望值相符。从而达到舵机精确控制转向角度的目的。舵机工作原理框图如图3所示。 2.2舵机的安装与调节 舵机的控制脉宽与转角在-45°~+45°范围内线性变化。对于对速度有一定要求的智能车,舵机的响应速度和舵机的转向传动比直接影响车模能否以最佳速度顺利通过弯道。车模在赛道上高速行驶,特别是对于前瞻性不够远的红外光电检测智能车,舵机的响应速度及其转向传动比将直接影响车模行驶的稳定性,因此必须细心调试,逐一解决。由于舵机从执行转动指令到响应输出需占用一定的时间,因而产生舵机实时控制的滞后。虽然车模在进入弯道时能够检测到黑色路线的偏转方向,但由于舵机的滞后性,使得车模在转弯过程中时常偏离跑道,且速度越快,偏离越远,极大限制车模在连续弯道上行驶的最大时速,使得车模全程赛道速度很难进一步提高。为了减小舵机响应时间,在遵守比赛规则不允许改造舵机结构的前提下,利用杠杆原理,采用加长舵机力臂的方案来弥补这一缺陷,加长舵机力臂示意图如图4所示。

测速编码器

测速编码器技术参数 电机的位置检测在电机控制中是十分重要的,特别是需要根据精确转子位置控制电机运动状态的应用场合,如位置伺服系统。电机控制系统中的位置检测通常有:微电机解算元件,光电元件,磁敏元件,电磁感应元件等。这些位置检测传感器或者与电机的非负载端同轴连接,或者直接安装在电机的特定的部位。其中光电元件的测量精度较高,能够准确的反应电机的转子的机械位置,从而间接的反映出与电机连接的机械负载的准确的机械位置,从而达到精确控制电机位置的目的。本文主要介绍高精度的光电编码器的内部结构、工作原理与位置检测的方法。 一.光电编码器的介绍: 光电编码器是通过读取光电编码盘上的图案或编码信息来表示与光电编码器相连的电机转子的位置信息的。根据光电编码器的工作原理可以将光电编码器分为绝对式光电编码器与增量式光电编码器,下面我就这两种光电编码器的结构与工作原理做介绍。 1、绝对式光电编码器 绝对式光电编码器如图所示,他是通过读取编码盘上的二进制的编码信息来表示绝对位置信息的。编码盘是按照一定的编码形式制成的圆盘。图1是二进制的编码盘,图中空白部分是透光的,用“0”来表示;涂黑的部分是不透光的,用“1”来表示。通常将组成编码的圈称为码道,每个码道表示二进制数的一位,其中最外侧的是最低位,最里侧的是最高位。如果编码盘有4个码道,则由里向外的码道分别表示为二进制的23、22、21和20,4位二进制可形成16个二进制数,因此就将圆盘划分16个扇区,每个扇区对应一个4位二进制数,如0000、0001、…、1111。 按照码盘上形成的码道配置相应的光电传感器,包括光源、透镜、码盘、光敏二极管和驱动电子线路。当码盘转到一定的角度时,扇区中透光的码道对应的光敏二极管导通,输出低电平“0”,遮光的码道对应的光敏二极管不导通,输出高电

飞思卡尔光电编码器测速程序

#include /* common defines and macros */ #include /* derivative information */ #pragma LINK_INFO DERIV ATIVE "mc9s12xs128" volatile uint speed_back=0,temp=0; void delay_ms(uint ms) { volatile uint x=0; while(ms--) { for(x=2800;x>0;x--) { _asm(nop); _asm(nop); _asm(nop); _asm(nop); _asm(nop); _asm(nop); } } } //注意外接16M晶体。 //飞思卡尔推荐配置,主频道50MHZ,速度更快! void Init_PLL(void) { CLKSEL = 0X00; //disengage PLL to system PLLCTL_PLLON = 1; //turn on PLL SYNR = (0xc0|0x18); //SYDIV=0X18=24 REFDV = (0x40|0x07); //REFDIV=0X07=7 POSTDIV = 0x00; //pllclock=2*osc*(1+SYDIV)/(1+REFDIV)=100MHz; _asm(nop); //BUS CLOCK=50M _asm(nop); _asm(nop); _asm(nop); _asm(nop); _asm(nop); _asm(nop); _asm(nop); _asm(nop);

M法与T法在编码器测速方面的区别和频率问题

编码器的测速原理:M/T法 大家都比较清楚在闭环伺服系统中,编码器的反馈脉冲个数和系统所走位置的多少成正比,但对于怎样通过编码器所反馈的脉冲个数来求得电机的旋转速度了解的人就不是很多了。 根据脉冲计数来测量转速的方法有以下三种:(1)在规定时间内测量所产生的脉冲个数来获得被测速度,称为M法测速;(2)测量相邻两个脉冲的时间来测量速度,称为T法测速;(3)同时测量检测时间和在此时间内脉冲发生器发出的脉冲个数来测量速度,称为M/T 法测速。以上三中测速方法中,M法适合于测量较高的速度,能获得较高分辨率;T法适合于测量较低的速度,这时能获得较高的分辨率;而M/T法则无论高速低速都适合测量。以下只对T法测速进行详细介绍。 T法测速的原理是用一已知频率fc(此频率一般都比较高)的时钟脉冲向一计数器发送脉冲,计数器的起停由码盘反馈的相邻两个脉冲来控制,原理图见图1。若计数器读数为m1,则电机每分钟转速为nM=60fc/Pm1(r/min) 图1 T法测速原理 其中P为码盘一圈发出的脉冲个数即码盘线数,m1为 相邻两个脉冲间高频脉冲个数。测速分辨率:当对应转速由n1变为n2时则分辨率Q的定义为Q=n2-n1,Q值越小说明测量装置对转速变化越敏感即分辨率越高。因此可以得到T法测速的分辨率为 Q=60fc/Pm1-60fc/P(m1+1)= n2M P/(60fc+ nMP) 由上式可见随着转速nM的降低,Q值越小,即T法测速在低速时有较高的分辨率。 MT法测速之定量分析 速度测量是工控系统中最基本的需求之一,最常用的是用数字脉冲测量某根轴的转速,再根据机械比、直径换算成线速度。脉冲测速最典型的方法有测频率(M法)和测周期(T法)。定性分析: M法是测量单位时间内的脉数换算成频率,因存在测量时间内首尾的半个脉冲问题,可能会有2个脉的误差。速度较低时,因测量时间内的脉冲数变少,误差所占的比例会变大,所以M法宜测量高速。如要降低测量的速度下限,可以提高编码器线数或加大测量的单位时间,使用一次采集的脉冲数尽可能多。 T法是测量两个脉冲之间的时间换算成周期,从而得到频率。因存在半个时间单位的问题,可能会有1个时间单位的误差。速度较高时,测得的周期较小,误差所占的比例变大,所以T法宜测量低速。如要增加速度测量的上限,可以减小编码器的脉冲数,或使用更小更精确的计时单位,使一次测量的时间值尽可能大。 M法、T法各且优劣和适应范围,编码器线数不能无限增加、测量时间也不能太长(得考虑实时性)、计时单位也不能无限小,所以往往候M法、T法都无法胜任全速度范围内的测量。因此产生了M法、T法结合的M/T 测速法:低速时测周期、高速时测频率。 定量分析:

测速编码器说明书

BEN测速编码器在智能车舵机控制中的应用2.1 舵机工作原理 舵机在6 V电压下正常工作,而大赛组委会统一提供的标准电源输出电压为7.2 V,则需一个外围电压转换电路将电源电压转换为舵机的工作电压6 V。图2为舵机供电电路。 舵机由舵盘、位置反馈电位计、减速齿轮组、直流动电机和控制电路组成,内部位置反馈减速齿轮组由直流电动机驱动,其输出轴带动一个具有线性比例特性的位置反馈电位器作为位置检测。当电位器转角线性地转换为电压并反馈给控制电路时,控制电路将反馈信号与输入的控制脉冲信号相比较,产生纠正脉冲,控制并驱动直流电机正向或反向转动,使减速齿轮组输出的位置与期望值相符。从而达到舵机精确控制转向角度的目的。舵机工作原理框图如图3所示。 2.2 舵机的安装与调节 舵机的控制脉宽与转角在-45°~+45°范围内线性变化。对于对速度有一定要求的智能车,舵机的响应速度和舵机的转向传动比直接影响车模能否以最佳速度顺利通过弯道。车模在赛道上高速行驶,特别是对于前瞻性不够远的红外光电检测智能车,舵机的响应速度及其转向传动比将直接影响车模行驶的稳定性,因此必须细心调试,逐一解决。由于舵机从执行转动指令到响应输出需占用一定的时间,因而产生舵机实时控制的滞后。虽然车模在进入弯道时能够检测到黑色路线的偏转方向,但由于舵机的滞后性,使得车模在转弯过程中时常偏离跑道,且速度越快,偏离越远,极大限制车模在连续弯道上行驶的最大时速,使得车模全程赛道速度很难进一步提高。为了减小舵机响应时间,在遵守比赛规则不允许改造舵机结构的前提下,利用杠杆原理,采用加长舵机力臂的方案来弥补这一缺陷,加长舵机力臂示意图如图4所示。

51单片机PID调增量式光电编码器测速.

编码器输出的A向脉冲接到单片机的外部中断INT0,B向脉冲接到I/O端口P1.0。当系统工作时,首先要把INT0设置成下降沿触发,并开相应中断。当有有效脉冲触发中断时,进行中断处理程序,判别B脉冲是高电平还是低电平,若是高电平则编码器正转,加1计数;若是低电平则编码器反转,减1计数。 基于51单片机的直流电机PID闭环调速系统原理详解与程序 (2013-08-04 01:18:15) 转载▼ 标签: 分类:单片机 51单片 机 直流电 机 pid pcf8591 基于51单片机的直流电机PID闭环调速系统 1.电机转速反馈: 原理:利用光电编码器作为转速的反馈元件,设电机转一周光电编码器发送N个PWM波形,利用测周法测量电机转速。 具体实现:将定时器0设置在计数模式,用来统计一定的时间T内接受到的脉冲个数M个,而定时器0置在计时模式,用来计时T时间。则如果T时间接受到M个PWM波形,而电机转一圈发出N个PWM波形,则根据测周法原理,电机的实际的转速为:real_speed=M/(N*T),单位转/秒。若将定时器1置在计数模式,则PWM波形应该由P3^3脚输入。 代码实现:

//定时器0初始化,用来定时10ms void Init_Timer0(void) { TMOD |= 0x01; //使用模式1,16位定时器,且工作在计时模式 TH0=(65536-10000)/256; //定时10ms TL0=(65536-10000)%6; EA=1; //总中断打开 ET0=1; //定时器中断打开 TR0=1; //定时器开关打开 } // 计数器1初始化,用来统计定时器1计时250ms内PWM波形个数 void Init_Timer1(void) { TMOD |= 0x50; //使用计数模式1,16位计数器模式 TH1=0x00; //给定初值,由0往上计数 TL1=0x00; EA=1; //总中断打开 ET1=1; //定时器中断打开 TR1=1; //定时器开关打开 } //定时器0的中断服务子函数,主要完成脉冲个数的读取,实际转速的计算和PID 控制以及控制结 //果输出等工作 void Timer0_isr(void) interrupt 1 { unsigned char count; TH0=(65536-10000)/256; //重新赋值 10ms TL0=(65536-10000)%6;

编码器位置与速度检测

制作速度检测部件 实验报告 专业:机械设计制造及其自动化 姓名:xxx 学号:xxx 实验时间:2012-2013学年第2学期

制作速度检测部件 一、实验原理: 1.利用外部中断0对信号源在一定时间内产生的脉冲进行计数,并对外部中断0设置为跳变沿中断(IT0=1) 2.利用定时器0进行计时,并在中断程序中读取这段时间内产生的脉冲数,再利用脉冲数与路程之间的对应关系求得编码器的速度。 3. 光电开关的使用,如图: 测速方法: M 法测速 测取c T 时间内旋转编码器输出的脉冲个数1M ,用以计算这段时间内的平均转速,称作M法测速,图12所示。电机的转速为 r/min 601 c ZT M n = , M 法测速的分辨率: c c c ZT ZT M ZT M Q 60 60)1(6011= -+= M 法测速误差率: c T 1 M 图12 M 测速法原理图

% 1001%10060 ) 1(60 60%1111max ?=?-=M ZT M ZT M ZT M c c c δM 法测速适用于高速段, T 法测速 记录编码器两个相邻输出脉冲的间的高频脉冲个数M2,f0为高频脉冲频率,图13所示。 电机转速 r/min ZM f 60ZT 60n 2 t == T 法测速的分辨率: )1(6060)1(602202020-=--=M ZM f ZM f M Z f Q 或Zn f Zn Q -= 02 60 T法测速误差率: % 10011 %10060 60 )1(60%22 020 20max ?-=?-=M ZM f ZM f M Z f δ T 法测速适用于低速段。 M/T 法测速 把M 法和T 法结合起来,既检测TC 时间内旋转编码器输出的脉冲个数M1,又检测同一时间间隔的高频时钟脉冲个数M2,用来计算转速,称作M/T 法测速。采用M/T 法测速时,应保 2 M 2f M T t =图13 T 测速法 c T 1 M 2 M 图14 M/T 法测速原理图

基于51单片机的光电编码器测速报告

课程设计报告 课程名称:微机原理课程设计 题目:基于51单片机的光电编码器测速

光电编码器是高精度位置控制系统常用的一种位移检测传感器。在位置控制系统中,由于电机既可能正转,也可能反转,所以要对与其相连的编码器输出的脉冲进行计数,要求相应的计数器既能实现加计数,又能实现减计数,即进行可逆计数。其计数的方法有多种,包括纯粹的软件计数和硬件计数。文中分别对这两种常用的计数方法进行了分析,对其优缺点进行了对比,最后提出了一种新的计数方法,利用80C51单片机内部的计数器实现对光电编码器输出脉冲的加减可逆计数,既节省了硬件资源,又能得到较高的计数频率。本设计就是由单片机STC89C52RC芯片,光电编码器和1602液晶为核心,辅以必要的电路,构成了一个基于51单片机的光电编码器测速器。该系统有两个控制按键,分别用于控制每秒的转速和每分钟的转速,并将速度用1602液晶显示出来。该测速器测速精准,具有实时检测的功能,操作简单。 关键词:光电编码器,51单片机,C语言,1602液晶

一、设计任务与要求 (4) 1.1 设计任务 (4) 1.2 设计要求 (4) 二、方案总体设计 (5) 2.1 方案一 (5) 2.2 方案二 (5) 2.3 系统采用方案 (5) 三、硬件设计 (7) 3.1 单片机最小系统 (7) 3.2 液晶显示模块 (7) 3.3 系统电源 (8) 3.4光电编码器电路 (8) 3.5 整体电路 (9) 四、软件设计 (10) 4.1 keil软件介绍 (10) 4.2 系统程序流程 (10) 五、仿真与实现 (12) 5.1 proteus软件介绍 (12) 5.2 仿真过程 (12) 5.3 实物制作与调试 (13) 5.4 使用说明 (14) 六、总结 (15) 6.1 设计总结 (15) 6.2 经验总结 (15) 七、参考文献 (16)

M法与T法在编码器测速方面的区别和频率问题

编码器的测速原理: M/T法大家都比较清楚在闭环伺服系统中,编码器的反馈脉冲个数和系统所走位置的多少成正比,但对于怎样通过编码器所反馈的脉冲个数来求得电机的旋转速度了解的人就不是很多了。 根据脉冲计数来测量转速的方法有以下三种: (1)在规定时间内测量所产生的脉冲个数来获得被测速度,称为M法测速;(2)测量相邻两个脉冲的时间来测量速度,称为T法测速;(3)同时测量检测时间和在此时间内脉冲发生器发出的脉冲个数来测量速度,称为M/T法测速。 以上三中测速方法中,M法适合于测量较高的速度,能获得较高分辨率;T 法适合于测量较低的速度,这时能获得较高的分辨率;而M/T法则无论高速低速都适合测量。 以下只对T法测速进行详细介绍。 T法测速的原理是用一已知频率fc(此频率一般都比较高)的时钟脉冲向一计数器发送脉冲,计数器的起停由码盘反馈的相邻两个脉冲来控制,原理图见图 1。 若计数器读数为m1,则电机每分钟转速为nM=60fc/Pm1(r/min)图1 T法测速原理其中P为码盘一圈发出的脉冲个数即码盘线数,m1为相邻两个脉冲间高频脉冲个数。 测速分辨率: 当对应转速由n1变为n2时则分辨率Q的定义为Q=n2-n1,Q值越小说明测量装置对转速变化越敏感即分辨率越高。 因此可以得到T法测速的分辨率为Q=60fc/Pm1-60fc/P(m1+1)= n2M P/(60fc+ nMP)由上式可见随着转速nM的降低,Q值越小,即T法测速在低速时有较高的分辨率。

MT法测速之定量分析速度测量是工控系统中最基本的需求之一,最常用的是用数字脉冲测量某根轴的转速,再根据机械比、直径换算成线速度。 脉冲测速最典型的方法有测频率(M法)和测周期(T法)。 定性分析: M法是测量单位时间内的脉数换算成频率,因存在测量时间内首尾的半个脉冲问题,可能会有2个脉的误差。 速度较低时,因测量时间内的脉冲数变少,误差所占的比例会变大,所以M法宜测量高速。 如要降低测量的速度下限,可以提高编码器线数或加大测量的单位时间,使用一次采集的脉冲数尽可能多。 T法是测量两个脉冲之间的时间换算成周期,从而得到频率。 因存在半个时间单位的问题,可能会有1个时间单位的误差。 速度较高时,测得的周期较小,误差所占的比例变大,所以T法宜测量低速。 如要增加速度测量的上限,可以减码器的脉冲数,或使用更小更精确的计时单位,使一次测量的时间值尽可能大。 M法、T法各且优劣和适应范围,编码器线数不能无限增加、测量时间也不能太长(得考虑实时性)、计时单位也不能无限小,所以往往候M法、T法都无法胜任全速度范围内的测量。 因此产生了M法、T法结合的M/T测速法: 低速时测周期、高速时测频率。 定量分析: M/T法中的“低速”、“高速”如何确定呢?假定能接受的误差范围为1%、M 法测得脉冲数为f, T法测得时间为t。

基于51单片机的光电编码器测速

摘要 光电编码器是高精度位置控制系统常用的一种位移检测传感器。在位置控制系统中,由于电机既可能正转,也可能反转,所以要对与其相连的编码器输出的脉冲进行计数,要求相应的计数器既能实现加计数,又能实现减计数,即进行可逆计数。其计数的方法有多种,包括纯粹的软件计数和硬件计数。文中分别对这两种常用的计数方法进行了分析,对其优缺点进行了对比,最后提出了一种新的计数方法,利用80C51单片机内部的计数器实现对光电编码器输出脉冲的加减可逆计数,既节省了硬件资源,又能得到较高的计数频率。本设计就是由单片机STC89C52RC芯片,光电编码器和1602液晶为核心,辅以必要的电路,构成了一个基于51单片机的光电编码器测速器。该系统有两个控制按键,分别用于控制每秒的转速和每分钟的转速,并将速度用1602液晶显示出来。该测速器测速精准,具有实时检测的功能,操作简单。 关键词:光电编码器,51单片机,C语言,1602液晶

目录 一、设计任务与要求 (3) 1.1 设计任务 (3) 1.2 设计要求 (3) 二、方案总体设计 (4) 2.1 方案一 (4) 2.2 方案二 (4) 2.3 系统采用方案 (4) 三、硬件设计 (6) 3.1 单片机最小系统 (6) 3.2 液晶显示模块 (6) 3.3 系统电源 (7) 3.4光电编码器电路 (7) 3.5 整体电路 (8) 四、软件设计 (9) 4.1 keil软件介绍 (9) 4.2 系统程序流程 (9) 五、仿真与实现 (11) 5.1 proteus软件介绍 (11) 5.2 仿真过程 (11) 5.3 实物制作与调试 (12) 5.4 使用说明 (13) 六、总结 (14) 6.1 设计总结 (14) 6.2 经验总结 (14) 七、参考文献 (15)

怎样判断测速编码器的好与坏[1]

怎样判断测速编码器的好与坏 最佳答案 1、编码器静止时,可测得A、B相的电压为15V左右或者0V。 轻轻转动编码器时,应能轮流得到以上两种电压。A-、B-相应能得到0V或-15V电压。 2、编码器连续旋转时,输出得到的是电压有效值的平均值,可能只有3~5V左右的稳定电压值。 3、万用表只能做粗略检查,如果测量结果与上述描述相差太大,则可以初步认为编码器已有故障。 4、但是仅仅用万用表,是无法精确检查编码器是否完全正常的。 因为正常时,编码器是输出高频的脉冲信号的,所以建议你最好使用示波器来进行测量。 5、方法是:将编码器的输出A相或者B相信号接到示波器中,然后旋转编码器轴,如果此时在示波器上观察到高频的15V方波脉冲信号,则说明编码器是好的。 其他回答 1、用万用表电压档测试输出是否正常。 编码器为NPN输出时: 测量电源正极和信号输出线, 晶体管置ON时输出电压接近供电电压, 晶体管置OFF时输出电压接近0V。 编码器为PNP输出时: 测量电源负极和信号输出线, 晶体管置ON时输出电压接近供电电压, 晶体管置OFF时输出电压接近0V 2、把编码器拆下来,在不断电的情况下,用手转动编码器,同时观察屏幕显示的数据,看有没有变动,如数据不变动,该编码器就是坏的,如有变动,就证明该编码器是好的。

编码器一般情况下都要带电监测。如果编码器能拆下来最好,上电后用手转动编码器,伺服电机如果能根据编码器数值的变化运动证明是好的,如果上电后用手转动,数值不变化或者变化无规律就是坏的。但谨防出现飞车情况 用示波器测量看输出波形是否正常。 编码器一般情况下都要带电监测。 若安装在电机上,可以驱动器上电,盘车,在驱动器的窗口即可监控是否有速度。 再就是上电,低速转动编码器轴,测量电压。注意集电极开路输出型的,需要在电源正和信号输出之间跨接上拉电阻,否则量不出。 判断编码器的好坏,可以用万用表来判断, 1、由测速编码器为提供随动电机提供速度指令时,出现随动电机速度比其应有速度低的情况时,很可能是编码器问题。 2、由测速编码器提供设备速度信号在屏幕上显示时,显示的速度比实际速度低,很可能是编码器的问题。 3、由测速编码器相位用于工位的检测时,实际的工位与编码器相位有偏差时,可能时编码器故障。 除了编码器受到撞击等意外情况,编码器一般不会出现输出端无信号的情况,出故障也是有信号,但信号不正常。 必须用示波器测量。 1 编一段试验程序,编码器通电,观测结果。 2 通过示波器,直接看波形。此办法非常直观。

基于STC89C52光电码盘测速 C程序

基于STC89C52光电码盘测速C程序#include #include #define uint unsignedint #define uchar unsigned char float f=0; uchar LED0_data,LED1_data,LED2_data,LED3_data; uchari=0; uchar code table[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; void display(); void delay(uint v); voidinit(); /*定时器初始化*/ voidinit() { TMOD=0x51; //T1计数器,T0定时器,方式1 TH0=(65536-10000)/256; TL0=(65536-10000)%256; EA=1; //开总中断 TL1=0; TH1=0; ET0=1; //开定时器0中断 } /*延时子函数*/ void delay(unsigned int c) { unsignedinti,j; for(i=c;i>0;i--) for(j=110;j>0;j--); } /*将十进制数拆成送数码管的显示码*/ voiddectobit(intdec) { LED3_data=dec/1000; dec=dec % 1000; LED2_data=dec/100; dec=dec % 100;

LED1_data=dec/10; dec=dec % 10; LED0_data=dec; } /*显示程序*/ void display() { P0=table[LED3_data]; //个位 P2&=~0x01; delay(10); P2|=0x01; P0=table[LED2_data]; //十位 P2&=~0x02; delay(20); P2|=0x02; P0=table[LED1_data]; P2&=~0x04; delay(20); P2|=0x04; //百位P0=table[LED0_data]; //千位 P2&=~0x08; delay(20); P2|=0x08; } void main(void) { init(); TR0=1; //启动定时器0 TR1=1; while(1) { dectobit(f); display(); } }

光电编码器测速

实验三光电传感器转速测量实验 实验目的 1.通过本实验了解和掌握采用光电传感器测量的原理和方法。 2.通过本实验了解和掌握转速测量的基本方法。 实验原理 直接测量电机转速的方法很多,可以采用各种光电传感器,也可以采用霍尔元件。本实验采用光电传感器来测量电机的转速。 由于光电测量方法灵活多样,可测参数众多,一般情况下又具有非接触、高精度、高分辨率、高可靠性和相应快等优点,加之激光光源、光栅、光学码盘、CCD器件、光导纤维等的相继出现和成功应用,使得光电传感器在检测和控制领域得到了广泛的应用。光电传感器在工业上的应用可归纳为吸收式、遮光式、反射式、辐射式四种基本形式。图3.31说明了这四种形式的工作方式。 图3.31 光电传感器的工作方式 图3.32直射式光电转速传感器的结构图 直射式光电转速传感器的结构见图3.32。它由开孔圆盘、光源、光敏元件及缝隙板等组成。开孔圆盘的输入轴与被测轴相连接,光源发出的光,通过开孔圆盘和缝隙板照射到光敏元件上被光敏元件所接收,将光信号转为电信号输出。开孔圆盘上有许多小孔,开孔圆盘旋转一周,光敏元件输出的电脉冲个数等于圆盘的开孔数,因此,可通过测量光敏元件输出的脉冲频率,得知被测转速,即 n=f/N 式中:n - 转速f - 脉冲频率N - 圆盘开孔数。 反射式光电传感器的工作原理见图3.33,主要由被测旋转部件、反光片(或反光贴纸)、

反射式光电传感器组成,在可以进行精确定位的情况下,在被测部件上对称安装多个反光片或反光贴纸会取得较好的测量效果。在本实验中,由于测试距离近且测试要求不高,仅在被测部件上只安装了一片反光贴纸,因此,当旋转部件上的反光贴纸通过光电传感器前时,光电传感器的输出就会跳变一次。通过测出这个跳变频率f,就可知道转速n。 n=f 如果在被测部件上对称安装多个反光片或反光贴纸,那么,n=f/N。N-反光片或反光贴纸的数量。 图3.33 反射式光电转速传感器的结构图 实验仪器和设备 1. 计算机 n台 2. DRVI快速可重组虚拟仪器平台 1套 3. 并口数据采集仪(DRDAQ-EPP2)1台 4. 开关电源(DRDY-A)1台 5. 光电转速传感器(DRHYF-12-A) 1套 6. 转子/振动实验台(DRZZS-A)/(DRZD-A) 1 台 实验步骤及内容 1.光电传感器转速测量实验结构示意图如图3.34所示,按图示结构连接实验设备, 其中光电转速传感器接入数据采集仪A/D输入通道。 图3.34 转速测量实验结构示意图 2.启动服务器,运行DRVI程序,点击DRVI快捷工具条上的“联机注册”图标,选择 其中的“DRVI采集仪主卡检测”进行服务器和数据采集仪之间的注册。联机注册成功后,从DRVI工具栏和快捷工具条中启动“内置的Web服务器”,开始监听8500端口。 3.打开客户端计算机,启动计算机上的DRVI程序,然后点击DRVI快捷工具条上的“联 机注册”图标,选择其中的“DRVI局域网服务器检测”,在弹出的对话框中输入服务器IP地址(例如:192.168.0.1),点击“发送”按钮,进行客户端和服务器之间的认证,认证完毕即可正常运行客户端所有功能。 4.在收藏菜单栏中选中“实验指导书”菜单项打开WEB版实验指导书,在实验目录中

一种光电编码器抗振动测速的方法

一种光电编码器抗振动测速的方法 李汉 (广州航海高等专科学校轮机系,广东广州510725) 摘要:介绍了传动轴振动对编码器输出信号的影响,提出一种甄别光电编码器输出干扰脉冲的方法,并结合M/T 测速方法,形成基于光电编码器的抗振动测速和判向的方法,同时给出实验测试的结果。实验结果表明抗振动测速方法是有效的,与非抗振动测速方法相比,不仅扩大了测速范围,而且精度要高,具有较好的应用价值。 关键词:光电编码器;测速;振动 中图分类号:TP212 文献标识码:A Method of Vibration -proof Speed Measurement B ased on Optical E ncoder L I Han (Department of Marine Engineering ,Guangz hou Maritime College ,Guangz hou 510725,Guangdong ,China ) Abstract :The influence of vibration of transmission shaft on output signals of encoder was introduced and provided a way to distinguish the output interference impulses of optical encoder.Integrated with M/T speed testing method ,a new method of vibration -proof speed and direction testing was formed.In the meantime the result of the experiment indicate that compared with traditional speed testing ,this method of vibration -proof speed testing is effective in that it can enlarge the area of speed testing and is more accurate ,thus being practi 2cally valuable. K ey w ords :optical encoder ;speed measurement ;vibration 基金项目:广州航海高等专科学校科研项目(200812B06) 作者简介:李汉(1971-),男,硕士,副教授,Email :seascope @https://www.wendangku.net/doc/5118948078.html, 1 引言 光电编码器在工业测速有较为广泛的应用,光电编码器的应用技术不断产生。文献[1]采用恒基准脉冲法提高光电编码器测速的精度,文献[2]采用锁相环技术提高低速响应速度,但这些方 法都以光电编码器输出正交无干扰信号为前提,当测速系统处于较大振动的情况下是无能为力的。在振动较大的情况下,文献[3,4]分析了振动对光电编码器测速的影响并设计了抗干扰防振动电子线路。本文将介绍一种基于ARM7嵌入式系统的光电编码器抗振动测速和判向的方法及其应用效果。 2 振动对编码器输出信号的影响 目前使用光电编码器测速的方法有M 法、T 法和M/T 法。M 法测量一定周期内的脉冲数,T 法测量脉冲的周期值,M/T 法测量一定周期内的 整数个输入脉冲的时间值。这3种方法中应用较为广泛的是M/T 法,因为M/T 法能在短时间内高精度检出所测之速,且分辨率与转速无关。但要求编码器输出的脉冲是无干扰的脉冲信号,一旦出现干扰,测量的精确度将大大降低。 在控制系统中,当转速较高时,电机运行比较平稳,振动小,采用光电编码器测速准确度较高。但电机转速较低时,振动对光电编码器的影响较为明显,如果不加处理,测速结果将失去实际使用的价值。为了弄清振动对光电编码器输出信号的影响,我们使用步进电机作为驱动进行实验,研究 振动对光电编码器测速的影响,原因是:1)步进电机的转速与驱动脉冲频率有关,与负载无关,有利于获得准确的给定转速;2)步进电机的调速范围较宽;3)当转速低于某一转速时,步进电机每走一步转子都会产生震荡,借此研究振动对光电编码器测速性能的影响。经过监测表明,传动轴转动平稳、无振动时,光电编码器输出波形为A ,B 两 8 7电气传动 2010年 第40卷 第6期EL ECTRIC DRIV E 2010 Vol.40 No.6

电机测速方法的研究

电机速度测试方法的研究 一、基本内容 通常,常用的测速方法有:旋转轴编码器测速、直流发电机测速、交流测速发电机测速、光电测速等。本实验中用到轴编码器测速、交直流测速发电机测速以及无接触式转速表测速。 1、轴编码器测速及其原理 增量式编码器由主码盘、鉴向盘、光学系统和光电变换器组成。在主码盘(光电盘)周边上刻有节距相等的辐射状窄缝,形成均匀分布的透明区和不透明区。鉴向盘与主码盘平行,并刻有a、b两组透明检测窄缝,它们彼此错开1/4节距,以使A、B两个光电变换器的输出信号在相位上相差90°。工作时,鉴向盘静止不动,主码盘与转轴一起转动,光源发出的光投射到主码盘与鉴向盘上。当主码盘上的不透明区正好与鉴向盘上的透明窄缝对齐时,光线被全部遮住,光电变换器输出电压为最小;当主码盘上的透明区正好与鉴向盘上的透明窄缝对齐时,光线全部通过,光电变换器输出电压为最大。主码盘每转过一个刻线周期,光电变换器将输出一个近似的正弦波电压,且光电变换器A、B的输出电压相位差为90°。光电编码器的测量准确度与码盘圆周上的狭缝条纹数n有关,能分辨的角度α为: α=360°/n (1) 分辨率=1/n (2) 2、交直流测速发电机测速原理 通过负载带动发电机转动,发电机转动后根据电磁感应原理产生电动势,从而有对外输出电压U,输出电压U正比于转速,进而测出转速。 3、非接触式转速表测量原理 非接触式转速计系采用光电反射原理的量法(光学RPM 转速测量法)。转速计发射出的红外线经固定在待测目标上的反射条反射后,即携带有关转速的信息,当转速计接收到反射波后,经过处理即得到转速测量数据。 二、实验内容 1、采用无接触式转速表测速 序号n(r/min) n标准序号n(r/min) n标准 1 10 2 100 11 1100 1100 2 199 200 12 1201 1200 3 302 300 13 1300 1300 4 401 400 14 1400 1400 5 501 500 15 1501 1500 6 599 600 16 1600 1600 7 700 700 17 1700 1700

带UVW信号的增量式光电编码器在控制器测速中的应用

带UVW信号的增量式光电编码器在控制器测速中的应用 增量式光电编码器基础 ●增量式光电编码器示意图 ●在码盘上均匀地刻制一定数量的光栅,光栅一侧固定有光接收传感器,另一侧有固定光 源,使用时码盘随电机轴同步转动 ●码盘转动产生A、B和Z信号,A和B存在90度的相位差,用以产生正交脉冲信号,测 定位置增量,Z信号每转一圈触发一个窄脉冲,用来做基准校准 QEP信号解码 ●增量式旋转光电编码器输出A、B(占空比50%)和Z信号及其对应互补的差分信号, 滤波后经差动放大器分别输出QEP_A、QEP_B和QEP_INDEX三路信号,接入到DSP的QEI 模块这些波形的时序如下图

●根据A、B信号相位超前或滞后可以判断转向,脉冲的上下沿捕捉可以产生4倍频信 号提高编码器的分辨率,脉冲累加计数用来计算转子相对于Z起始点的确切位置 带定位信号U、V和W信号的增量式光电编码器 ●U、V和W信号用来给转子做初始定位,这三个脉冲互差120o电角度方波信号类似于直 流无刷电机位置传感器HALL的输出信号,在一个电角度周期,三个信号的输出组成6个状态,每个状态60o电角度 ●要使U、V和W信号能判断转子的初始定位,需要将U相信号上升沿和电机反电势和由 负到正过零点位置对齐 增量式光电编码器初始位置 ●编码器U信号和Z信号的关系 ●上面提及U、V和W信号类似于直流无刷的HALL传感器的信号,通常使用HALL使用时 已经把1个HALL安装到A相电机绕组磁势轴线位置,另外两个依次按照120o电角度顺序安装好,这样U相信号上升沿和电机A相反电势和由负到正过零点位置对齐,该位置定义为初始位置,此时。绕组A相轴线和转子D轴对齐 ●编码器安装好后,U相信号上升沿位置也就确定,所以编码器的初次安装一般而言需要 将U相信号标定到A相电机绕组磁势轴线位置 ●Z信号触发信号通常而言和编码器U相信号上升沿对齐,如果有偏差,需要加上校正因 子,这样Z信号就能反应电机的U相反电势零点位置即初始位置的位置 ●编码器安装好后,编码器U相信号和Z触发信号的位置是固定的,和A相绕组轴线存 在着对应关系,但电机转子的位置是随机的,可能在0到360o电角度6个扇区之间的任何一个位置,每个扇区的轴线与转子的D轴是随机的,定义该值θz。θz的物理含义是:每个扇区的轴线与转子D轴位置的差值。该差值是物理存在的,在矢量控制之前必须要学到 转子相位初始化 ●对于采用带U,V,W磁极信号的编码器来说,采用这个编码器能够把一个电角度周期分

带霍尔信号的增量式光电编码器在控制器测速中的应用

带霍尔信号的增量式光电编码器在控制器测速中的应用 一、增量式光电编码器基础 ●增量式光电编码器示意图 ●在码盘上均匀地刻制一定数量的光栅,光栅一侧固定有光接收传感器,另一侧有固定光 源,使用时码盘随电机轴同步转动 ●码盘转动产生A、B和Z信号,A和B存在90度的相位差,用以产生正交脉冲信号,测 定位置增量,Z信号每转一圈触发一个窄脉冲,用来做基准校准 二、QEP信号解码 ●增量式旋转光电编码器输出A、B(占空比50%)和Z信号及其对应互补的差分信号,滤 波后经差动放大器分别输出QEP_A、QEP_B和QEP_INDEX三路信号,接入到DSP的QEI 模块这些波形的时序如下图 ●根据A、B信号相位超前或滞后可以判断转向,脉冲的上下沿捕捉可以产生4倍频信号 提高编码器的分辨率,脉冲累加计数用来计算转子相对于Z起始点的确切位置

三、带定位信号U、V和W信号的增量式光电编码器 ●U、V和W信号用来给转子做初始定位,这三个脉冲互差120o电角度方波信号类似于直 流无刷电机位置传感器HALL的输出信号,在一个电角度周期,三个信号的输出组成6个状态,每个状态60o电角度 ●要使U、V和W信号能判断转子的初始定位,需要将U相信号上升沿和电机反电势和由 负到正过零点位置对齐 四、增量式光电编码器初始位置 ●编码器U信号和Z信号的关系 ●上面提及U、V和W信号类似于直流无刷的HALL传感器的信号,通常使用HALL使用时 已经把1个HALL安装到A相电机绕组磁势轴线位置,另外两个依次按照120o电角度顺序安装好,这样U相信号上升沿和电机A相反电势和由负到正过零点位置对齐,该位置定义为初始位置,此时。绕组A相轴线和转子D轴对齐 ●编码器安装好后,U相信号上升沿位置也就确定,所以编码器的初次安装一般而言需要 将U相信号标定到A相电机绕组磁势轴线位置 ●Z信号触发信号通常而言和编码器U相信号上升沿对齐,如果有偏差,需要加上校正因 子,这样Z信号就能反应电机的U相反电势零点位置即初始位置的位置 ●编码器安装好后,编码器U相信号和Z触发信号的位置是固定的,和A相绕组轴线存在 着对应关系,但电机转子的位置是随机的,可能在0到360o电角度6个扇区之间的任何一个位置,每个扇区的轴线与转子的D轴是随机的,定义该值θz。θz的物理含义是:每个扇区的轴线与转子D轴位置的差值。该差值是物理存在的,在矢量控制之前必须要学到 五、转子相位初始化 ●对于采用带U,V,W磁极信号的编码器来说,采用这个编码器能够把一个电角度周期分成 6个区间。当系统上电时,检测U,V,W三相的状态能够知道当前在哪个区间(0~5),从而得到θe=θZ+n*60+30. ●由于U,V,W只能分辨60o电角度,以0区间为例,电角度表示范围在0~60o之间,取其 中间值30o代表当前位置 ●对于磁钢表贴式永磁电机,通常采用id=0的控制方式,定子磁链矢量超前转子D轴90

相关文档
相关文档 最新文档