一个旋转编码器或轴编码器是一种机电装置,用于改变轴的运动,角度位置。这些编码器有两种类型,绝对式编码器和增量式编码器。这 绝对值编码器 输出指示轴的当前位置,而 增量编码器 输出提供有关轴运动的数据,这些数据可以是与速度、距离和位置相关的数据。旋转编码器主要用于机械系统和计算机输入设备中需要监视和控制的地方。因此,本文讨论了旋转编码器的一种类型,即增量编码器及其与应用的关系。
用于将轴的位置或角运动转换为模拟代码或数字代码以识别运动或位置的编码器称为增量编码器。这些 编码器的类型 是最常用的旋转编码器。这些编码器主要用于基于定位和电机速度反馈的应用,如工业、轻型或伺服、重型等。
增量编码器的工作原理是,它的工作原理是通过光盘将轴的角位置改变为脉冲或数字信号。每转一圈,就会产生脉冲数,其中每个脉冲都是与定义的分辨率相关的增量。
这 增量编码器规格包括以下内容。
•工作电压范围为 5V 至 24V。
•脉冲为 500 P/R。
•输出波形为方波。
•回转速度为 6000 RPM。
•轴的直径为4mm。
•机身直径为25毫米。
有不同的 增量编码器输出类型.选择此编码器时,应确定需要哪种输出才能与将使用编码器信号的应用设备完美匹配。选择不正确的输出类型将影响无法正常工作的系统,硬件可能会损坏。 因此,在这里我们解释了三种输出类型的增量解码器,如TTL,HTL和开放收集器。
术语“HTL”代表“高晶体管逻辑”。这些电路可以在图腾设计中设计有两个晶体管,以产生输出通道,以确保信号为低或高。这些电路的电源电压范围通常为 8V 至 30 VDC。该电路的输出电压电平等于接通后施加的电压。同样,一旦关闭,信号将被拉出以提供。
这种输出型电路用于PLC、运动控制器等其他接收设备需要12V或24V电平信号的地方。
RS422电路提供稳定的5V信号,不依赖于电源电压。TTL(晶体管-晶体管逻辑)提供 RS422 输出信号,该信号为 +5VDC。对于任何输入电压,您将获得输出,例如在低条件下为0V,否则在高条件下为5V。
RS422 的差分输出将提供出色的抗噪性、快速的信号响应以及利用长电缆的能力。不同型号编码器的电源电压范围为 4.5 至 5.5VDC 或 10V 至 30VDC。
此输出类型是一旦输出停用且信号在激活时被拉低,则通过浮动信号电平的灌电流输出。这种电路设计简单,因此用于基于短电缆长度的应用。与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引脚连接到Arduino板的引脚-3。该模块的 VCC 直接连接到 +5V,该模块的 GND 引脚连接到 Arduino 的 GND 引脚,如下所示。
旋转增量编码器的旋钮后,Arduino 程序将检测 CLK 线内的变化。之后,它会验证 DT 引脚的状况。
如果两者相似,则表示编码器在 CLK 方向上腐烂,否则,它逆时针旋转。对于同时进行的每次检测,变量计数器的值也可以根据方向增加或减少。
带增量编码器的 Arduino 接口示例程序
以下程序用于旋转编码器的按钮条件。如果按下按钮,则程序将作为“按下按钮”打印到监视器上,并打印计数脉冲数的现值。
旋转编码器输入
#define CLK 2
#define DT 3
#define SW 4
整数计数器 = 0;
int currentStateCLK;
int lastStateCLK;
字符串当前目录 =“”;
无符号长最后按钮按 = 0;
void setup() {
将编码器引脚设置为输入
引脚模式(CLK,输入);
引脚模式(DT,输入);
引脚模式(软件,INPUT_PULLUP);
设置串行监视器
串行开始(9600);
读取 CLK 的初始状态
lastStateCLK = digitalRead(CLK);
}
void loop() {
读取 CLK 的当前状态
currentStateCLK = digitalRead(CLK);
如果 CLK 的上次状态和当前状态不同,则发生脉冲
仅对 1 个状态更改做出反应,以避免重复计数
if (currentStateCLK != lastStateCLK && currentStateCLK == 1){
// 如果 DT 状态不同于 CLK 状态,则
// 编码器正在逆时针旋转,因此递减
if (digitalRead(DT) != currentStateCLK) {
counter –;
currentDir =”逆时针”;
} 别的 {
// 编码器正在顺时针旋转,因此递增
计数器 ++;
currentDir =”CW”;
}
Serial.print(“方向:”);
Serial.print(currentDir);
Serial.print(” | 计数器:”);
Serial.println(计数器);
}
// 记住最后的 CLK 状态
lastStateCLK = currentStateCLK;
// 读取按钮状态
int btnState = digitalRead(SW);
//如果我们检测到 LOW 信号,则按下按钮
if (btnState == LOW) {
//如果自上次 LOW 脉冲以来已经过去 50 毫秒,则意味着
//按钮已被按下、释放并再次按下
if (millis() – lastButtonPress > 50) {
Serial.println(“按下按钮!”);
}
// 记住最后一个按钮按下事件
lastButtonPress = millis();
}
// 稍微延迟一下以帮助消除读取
延迟(1);
}
相关传感器产品型号
•Baumer OptoTurn EN580E.ML绝对式工业编码器
•Baumer GM400- SSI绝对值工业编码器
•Baumer EN580C Profibus绝对式工业编码器
•Baumer ITD 01 A4Y1增量式工业编码器
•Baumer OptoPulse EN580E.IL增量式工业编码器
•Baumer optoPulse EIL580-B增量式工业编码器
•Baumer EIL580P-SC增量式工业编码器。
相关阅读:
相关阅读:
•IMU 传感器工作原理及其应用
•电压传感器购买指南,电压传感器购买注意事项
•应变片的工作原理及应变片的种类类型有哪些?