绝对编码器十六进制输入

Absolute Encoder hexadecimal input

本文关键字:输入 十六进制 编码器      更新时间:2023-10-16

问题:如何从绝对编码器接收输入,使其以十六进制/灰色代码输出到 Arduino? 我使用的是digitalRead还是analogRead命令?我无法在线找到带有绝对编码器的示例代码/项目。

总体目标:我想使用绝对编码器作为项目的旋钮。这个想法是编码器将其位置输出为要在 case 语句中使用的状态。即:

案例1:analogRead(absEncdr == 00)Arduino 进入空闲例程

案例2:analogRead(absEncdr == 11)Arduino 进入按钮例程

细节:绝对编码器类型:25LB22-G 编码器数据表在这里。

我正在使用十六进制/格雷码 4 位二进制代码十六进制-16 位置编码器版本

基本上,我不确定如何将这个abs编码器读取到我的Arduino中。

要阅读,您将需要四个数字引脚。 您可以读取四个引脚,并将这些值位移到一个字节中,以便与数据手册中的表格进行比较。

byte position = (digitalRead(pin8) << 3) | (digitalRead(pin4) << 2) | (digitalRead(pin2) << 1) | digitalRead(pin1);

假设引脚的命名与数据表中的真值表中相同。

我们使用 OR 运算符 | 将它们放在同一个字节中。