绝对编码器十六进制输入
Absolute Encoder hexadecimal input
问题:如何从绝对编码器接收输入,使其以十六进制/灰色代码输出到 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 运算符 | 将它们放在同一个字节中。
相关文章:
- 如何在openssl-ecc中获取十六进制格式的私钥
- 如何将包含epoch时间的十六进制字符串转换为time_t
- 将字符指针十六进制转换为字符串并保存在文本文件C++中
- 如何将一个ostringstream十六进制字符串字符对转换为单个unit8t等价的二进制值
- 如何在C++中用std::cout正确显示带十六进制的字符串文本
- 通过错误处理,在C++中可靠地获得用户十六进制输入
- 绝对编码器十六进制输入
- 使用无符号字符数组输入十六进制数
- 获取一个输入字符串,将其转换为其十六进制值,然后将其十六进制存储为 int
- 程序在 scanf( "%x" ,&foo) 上崩溃时尝试输入十六进制值
- 从输入中找到连续十六进制数字的最大数量
- 从命令行以十六进制形式输入参数
- 从命令行输入参数为带 N 字节的十六进制
- 如何将二进制十六进制文字输入 std::istream
- 十六进制输入到位集<64> C++
- 在一行代码中输入2个十六进制数字和一个字符串
- 为什么这个程序的结果是三个十进制数"597, 295, 295,"输入两个十六进制数"255 127<enter>"
- C++输入字节和输出十六进制
- 从输入文件读取十六进制列
- 一次输入十六进制字符串作为char