查看: 1842|回复: 4

[未解决] AccelStepper库控制步进电机时,程序只能运行一次,

[复制链接]

该用户从未签到

发表于 2018-12-12 17:44 | 显示全部楼层 |阅读模式
使用Accelstepper库控制一路步进电机,当串口信号为49时,正转,串口信号为50时,反转,现在的问题是,第一次按键有效,电机正常执行动作,执行完毕后程序就再没有相应了,串口就进不来数据了,请大为大神帮忙诊断一下,问题出在什么地方,下面是我的代码:


kittenblock中小学创客名师推荐的图形化编程软件

#include <AccelStepper.h>
#include <MultiStepper.h>
AccelStepper stepper1(1, 6, 7);

void setup()
{
  Serial.begin(9600);
  Serial1.begin(57600);
  stepper1.setMaxSpeed(4000);
  stepper1.setAcceleration(3000);
  stepper1.setMinPulseWidth(20);
}

void loop()
{  
    if (Serial1.available() > 0)
    {
      delay(100); // 等待数据传完
      int numdata = Serial1.available();
      int val = Serial1.read();
      if (val == 49)
      {
        Y_MoveToEnd();        
      }
      else if (val == 50)
      {
        Y_MoveToStart();       
      }
      while (Serial1.read() >= 0) {} //清空串口缓存
    }          
  } 
   stepper1.run();
}

void Y_MoveToEnd()
{
  
  if (stepper1.currentPosition() == 0)
  {
    stepper1.moveTo(4000);   
  } 
}

void Y_MoveToStart()
{
  if (stepper1.currentPosition() == 4000)
  {
    stepper1.moveTo(0);   
  }
}


该用户从未签到

 楼主| 发表于 2018-12-12 17:49 | 显示全部楼层
子函数里换成别的什么语句,程序都执行没有问题,就是一用这个ACCELSTEPPER的库就不行
  • TA的每日心情
    奋斗
    2019-3-13 19:17
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    发表于 2018-12-13 12:42 | 显示全部楼层
    Serial1.read()是只读取一个字节的。比如你串口输入49,实际上你的int val = Serial1.read();这句只读取到了4,并没有读取到9。 你需要拼接字符才行。能理解么?
  • TA的每日心情
    奋斗
    2019-3-13 19:17
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    发表于 2018-12-13 12:43 | 显示全部楼层
    你可以打印一下val看看是不是这样的情况。
  • TA的每日心情
    开心
    2020-4-18 15:28
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    发表于 2020-5-22 22:25 | 显示全部楼层
    感觉是AccelStepper库 站用了串口 我的也是这个情况
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    热门推荐

    5分钟带你快速了解新一代开发板:M5STACK
    5分钟带你快速了解新一代
    一、什么是M5Stack M5Stack是一种模块化、可堆叠扩展的开发板,每个模块
    创客火首发无人机编队套装,开启不一样的人工智能教育
    创客火首发无人机编队套装
    2017年国务院发布《新一代人工智能发展规划》,提出要广泛开展人工智能科普活动,在中
    求大神看看哪里有问题,设备在线,米家也同步正常,就.....
    求大神看看哪里有问题,设
    代码: #define BLINKER_PRINT Serial //用于打开串口 #define BLINKER_WIFI #define
    晒图ESP8266一个框架
    晒图ESP8266一个框架
    好久没发帖了,出来活跃活跃一下。ESP8266免身份登录截图。 最近外研究新的架构M2M或P
    Arduino 求助 串口接收数据不正确,数据丢失问题
    Arduino 求助 串口接收数
    问题整了好久,我自己写的C#程序发送数据,arduino接收数据。 但是发现arduino接收的
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
    快速回复 返回顶部 返回列表