javascript - 如何让步进电机随时间转动360度?

标签 javascript arduino degrees 360-degrees actuator

我有这段代码可以使用 Espruino 在 Javascript 中控制我的步进电机。

function motorStep(mySteps){
  var stepperPins = [C6,C7,C8,C9]; // Change these to your pins (digital output)
  var stepBits = [0b0110,0b0101,0b1001,0b1010];

  if (mySteps<0) //reverse
  {
    stepBits.reverse();
    mySteps = -mySteps;
  }

  for (i=0; i< mySteps ; i++)
  {
    digitalWrite(stepperPins, stepBits[i % stepBits.length]);
    //then we need to wait before sending next command
    wait(1); //some motors might need a longer delay
  }

}

function wait(ms){
  var d = new Date();
  var d2 = null;
  do { d2 = new Date(); }
  while(d2-d < ms);
}

我制作了一个 setWatch 函数来查找按下按钮然后启动一个函数

setWatch(function () {
action goes here
}, BTN2, {
 repeat : true,
 edge : "rising"
});

我正在寻找能够在 6 分钟内完成 360 度旋转的步进电机。对于步进器进行完整的 360 度旋转,它是 350 步,因此每步之间等待 1030 毫秒(360000/350?)。因此,当我按下 BTN2 时,步进器会在 6 分钟的时间跨度内旋转 360 度。

我不确定如何将两者结合起来,你们中的任何人都可以帮助我吗?

如果我这样做:

setWatch(function () {
motorStep(350);
}, BTN2, {
 repeat : true,
 edge : "rising"
});

我如何编码完成整个 Action 所需的时间?

最佳答案

更改您的 motorstep 函数以获取额外参数:

function motorStep(mySteps, delay){
  var stepperPins = [C6,C7,C8,C9]; // Change these to your pins (digital output)
  var stepBits = [0b0110,0b0101,0b1001,0b1010];

  if (mySteps<0) //reverse
  {
    stepBits.reverse();
    mySteps = -mySteps;
  }

  for (i=0; i< mySteps ; i++)
  {
    digitalWrite(stepperPins, stepBits[i % stepBits.length]);
    //then we need to wait before sending next command
    wait(delay); //some motors might need a longer delay
  }

}

并按如下方式调用它:

motorStep(350, 360000L/350) ;

我手边没有 espruino,所以我只能希望它能起作用。

关于javascript - 如何让步进电机随时间转动360度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37818995/

相关文章:

arduino - 如何清除静态 IP 配置并启动 DHCP

java - 找到要旋转的度数?

r - 将弧度转换为度数/度数转换为弧度

javascript - 使用垂直框的 Twitter 关注者计数

javascript - 在不使用 ng-bind-html 的情况下在范围变量中绑定(bind) html 内容

javascript - 如何创建 javascript 类或模块,我需要在页面上有 2 个实例

Javascript,跟踪 iframe 重定向顶部窗口

c - MPU-9150 XYZ 值输出不正确

azure - Azure 移动/Web 应用程序的 POST(使用 Arduino)

Java:我的物体不会以 0 到 45 度之间的角度移动