获取编码器的值始终为0
-
问题描述:
在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也未导通。导致无法判断是电机编码器的问题还是主控板的问题。打印内容
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()); }
-
@fpj1010 确保代码下载正确 确保接线正确 还不行可以把板子寄回来检测