查看: 268|回复: 11

esp8266+a4988驱动步进电机问题

[复制链接]

该用户从未签到

发表于 2020-7-29 11:24 | 显示全部楼层 |阅读模式
本帖最后由 lcs129 于 2020-7-29 11:39 编辑

使用ESP8266+A4988驱动步进电机的时候,电机持续转动时,会间隔一会停一下同时指示灯闪一下。并且只是用ESP8266跑代码其他都不接,指示灯也会过一会闪一下。是同样的代码放到Uno上面跑,就不会有这个情况。请问朋友们有遇到过的吗?是什么原因是否可以分析一下。视频我这边一会上。YOUKU正在审核

  1. const int Moto1stepPin = D6;
  2. const int Sensor1Pin = D1;
  3. const int PlaySpeed = 800;
  4. const int ZeroSpeed = 200;

  5. void setup() {
  6. //   Serial.begin(9600);      
  7. //    CSHWiFi();
  8.     CSHMoto();  
  9. }

  10. void loop() {
  11.   MotoGozero();
  12.   }

  13. void CSHMoto(){
  14.   pinMode(Moto1stepPin,OUTPUT);
  15.   pinMode(Sensor1Pin,OUTPUT);
  16. }

  17. void MotoGozero(){
  18.   while(digitalRead(Sensor1Pin) == LOW){ \\Sensor1Pin接的一个按钮,这个按钮一直没有按的情况下就会停
  19.      digitalWrite(Moto1stepPin, HIGH);
  20.      delayMicroseconds(ZeroSpeed);
  21.      digitalWrite(Moto1stepPin, LOW);
  22.      delayMicroseconds(ZeroSpeed);
  23.   }
  24. }
复制代码





该用户从未签到

 楼主| 发表于 2020-7-29 11:35 | 显示全部楼层
  • TA的每日心情
    无聊
    2020-8-14 14:32
  • 签到天数: 20 天

    [LV.4]偶尔看看III

    发表于 2020-7-29 22:18 | 显示全部楼层
    有可能是你程序跑疯了触发看门狗,也有可能是供电问题
  • TA的每日心情
    奋斗
    2020-8-15 11:13
  • 签到天数: 46 天

    [LV.5]常住居民I

    发表于 2020-7-30 13:25 | 显示全部楼层
    //   Serial.begin(9600);      
    你把这句放开试试

    该用户从未签到

     楼主| 发表于 2020-7-31 16:44 | 显示全部楼层
    问题找到了 因为delayMicroseconds(ZeroSpeed); 这句占用资源可能比较大 改为delay就不会有问题。在配合A4988 系分数 电机就可以正常运行了
  • TA的每日心情
    奋斗
    2020-8-15 11:13
  • 签到天数: 46 天

    [LV.5]常住居民I

    发表于 2020-7-31 19:50 | 显示全部楼层
    lcs129 发表于 2020-7-31 16:44
    问题找到了 因为delayMicroseconds(ZeroSpeed); 这句占用资源可能比较大 改为delay就不会有问题。在配合A49 ...

    不应该吧。
    你的Sensor1Pin接按钮为啥设为OUTPUT?
    按钮按下时是高电平吗?

    该用户从未签到

     楼主| 发表于 2020-7-31 20:31 | 显示全部楼层
    ifeue 发表于 2020-7-31 19:50
    不应该吧。
    你的Sensor1Pin接按钮为啥设为OUTPUT?
    按钮按下时是高电平吗?

    我确实没有注意这里写错了。我在修改一下这里再试试,不过现在通过串口输出看到有报错,是软重启的错误。
  • TA的每日心情
    奋斗
    2020-8-15 11:13
  • 签到天数: 46 天

    [LV.5]常住居民I

    发表于 2020-7-31 20:35 | 显示全部楼层
    lcs129 发表于 2020-7-31 20:31
    我确实没有注意这里写错了。我在修改一下这里再试试,不过现在通过串口输出看到有报错,是软重启的错误。 ...

    你把delayMicroseconds换成delay其实就是多延时了一些时间。好像不是真正原因。

    该用户从未签到

     楼主| 发表于 2020-7-31 20:38 | 显示全部楼层
    ifeue 发表于 2020-7-31 20:35
    你把delayMicroseconds换成delay其实就是多延时了一些时间。好像不是真正原因。 ...

    是的我也是百度到别人遇到类似问题,然后被人给修改的代码就加了一个延迟。其他都没变化,所以我也这样修改试了一下。我明天在测试看看是不是因为写错了
  • TA的每日心情
    奋斗
    2020-8-15 11:13
  • 签到天数: 46 天

    [LV.5]常住居民I

    发表于 2020-7-31 20:51 | 显示全部楼层
    lcs129 发表于 2020-7-31 20:38
    是的我也是百度到别人遇到类似问题,然后被人给修改的代码就加了一个延迟。其他都没变化,所以我也这样修 ...

    我也是挺好奇的。想知道你最终是如何解决的,也长点知识。明天告知一下结果。
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    热门推荐

    5分钟带你快速了解新一代开发板:M5STACK
    5分钟带你快速了解新一代
    一、什么是M5Stack M5Stack是一种模块化、可堆叠扩展的开发板,每个模块
    Arduino UNO中文数据手册
    Arduino UNO中文数据手册
    2018.9.23重新翻译整理 转载请注明来自Arduino中文社区,并附本帖链接 本帖地址:http
    LabVIEW监控温度传感器
    LabVIEW监控温度传感器
    这里涉及 dht11 数字温度湿度传感器模块、TM1637数码显示模块、LabVIEW。 功能
    黑乌鸦的Arduino兵器库-----DS1302时钟模块
    黑乌鸦的Arduino兵器库---
    嗯 这是一个系列后期会罗列几乎所有的常见基础模块的demo所以 大家的回复将是我最大
    中文 字库 的8针 OLED 12864模块 arduino
    中文 字库 的8针 OLED 128
    屏幕电路SPI连线: 中文字库OLED Arduino UNO GND GND
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
    快速回复 返回顶部 返回列表