开源改变世界

简单的加速脚本 #96

推推 grbl 3年前 (2023-01-21) 186次浏览

关闭
yurkomik 打开了这个问题 2012 年 5 月 2 日 · 1条评论
关闭

简单的加速脚本#96

yurkomik 打开了这个问题 2012 年 5 月 2 日 · 1条评论

注释

简单的加速脚本 #96

如果您认为这不是本论坛的主题,我深表歉意。请原谅我。我在别处找不到答案。我知道你的所有代码都在内存中。
我需要针对预定义步数的单个静态加速和减速代码。

我的代码是:

案例’1’:
{
int i;
数字写入(目录,低);// 设置方向
delay(100);

    for (i = 0; i<5000; i++)       
    {
      digitalWrite(CLK, LOW);  // This LOW to HIGH change is what creates the CLK pulses
      delayMicroseconds(700);      
      digitalWrite(CLK, HIGH); // "Rising Edge" so the driver knows to when to step.
      delayMicroseconds(150);      
       }

休息;

}

有没有办法让运动窒息?谢谢你!

简单的加速脚本 #96
成员

它“可以”很简单,具体取决于您是否希望 ac/de-celerations 是非阻塞的(允许在步进时发生其他事情)以及它需要多快。您拥有的代码是阻塞的,这是更简单的选择。您所要做的就是解决 a=dv/dt 物理问题,将步数转换为距离,dt 是延迟时间。当以高速率运行时,解决这个问题的成本可能会很高,而 Arduino 可能跟不上。

另一种非阻塞方法解释起来太复杂了,但我们使用中断来运行步进,用主程序预先解决物理问题,并将加速/减速分解成恒速段。如果你想这样做,请阅读代码。评论很好。

喜欢 (0)