什么是增量编码器:工作原理及其应用
旋转编码器或轴编码器是一种用于改变轴的运动和角位置的机电设备。这些编码器有两种类型:绝对型和增量型。绝对编码器输出指示。。。
旋转编码器或轴编码器是一种用于改变轴的运动和角位置的机电设备。这些编码器有两种类型:绝对型和增量型。绝对编码器输出指示轴的当前位置,而增量编码器输出提供关于轴的运动的数据,该数据可以是与速度、距离和位置有关的数据。旋转编码器主要用于机械系统和计算机输入设备中需要监控的地方。因此,本文讨论了旋转编码器的一种类型,即增量编码器,以及它的工作和应用。
什么是增量编码器?
用于将轴的位置或角运动转换为模拟代码或数字代码以识别运动或位置的编码器被称为增量编码器。这些类型的编码器是最常用的旋转编码器。这些编码器主要用于基于定位和电机速度反馈的应用,如工业、轻型或伺服、重型等。
增量编码器的工作原理是,它通过光盘将轴的角位置改变为脉冲或数字信号。对于每转,都会生成脉冲数,其中每个脉冲都是与定义的分辨率相关的增量。
增量编码器规格
这个增量编码器的规格包括以下内容。
- 工作电压范围从5V到24V。
- 脉冲为500 P/R。
- 输出波形为方波。
- 回转速度为6000转/分。
- 轴的直径为4毫米。
- 阀体直径为25mm。
增量编码器类型
有不同的增量编码器输出类型。在选择此编码器时,您应该决定需要哪种输出才能与将使用编码器信号的应用设备很好地匹配。选择不正确的输出类型会影响不起作用的系统,硬件可能会损坏。因此,我们在这里解释三种增量解码器的输出类型,如TTL、HTL和Open collector。
HTL(推拉)
术语“HTL”代表“高晶体管逻辑”。这些电路可以在Totem设计中设计有两个晶体管,以产生输出通道,从而确保信号为低电平或高电平。这些电路的电源电压通常在8伏到30伏的范围内。一旦接通,该电路的输出电压电平等于施加的电压。同样,一旦断开,信号将被拉动以传输。

这种输出型电路用于PLC、运动控制器或其他接收设备需要12V或24V电平信号的情况。
RS422(TTL)
RS422电路提供不依赖于电压供应的稳定5V信号。TTL(晶体管-晶体管逻辑)提供RS422输出信号,该信号将为+5VDC。对于任何输入电压,您将在低条件下获得0V的输出,否则在高条件下获得5V的输出。

RS422的差分输出将提供出色的抗噪声性、快速的信号响应和利用长电缆长度的能力。不同型号编码器的电源电压范围为4.5至5.5VDC或10V至30VDC。
开路集电极NPN
一旦输出被去激活并且信号被激活时被拉低,这种输出类型是通过浮动信号电平的下沉输出。这种电路设计很简单,因此用于基于短电缆长度的应用。与HTL或TTL相比,开路集电极通常更容易受到电噪声的影响。

增量编码器电路图
增量编码器被用作基于Arduino的电路中的输入。这些可用于增加或减少不同任务的可变值,如电机速度控制或LED亮度控制。这里用于Arduino的旋转编码器模块是KY-040。该模块的引脚配置包括以下讨论的五个引脚。

