C语言 Arduino步进器和驱动器频率和限制



我一直在使用Arduino Uno在脉冲一侧运行步进器。

我发现了一个限制,我认为是步进驱动程序,或Uno硬件限制等。

我一直在使用这个基本的代码位来为我的应用程序计算正确的设置,即更高的RPM电机驱动,在下面的代码中设置延迟(0.9)的时间似乎满足了我设置上的某些限制,我相信我的廉价Foyo FYM404A驱动程序是罪魁祸首。

它说频率限制是100kpps, (100,000Hz?)。

当用数字万用表(gnd到引脚9)在0.9设置下测量时,频率读数为75.48KHz。此设置是当我听到呜呜声而电机没有运动时

当重复测量时,设置为延迟(1),读数为495.80Hz,电机运行良好稳定。

我想弄清楚的是频率的跳跃对你来说是否正确?从延迟(1到0.9)

是否完全有可能限制是步进驱动器,它只是不能在更高的频率下运行,或者代码没有使用Uno的全部功能,从我读到的可以脉冲到8MHz,当编程正确时。

期待您建设性的答复。

void loop() {
digitalWrite(8, HIGH); // sets the digital pin 8 on
delay(1);            //  waits for .1 second's
digitalWrite(8, LOW);  // sets the digital pin 8 off
delay(1);            // waits for .1 second's
}

delay函数接受整数值,而不是浮点值,这意味着传递'0.9'给函数实际上会被编译器翻译为'0',因为编译器会截断数字的小数部分,只保留整数部分,在这种情况下是'0'。

delay函数的输入参数为毫秒,这意味着如果你想要5HZ的频率(即0.1秒LOW和0.1秒HIGH) ->F = 1/0.2),你应该调用delay(100) ->100ms = 0.1秒

最新更新