极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 31884|回复: 9

求助:Arduino同时执行2个步进电机命令

[复制链接]
发表于 2015-6-3 22:00:55 | 显示全部楼层 |阅读模式
本帖最后由 eufo 于 2015-6-3 22:28 编辑

突然想到一个问题:
假如stepper1(int a)为控制步进电机1运行a秒然后停止的函数,stepper2(int b)为控制步进电机2运行b秒然后停止的的函数。

void loop()
{
  stepper1(100);
  stepper2(200);
}
因为单片机是逐行执行命令的,所以步进1先运行100秒后停止,然后步进2再运行200秒后停止。

void loop()
{
  stepper1(10);   步进1运行10秒后停止
  stepper2(200);  步进2运行200秒后停止
  stepper1(90);步进1在运行90秒后停止
}

如果我想步进1运行10秒后步进2立即启动运行200秒,但此时的步进1不停止下来怎么办?
回复

使用道具 举报

发表于 2015-6-4 00:13:08 | 显示全部楼层
你说的不停下来是什么意思?没有立刻停止,但是之后会停止,还是说一直都不停止?
回复 支持 反对

使用道具 举报

发表于 2015-6-4 00:18:56 | 显示全部楼层
参考这个网页http://www.airspayce.com/mikem/arduino/AccelStepper/,accelstepper库可以设置加速度,并可驱动多个步进电机
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-6-4 11:44:58 | 显示全部楼层
本帖最后由 eufo 于 2015-6-4 20:20 编辑
rick_hou 发表于 2015-6-4 00:13
你说的不停下来是什么意思?没有立刻停止,但是之后会停止,还是说一直都不停止?


意思是步进1运行了10s时,步进2就开始运动,但此时步进1还是在转,如图绿色标识。我的理解是单片机只能执行完步进1运行的命令才能执行步进2运行的命令,所以执行步进1命令的中途(10S时)无法执行步进2的命令,下图的情形无法实现。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2015-6-4 20:48:42 | 显示全部楼层
eufo 发表于 2015-6-4 11:44
意思是步进1运行了10s时,步进2就开始运动,但此时步进1还是在转,如图绿色标识。我的理解是单片机只能 ...

是的,如果按照你的要求要想实现确实有点难度。没有研究过stepper的实现方法,你说的这种方式属于多轴联动。
回复 支持 反对

使用道具 举报

发表于 2015-6-4 22:02:33 | 显示全部楼层
我上面已经回复了,楼主视若无睹,上面那个库可以同时驱动多个电机,自己编程的话协调好脉冲信号的发射也不是什么难事
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-6-5 09:21:04 | 显示全部楼层
nick_zm 发表于 2015-6-4 22:02
我上面已经回复了,楼主视若无睹,上面那个库可以同时驱动多个电机,自己编程的话协调好脉冲信号的发射也不 ...

谢谢了。但我看不懂同类相关的代码,看来要学一下C++了
回复 支持 反对

使用道具 举报

发表于 2016-9-1 14:17:31 | 显示全部楼层
楼主停止函数咋写 分享一下 谢谢了
回复 支持 反对

使用道具 举报

发表于 2018-2-26 17:46:13 | 显示全部楼层
本帖最后由 michel616 于 2018-2-26 17:50 编辑

写一个双进程的函数就可以了,需要用到metro函数()

这里有个差不多的用双线程的步进电机帖子。。应该能帮到你

http://bit.ly/steppermotorcontrolbyphone
回复 支持 反对

使用道具 举报

发表于 2018-3-6 12:48:14 | 显示全部楼层
本帖最后由 Damn_intuition 于 2018-3-6 12:49 编辑

多设备协同工作可以采用一个比较简单的时间分片思想:

  1. for (i=0;i<210;i++){
  2. if (i<10)
  3. stepper1(1);
  4. else
  5. {
  6. stepper1(1);
  7. stepper2(1);
  8. }
  9. }
  10. stepper1(1);
复制代码

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-26 13:20 , Processed in 0.061048 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表