- GND是接地连接。
- VCC是5V电源或3.3V电源。
- SW是按钮开关的输出(按下时为0V,静止时为5V。
- DT是一个数据输出。
- CLK是时钟输出。
增量编码器接线图如下所示。

在这个增量编码器布线电路中,增量编码器只需连接到Arduino UNO板。该模块的SW引脚可以直接连接到Arduino的引脚4,CLK引脚到引脚2,DT引脚连接到Aruino板的引脚-3。该模块的VCC直接连接到+5V,该模块的GND引脚连接到Arduino的GND针脚,如下所示。
一旦旋转增量编码器的旋钮,Arduino程序将检测CLK行内的变化。之后,它验证DT引脚的状态。
如果两者相似,则意味着编码器在CLK方向上腐烂,否则,则逆时针旋转。对于在此期间的每次检测,可变计数器的值也可以基于方向增加或减少。
带有增量编码器的Arduino接口示例程序
下面的程序是关于旋转编码器按钮状态的。如果按下按钮,程序将以“按下按钮”的形式打印到监视器上,并打印计数脉冲数的当前值。
//旋转编码器输入
#定义CLK 2
#定义DT 3
#定义SW 4
int计数器=0;
int currentStateCLK(当前状态CLK);
int lastStateCLK格式;
字符串currentDir=“”;
unsigned long lastButtonPress=0;
无效设置(){
//将编码器引脚设置为输入
引脚模式(CLK,INPUT);
引脚模式(DT,INPUT);
引脚模式(SW,INPUT_PULLUP);
//设置串行监视器
串行开始(9600);
//读取CLK的初始状态
lastStateCLK=数字读取(CLK);
}
空心环(){
//读取CLK的当前状态
currentStateCLK=数字读取(CLK);
//如果CLK的最后状态和当前状态不同,则出现脉冲
//只对1个状态变化做出反应以避免重复计数
if(currentStateCLK!=lastStateCLK&¤tStateCLK==1){
//如果DT状态不同于CLK状态,那么
//编码器逆时针旋转,因此递减
if(digitalRead(DT)!=当前状态CLK){
计数器–;
currentDir=“CCW”;
}其他{
//编码器顺时针旋转,因此递增
计数器++;
currentDir=“CW”;
}
串行打印(“方向:”);
串行打印(currentDir);
Serial.print(“|计数器:”);
Serial.println(计数器);
}
//记住上次CLK状态
lastStateCLK=当前状态CLK;
//读取按钮状态
int btnState=数字读取(SW);
//如果我们检测到LOW信号,按钮被按下
如果(btnState==LOW){
//如果自上一次LOW脉冲以来已经过去了50ms,则意味着
//按钮被按下、释放并再次按下
if(millis()–last按钮按下>50){
Serial.println(“按钮已按下!”);
}
//记住上次按下按钮的事件
lastButtonPress=毫秒();
}
//稍微延迟一下,以帮助消除读数的波动
延迟(1);
}
增量编码器与绝对编码器
这个增量编码器和绝对编码器的区别包括以下内容。
增量编码器 | 绝对编码器 |
这是一种旋转编码器。 | 它也是一种旋转编码器。 |
这些编码器用于测量速度、位置和距离,但此编码器无法保持上次测量的位置。 | 这些编码器用于测量角位置,但此编码器可以保持上次测量的位置。 |
这个编码器在整个操作过程中都需要电源。 | 这个编码器只读取数据时需要电源。 |
与绝对编码器相比,成本更低。 | 与增量编码器相比成本较高。 |
与绝对编码器相比,它不那么复杂。 | 它也同样复杂。 |
不需要电池。 | 需要一个电池。 |
如何选择增量编码器?
在为特定应用选择增量编码器时,需要考虑以下几个因素,
- 外径。
- 轴的类型和直径。
- 出线方式和电缆长度。
- 电压供应。
- 输出信号的类型。
- 脉冲计数。
- 信号的输出技术。
优点和缺点
这个增量编码器的优点包括以下内容。
- 制造非常简单。
- 它决定方向和速度。
- 成本更低。
- 简单的硬件。
- 使用简单。
- 速度控制。
- 缩放功能非常灵活。
- 它处理起来非常简单,因为它与另一个设计者的增量编码器兼容。
这个增量编码器的缺点包括以下内容。
- 生的所有标记都是一样的。
- 需要设置一个参考点。
- 如果没有电源,结果将丢失。
应用
这个增量式编码器的应用包括以下内容。
- 这些编码器通常用于计算用于监测目的的机械系统速度,否则用于提供用于控制运动的反馈或两者兼而有之。
- 这些编码器主要用于计算自动化、机床、印刷、包装等广泛行业和应用中的角位置。
- 它用于基于电机驱动的应用。
- 这些编码器将轴的角位置或运动改变为模拟代码或数字代码,以识别运动或位置。
因此,这一切都是关于增量编码器及其工作的概述。这个这些编码器的电气特性分别是:电源电压、电流消耗、输出电压、下降和上升时间以及频率响应。这里有一个问题要问你,你是如何读取增量编码器的?