0

问题:如何从绝对编码器接收输入,使其以十六进制/灰色代码输出到 Arduino?我应该使用digitalReadoranalogRead命令吗?我在网上找不到带有绝对编码器的示例代码/项目。

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

case1:analogRead(absEncdr == 00) arduino 进入空闲程序

case2:analogRead(absEncdr == 11) arduino 进入按钮程序

ETC

详细信息:绝对编码器类型:25LB22-G 编码器数据表在这里

我正在使用十六进制/格雷码 4-Bit Binary Code Hexadecimal-16 位置编码器版本

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

4

1 回答 1

0

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

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

假设引脚的命名与数据表中的真值表中的一样。

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

于 2018-10-19T00:22:01.573 回答