约翰尼- 5步进(for循环)

johnny-five stepper move in (for-loop)

本文关键字:循环 for 5步进 约翰尼      更新时间:2023-09-26

我在node.js中相对较新。johnny-five。我试图移动一个步进器(例如)5次,1000步。

:

   do 1000 Steps in cw ; 
   console.log('ready); 
   do 1000 steps;
   console.log('ready')
   ...
如果在for循环中使用

就更好了。例:5次,1000步。我尝试用下面的代码来做到这一点:

  for (var i = 0; i < 5; i++) {
    stepper.direction(1).step(1000, function() {
    console.log("Done stepping!");
    });
  }

在我的cmd中的输出是

Done stepping!
Done stepping!
Done stepping!
Done stepping!
Done stepping!

但是马达只移动一次。我真的不明白为什么!

希望有人能给点提示,谢谢!

没有自己布线,我认为你的问题是:direction(1)。似乎direction使电机指向某个方向;因此,你的回路告诉电机指向同一方向5次。

尝试在stepper()中设置一些不同的值,或者在循环中将1替换为i:

for (var i = 0; i < 5; i++) {
   stepper.direction(i).step(1000, function() {
   console.log("Done stepping!");
   });
 }

如果这没有帮助,你的步进电机有外部电源吗?您能提供一个接线图和一个简单测试用例的代码吗?

我刚刚开始重新开始写代码。都30年了,我已经生疏了。

尝试删除'for'循环中的'var '。

 for (i = 0; i < 5; i++) {
    stepper.direction(1).step(1000, function() {
    console.log("Done stepping!");
    });
  }

var我认为需要在代码的前面定义。

如果你发现了原因,请贴出来,这样我也可以从中学习。由于