什么是编码器和译码器 简述编码器和译码器的区别

是编码器技术发展和广泛应用工业设备的结果,但是编码器的具体功能是什么?编码器应用于哪些行业?我觉得还是有很多行业新人不太熟悉。现在,让编码器制造商石硕电子(gdshishuo.com

本文最后更新时间:  2023-04-30 12:56:37

是编码器技术发展和广泛应用工业设备的结果,但是编码器的具体功能是什么?编码器应用于哪些行业?我觉得还是有很多行业新人不太熟悉。现在,让编码器制造商石硕电子(gdshishuo.com)边肖公司在这里给你简单介绍一下!结合一些帖子和申请过程中的一些问题,然后总结归纳。

一、编码器概述

编码器是一种旋转传感器,将角位移或角速度转换成一系列电子数字脉冲。我们可以通过编码器测量位移或速度信息。根据输出数据的类型,编码器可分为增量式编码器和绝对式编码器。

从编码器检测的原理来说,可以分为光学式、磁性式、电感式和电容式。常见的有光电编码器(光学)和霍尔编码器(磁性)。

二、编码器的原理

光电编码器是一种通过光电转换将输出轴上的机械几何位移转换成脉冲或数字量的传感器。光电编码器由光学编码器和光电检测装置组成。光码盘是一个有一定直径的圆盘,均匀开有几个长方形的孔。由于光电编码器与电机同轴,当电机旋转时,检测装置检测并输出几个脉冲信号。为了判断旋转方向,一般输出两组有一定相位差的方波信号。

霍尔编码器是通过磁电转换将输出轴上的机械几何位移转换成脉冲或数字量的传感器。霍尔编码器由霍尔编码器和霍尔元件组成。霍尔编码器安装在一定直径的圆盘上,不同磁极等距排列。霍尔编码器与电机同轴。当电机旋转时,霍尔元件检测并输出几个脉冲信号。为了判断旋转方向,一般输出两组有一定相位差的方波信号。

三、电机编码器的接线

这是平衡车上的编码器。

车轮上有一根电线,最边上的两根是电机电源线,由tb6612驱动,可以用来控制电机的速度和转向。然后中间四个是编码器接口。

注意~使用的两个编码器是反向连接的。如果车轮旋转方向相同,测试期间计数值相反,只需改变AB相位。或者在其中一个数字前加一个减号。

然后编码器电源是5v,电源问题,这是增量输出霍尔编码器。编码器有AB相输出,不仅可以测量速度,还可以判断旋转方向。根据上图的接线说明,我们可以看到,我们只需要给编码器电源提供5V的电压,在电机旋转的时候就可以通过AB相输出方波信号。编码器自带上拉电阻,无需外部上拉电阻,可直接由MCU IO读取。

当然,这并不意味着编码器必须使用定时器作为接口。有些微控制器没有编码器接口的功能,可以用外部中断代替。编码器A相的输出连接到MCU的外部中断输入端口,这样就可以通过跳变沿触发中断,然后在相应的外部中断服务函数中用B相的电平来判断正反转。当A相当于一个跳变沿时,B相的高电平为正,低电平为负。那么普通的io口也可以处理。

但是使用stm32作为编码器接口的好处是计数更加智能,允许接口抖动而不影响结果。而且配置代码很多,直接拉过来用就行了。因此,引入stm32定时器作为编码器接口。

第四,定时器作为编码器接口的配置方法。

1.计数模式

现在对应以上两个数字,很明显,把T1和T2一起算更准确,也就是做到“四倍频”

2.过滤级别

3.计算重载值。

就是给“
Tim _ time base structure . Tim _ period”赋值,

这些都写在代码的注释里。

第五,重视编码器的应用

1.编码器有速度上限。如果超过这个上限,它将无法正常工作。这是硬件限制。原则上,线程越多,速度越低。你在选择类型时应该注意这一点。编码器的输出一般是开漏的,所以MCU的io必须上拉输入状态。

2.定时器初始化后,CNT寄存器的值就是任意时刻编码器的位置信息。正向旋转时增加,反向旋转时减少。这部分不需要软件干预。初始化时给定的TIM_Period的值应该是代码合并圈的刻度值,减法溢出后会自动修正为这个数。如果添加的值超过这个值,它将返回到0。

3.如果要扩展到多圈计数,就需要一个溢出中断。

4.编码器各定时器的输入引脚可通过软件设置和过滤。

5.如果应用中没有绝对位置信号,或者初始化后收到绝对位置信号之前的计数,只能是相对计数。在接收到绝对位置信号后,CNT的值再次被修改。一般来说,编码器有零位信号,它可以与定时器结合来捕捉输入。通电后需要来回移动才能找到这个位置。

6.即使有过滤计数值,偶尔也会有错误。大部分或者几圈都是正常的,尤其是速度比较高的时候,需要有绝对位置信号进行修正。绝对位置信号不需要在零位。接收到该信号后,CNT可以被校正为固定值。

7.编码器启动定时器的输入中断可以在每一步进行处理,但在高速运行时可能无法处理。

光电编码器是一种通过光电转换将输出轴上的机械几何位移转换成脉冲或数字量的传感器。光电编码器由光学编码器和光电检测装置组成。光学编码器是一个固定直径的圆板,它被等分成若干个矩形孔。由于光电编码器与电机同轴,当电机旋转时,检测装置检测并输出多个脉冲信号。为了判断转向,一般输出两组有一定相位差的方波信号。

霍尔编码器是通过磁电转换将输出轴上的机械几何位移转换成脉冲或数字量的传感器。霍尔编码器由霍尔编码器和霍尔元件组成。霍尔码盘是一个直径固定的圆板,不同的磁极在圆板中均匀排列。霍尔编码器与电机同轴。当电机旋转时,霍尔元件检测并输出多个脉冲信号。为了判断转向,一般输出两组有一定相位差的方波信号。

三、电机编码器接线

这是平衡车上的编码器。

车轮上有两根电线,最外侧的两根是电机电源线,用tb6612驱动时可以控制电机的转速和转向。然后中间四个是编码器接口。

注意,两个编码器的使用方向相反。如果在测试过程中车轮以相同的方向旋转,并且计数值彼此相反,只需改变AB相位。或者在其中一个数字前面放一个符号。

然后编码器的电源是5v,是增量输出的霍尔编码器。编码器有AB相输出,不仅可以测量速度,还可以识别转向方向。根据上图的接线说明,我们可以看到,我们只需要给编码器电源提供5V的电压,就可以在电机旋转的时候通过AB相输出方波信号。编码器自带上拉电阻,可以直接连接到MCU IO进行读取,无需外部上拉。

当然,这并不意味着编码器必须使用定时器作为接口。有些单片机没有编码器接口的功能,但也可以用外部中断代替。将编码器A相输出连接到单片机的外部中断输入端口,使中断由跳变沿触发,然后在相应的外部中断服务功能中,由B相的电平决定正反转。当A相当于一个跳变沿时,B相的高电平为正,低电平为负。然后,普通io口也可以处理。

然而,使用stm32作为编码器接口的优点是计数是智能的,允许接口抖动而不影响结果。而且配置的代码非常多,拉的时候就可以用。所以这里引入stm32定时器作为编码器接口。

第四,采用定时器作为编码器接口的配置方式

1、计数模式

从上面两个数字的对应关系来看,显然和T1、T2一起算更准确,也就是做到“四倍频”

2、过滤级别

3.计算重装值

就是给“
Tim _ time base structure . Tim _ period”赋值,

这些都写在代码的注释里。

六、编码器应用注意事项

1.编码器有一个速度上限,超过它就不能正常工作。这是硬件限制。原则上,导线数量越多,速度越低。选择编码器时应注意这一点。编码器的输出一般是开漏的,所以单片机的io必须上拉输入状态。

2.定时器初始化后,CNT寄存器的值就是任意时刻编码器的位置信息。这部分不需要软件干预,初始化时给定的TIM_Period值应该是代码合并圈的刻度值,减少溢出时会自动修正到这个数。增加超过这个值,它将返回到0。

3.如果需要溢出中断扩展到多圈计数,如楼主所说,在程序上加减圈计数的方向位即可。

4.编码器各定时器的输入引脚可通过软件设置进行过滤。

5.在应用中,如果没有绝对位置信号或者初始化后没有收到绝对位置信号,那么之前的计数只能是相对的。在接收到绝对位置信号之后,再次修改CNT值就足够了。一般情况下,码盘有零位信号,可与定时器捕捉输入结合使用。通电后,你要来回移动才能找到这个位置。

6.即使有过滤计数值,偶尔也会有错误。一圈数多一个或者数少一个都是正常的,尤其是转速比较高的时候。需要有绝对位置信号进行校正。绝对位置信号不需要在零位置点。接收到该信号后,CNT可以被校正为固定值。

7.编码器启动定时器的输入中断可以达到处理每一步计数的效果,但是高速运行时你可能处理不了。

温馨提示:内容均由网友自行发布提供,仅用于学习交流,如有版权问题,请联系我们。