评论
作者
发现了问题。在manage_inactivity例程中,check_axes_activity例程里面是一段驱动风扇的代码。如果您不使用软件 PWM 功能,那么这段代码会为风扇引脚(这是 Printrboard 专用的)进行模拟写入,然后覆盖伺服的 timer3 功能。 解决方案:禁用风扇引脚,或取消注释 FAN_SOFT_PWM 定义以不使用 timer3。如果有人可以在 printrboard 部分下的 pins.h 文件中添加注释,同时使用伺服和风扇会导致冲突,那就太好了。 |
在我尝试向 Rev E Printrboard (Solidoodle) 添加自动调平床时,我启用了所描述的伺服功能并将伺服信号分配给紧急停止端口 (E5)。发生的事情是伺服器在通电时会转到中间位置,然后它会爬到行程的末端。所有命令(M280、M401 等)都不会改变伺服位置。我尝试了不同的信号引脚(D0 和 C0),并且还通过备用接线(ATX PSU 上用于为电路板供电的备用电线)为伺服 5V 和接地供电。伺服是微型 MG90S,在 RAMPS 板上运行良好。
我将我的 O 型示波器放在 E5 引脚上(没有连接伺服),这就是我所看到的:
上电时,有一个 1.5ms 的重复脉冲,持续一秒钟,然后它变为 33ms on-33ms关闭信号。没有 gcode 命令改变这一点。
我在谷歌上搜索了 3 天,寻找任何在打印板上成功使用 Marlin 和床位但没有任何运气的人。我在其他论坛问过其他人。我已经查看了固件和伺服库,但我看不出任何明显的信号被覆盖的原因。我在 pins.h 中没有对同一个引脚的多个定义。我只是无法让它与打印板一起工作。现在,如果我运行 G29 命令,轴将移动到正确的位置,固件按应有的顺序进行探测,伺服器就不会移动(33 毫秒 50% 占空比信号在通电后 1 秒始终存在)。有没有可能是关于 AT90USB1286 和使用 timer3 的某些东西不适用于当前版本的 Marlin?我不是 Arduino 的专家,我打算放弃它。