问题:如何从绝对编码器接收输入,使其以十六进制/灰色代码输出到Arduino?我如何使用digitalRead
或analogRead
命令?我找不到在线绝对编码器的示例代码/项目。
总体目标:我想将绝对编码器用作项目的旋钮。这个想法是编码器将输出其位置作为要在case语句中使用的状态。即:
情况1:analogRead(absEncdr == 00)
arduino进入空闲例程
情况2:analogRead(absEncdr == 11)
arduino进入按钮例程
等
详细信息:Abs编码器类型:25LB22-G 编码器数据表为here。
我正在使用十六进制/格雷码4位二进制代码十六进制16位置编码器版本
基本上,我不确定如何将此Abs编码器读取到Arduino中。
答案 0 :(得分:0)
要阅读,您将需要四个数字引脚。您可以读取这四个引脚,并将这些值移位到一个字节,然后将其与数据表中的表进行比较。
byte position = (digitalRead(pin8) << 3) | (digitalRead(pin4) << 2) | (digitalRead(pin2) << 1) | digitalRead(pin1);
假设引脚的名称与数据表中真值表中的名称相同。
我们正在使用OR运算符|将它们放到同一个字节中