请教一个关于步进电机转速的问题


请输入图片描述

大家好,小弟在一个项目中用到这个步进电机,程序是javascript写的 ,用ULN2003驱动板,树莓派控制,设置了个setTimeout不停的给4相不同的高低电平,大概这样:


 gpio.write(pins[p],0,function()
{
    gpio.write(pins[(p+1)%4],1,function()
    {
        console.log(p);
        p++;
        if(p==4)
        {
            p=0
        }
        setTimeout(_f,10)
    });
});

但是这个间隔小于10左右就效果很不明显了,不知道是程序的问题还是这款步进电机的硬件参数限制的,看了一些优酷上网友做的这种步进电机的demo,速度也差不多,想请教一下专业高手是什么问题,如果程序上的可以如何改进,如果是硬件的限制就不纠结了,或者可不可以把这个四相变成两相,应该如何调整?麻烦大家了!!!!

开源硬件 JavaScript

沙包二等兵 10 years, 5 months ago

我在公司里问了一下 @Integ

setTimeout理论上的确是没有最小值限制的。

但SOF等网站上都反映,实际上根据JS的运行环境不同而客观上有。就是说Interval值低于多少再往下调就失效了。我估计10有可能就是减小到了这个限度值以下。

这种事情不能理论分析。你应当使用逻辑分析仪直接查看你的节拍信号是否符合你的预期,在Interval减小时是否成功缩减了。

用JS这种高层手段给这种直接驱动硬件的信号似乎不是一个好主意。你也许应该考虑JS提供高层服务,C底层驱动硬件。

卖tt的小男孩 answered 10 years, 5 months ago

Your Answer