开源改变世界

可变主轴速度 PWM o/p 在引脚 D11 #823

推推 grbl 2年前 (2023-01-23) 99次浏览

关闭
ecncshop 开启了这个问题 2015 年 10 月 17 日 · 6条评论
关闭

可变主轴速度 PWM o/p 在引脚 D11#823

ecncshop 开启了这个问题 2015 年 10 月 17 日 · 6条评论

注释

可变主轴速度 PWM o/p 在引脚 D11 #823

我正在使用启用了可变主轴 PWM 的 GRBL 0.9I 版本。

我的疑问是引脚 D11:它是输出模拟 0V 到 5V 还是实际输出具有变化占空比的 PWM 数字脉冲串?

可变主轴速度 PWM o/p 在引脚 D11 #823

脉宽调制火车。

Il sabato 17 ottobre 2015, ecncshop notifications@github.com ha scritto:

我正在使用启用了可变主轴 PWM 的 GRBL 0.9I 版本。

我的疑问是引脚 D11:它是输出模拟 0V 到 5V 还是实际输出
具有变化占空比的 PWM 数字脉冲串?


直接回复此电子邮件或在 GitHub
#823上查看。

可变主轴速度 PWM o/p 在引脚 D11 #823
作者

如果是 PWM 脉冲序列:那么频率是多少?用户可设置吗?
此页面说我们将在引脚 D11 中获得 0V 至 5V
https://github.com/grbl/grbl/wiki/Connecting-Grbl

可变主轴速度 PWM o/p 在引脚 D11 #823

不确定 grbl 是否使用不同的方法,但标准的 Arduino pwm 是 490 Hz。

0v 到 5v 是等效的 pwm。输出不是真正的模拟。输出为 0v 至 5v 方波,等效模拟电压取决于输出的占空比。引脚为 5 v,因此 100% 占空比为 5 v,80% 为 4v,60% 为 3v,依此类推。

可变主轴速度 PWM o/p 在引脚 D11 #823
贡献者

可变主轴 PWM 是“PWM”,所以是的,不同占空比的 5v 脉冲会随着时间的推移为您提供平均电压。

Mega 使用 16 位定时器,Uno 使用 8 位定时器来生成脉冲。

最好的信息来源是源代码本身(spindle_control.c 第 85-96 行),它说它有一个 8 的预分频器,所以它应该有 2MHz 的频率。

如果你想将它用作模拟电压,你可以添加抑制(电容器等)
如果你想将它用作脉冲,你可以改变频率以满足你的需要。

可变主轴速度 PWM o/p 在引脚 D11 #823

@EliteEng
我认为 2 MHz 不正确。Arduino 时钟为 16,000,000 Hz,预分频器为 8,而默认的 Arduino 预分频器为 64,但根据 config.h,有 256 个中间电平加上速度输出的 0% 占空比 (0-256)。此外,频率是引脚高电平的持续时间加上引脚低电平的持续时间,因此您必须除以 2。

所以,
16,000,000 / 8 / 256 / 2 = 3906 Hz <<< GRBL 的 PWM 频率

使用默认的 Arduino 预分频器 64,它是
16,000,000 / 64 /256 /2 = 488Hz <<< 标准 arduino PWM 频率

可变主轴速度 PWM o/p 在引脚 D11 #823
贡献者

@109JB是的,它有一个 2MHz 的脉冲宽度,而不是频率
那些计算看起来不正确。

fPWM = fCPU / (PRESCALER * (1+TOP))
fPWM = 16,000,000 / (8 * (1+255)) = 7812Hz 对于 UNO
fPWM = 16,000,000 / (8 * (1+65535)) = 30Hz 对于 Mega

**注意使用默认的 Arduino,您会发现它们使用相位校正 PWM(不是像 GRBL 那样的快速 PWM),所以这就是为什么您在最后除以 2。

喜欢 (0)