esp8266+a4988驱动步进电机问题
本帖最后由 lcs129 于 2020-7-29 11:39 编辑使用ESP8266+A4988驱动步进电机的时候,电机持续转动时,会间隔一会停一下同时指示灯闪一下。并且只是用ESP8266跑代码其他都不接,指示灯也会过一会闪一下。是同样的代码放到Uno上面跑,就不会有这个情况。请问朋友们有遇到过的吗?是什么原因是否可以分析一下。视频我这边一会上。YOUKU正在审核
https://player.youku.com/embed/XNDc3MjMyMDg0NA==
const int Moto1stepPin = D6;
const int Sensor1Pin = D1;
const int PlaySpeed = 800;
const int ZeroSpeed = 200;
void setup() {
// Serial.begin(9600);
// CSHWiFi();
CSHMoto();
}
void loop() {
MotoGozero();
}
void CSHMoto(){
pinMode(Moto1stepPin,OUTPUT);
pinMode(Sensor1Pin,OUTPUT);
}
void MotoGozero(){
while(digitalRead(Sensor1Pin) == LOW){ \\Sensor1Pin接的一个按钮,这个按钮一直没有按的情况下就会停
digitalWrite(Moto1stepPin, HIGH);
delayMicroseconds(ZeroSpeed);
digitalWrite(Moto1stepPin, LOW);
delayMicroseconds(ZeroSpeed);
}
}
https://player.youku.com/embed/XNDc3MjMyMDg0NA==
有可能是你程序跑疯了触发看门狗,也有可能是供电问题 // Serial.begin(9600);
你把这句放开试试 问题找到了 因为delayMicroseconds(ZeroSpeed); 这句占用资源可能比较大 改为delay就不会有问题。在配合A4988 系分数 电机就可以正常运行了 lcs129 发表于 2020-7-31 16:44
问题找到了 因为delayMicroseconds(ZeroSpeed); 这句占用资源可能比较大 改为delay就不会有问题。在配合A49 ...
不应该吧。
你的Sensor1Pin接按钮为啥设为OUTPUT?
按钮按下时是高电平吗? ifeue 发表于 2020-7-31 19:50
不应该吧。
你的Sensor1Pin接按钮为啥设为OUTPUT?
按钮按下时是高电平吗?
我确实没有注意这里写错了。我在修改一下这里再试试,不过现在通过串口输出看到有报错,是软重启的错误。 lcs129 发表于 2020-7-31 20:31
我确实没有注意这里写错了。我在修改一下这里再试试,不过现在通过串口输出看到有报错,是软重启的错误。 ...
你把delayMicroseconds换成delay其实就是多延时了一些时间。好像不是真正原因。 ifeue 发表于 2020-7-31 20:35
你把delayMicroseconds换成delay其实就是多延时了一些时间。好像不是真正原因。 ...
是的我也是百度到别人遇到类似问题,然后被人给修改的代码就加了一个延迟。其他都没变化,所以我也这样修改试了一下。我明天在测试看看是不是因为写错了 lcs129 发表于 2020-7-31 20:38
是的我也是百度到别人遇到类似问题,然后被人给修改的代码就加了一个延迟。其他都没变化,所以我也这样修 ...
我也是挺好奇的。想知道你最终是如何解决的,也长点知识。明天告知一下结果。
页:
[1]
2