【问题标题】:Absolute Encoder hexadecimal input绝对编码器十六进制输入
【发布时间】:2019-03-23 20:19:19
【问题描述】:

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

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

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

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

详情:绝对编码器类型:25LB22-G 编码器数据表为here

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

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

【问题讨论】:

    标签: c++ arduino sensors msp432


    【解决方案1】:

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

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

    假设引脚按照数据表的真值表中的方式命名。

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

    【讨论】:

    • 谢谢!我知道这不是原始问题的一部分,但是要使用 abs 编码器,我是否必须将引脚连接到上拉电阻?编码器有一个“通用”或接地引脚 - 但不会离题为编码器供电
    • 哎呀没关系!事实证明,应用程序中的“common”实际上是指公共电压。我用一个电阻将 C 引脚连接到 5V 电源轨。它有效!
    猜你喜欢
    • 1970-01-01
    • 2019-11-22
    • 2013-06-10
    • 2016-04-17
    • 1970-01-01
    • 1970-01-01
    • 2014-03-19
    • 1970-01-01
    • 2023-01-29
    相关资源
    最近更新 更多