绝对编码器十六进制输入

时间:2018-10-18 23:29:22

标签: c++ arduino sensor msp432

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

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

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

情况2:analogRead(absEncdr == 11) arduino进入按钮例程

详细信息:Abs编码器类型:25LB22-G 编码器数据表为here

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

基本上,我不确定如何将此Abs编码器读取到Arduino中。

1 个答案:

答案 0 :(得分:0)

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

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

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

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