鱼香ROS社区
    • 版块
    • 最新
    • 未解决
    • 已解决
    • 群组
    • 注册
    • 登录
    紧急通知:禁止一切关于政治&VPN翻墙等话题,发现相关帖子会立马删除封号
    提问前必看的发帖注意事项: 社区问答规则(小鱼个人)更新 | 高质量帖子发布指南

    获取编码器的值始终为0

    已定时 已固定 已锁定 已移动
    FishBot二驱机器人
    二驱机器人 编码器
    2
    2
    245
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • F
      fpj1010
      最后由 编辑

      问题描述:

      在9.3.2章节中,尝试获取编码器的值,轮子匀速运动,但打印一直显示为0。

      具体细节和上下文及尝试方案:

      1、初步排查是否为代码问题,仔细检查无异常
      2、 排查是否为硬件问题(控制板/电机)
      使用万用表蜂鸣器档位测量了IO32和IO33(电机1的编码口也就是图中的黄色和绿色)、IO25和IO26(电机2的编码口也就是图中的黄色和绿色)
      2.1 在正常接线且未开机情况下,两组均未导通。
      2.2 在正常接线且开机情况下,两组均导通。
      2.3 在如图异常接线且未开机情况下,两组均未导通。
      2.4 在如图异常接线且开机情况下,电机2导通(即io32和io33),电机1拔出的黄色和绿色端口未导通且控制板上ESP_IO25和26也未导通。导致无法判断是电机编码器的问题还是主控板的问题。

      微信图片_20250322234038.jpg

      打印内容

      tick1 = 0, tick2 = 0
      tick1 = 0, tick2 = 0
      tick1 = 0, tick2 = 0

      代码:

      #include <Arduino.h>
      #include <Esp32PcntEncoder.h>
      #include <Esp32McpwmMotor.h>
      
      Esp32PcntEncoder encoders[2];
      Esp32McpwmMotor motor;
      
      void setup()
      {
          Serial.begin(115200); // 初始化串口通信,波特率为115200
      
          encoders[0].init(0, 32, 33);
          encoders[1].init(1, 26, 25);
      
          motor.attachMotor(0, 22, 23);
          motor.attachMotor(1, 12, 13);
      
          motor.updateMotorSpeed(0, 70);
          motor.updateMotorSpeed(1, 70);
      }
      
      void loop()
      {
          delay(100);
      
          Serial.printf("tick1 = %d, tick2 = %d\n", encoders[0].getTicks(), encoders[1].getTicks());
      }
      
      小鱼小 1 条回复 最后回复 回复 引用 0
      • 小鱼小
        小鱼 技术大佬 @fpj1010
        最后由 编辑

        @fpj1010 确保代码下载正确 确保接线正确 还不行可以把板子寄回来检测

        新书配套视频:https://www.bilibili.com/video/BV1GW42197Ck/

        1 条回复 最后回复 回复 引用 0
        • 第一个帖子
          最后一个帖子
        皖ICP备16016415号-7
        Powered by NodeBB | 鱼香ROS