绝对值编码器十六进制输入

Absolute Encoder hexadecimal input

问题:如何从绝对编码器接收输入,使其以 hexadecimal/grey 代码输出到 Arduino?我应该使用 digitalRead 还是 analogRead 命令?我在网上找不到带有绝对编码器的示例 code/projects。

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

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

案例 2:analogRead(absEncdr == 11) arduino进入按键例程

等等

详情:绝对编码器型号:25LB22-G 编码器数据表是 here.

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

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

要阅读,您需要四个数字引脚。您可以读取四个引脚并将这些值移位到一个字节中,您可以将其与 data-sheet 中的 table 进行比较。

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

假设引脚的命名与数据sheet 中的真实 table 相同。

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