注释
你好, 您可以尝试使用名为 grbl-servo 的 grbl:https 垫 |
非常感谢马特。 |
尝试测试它,因为它似乎不起作用(伺服移动但并不总是使用相同的 gcode 执行相同的动作)。对我来说,预分频器为 1024 的 pwm 频率太高了。最终频率为 16Mhz/1024=15khz。要控制伺服,我们需要 1/20ms=50Hz。 |
@mat60PWM 的公式是 我不确定你需要什么来驱动伺服,如果你能在我告诉你如何配置定时器之后让我确切地知道你是什么。 |
我想使用伺服驱动我打印机的 DLP 投影仪的快门。 由于我的设置限制,它应该转 120 度。 当然,每次快门都在同一个位置上是个好主意,而不是随机的。 感谢所有人的想法。我会等待更多的意见/修改。 同时我测试它……伺服器仅使用第一个“M3 Sxx”命令移动。“S”值更接近预览值,伺服器处于嗡嗡声并且什么都不做的状态。退出此状态是使用“M3 Sxx”,但使用“S”大/小 2-3 倍。 “M5”不起作用。(当然还有 M4 :)) 我不懂“C”语言,我很难找到“spindle_control.c”中必须在哪里进行预览描述的更改…… |
感谢您的答复。所以PWM频率很好。 我遇到的主要问题是解决了。 代码仍然存在问题。SXX 命令必须介于 15(最小)和 32(最大)之间,如果您发送 80 它可以工作… 注意:M5 适合我 |
@mat60留意 Arduino 上稳压器的温度。它是一个线性稳压器,因此对于 12V 的 Vin 和 5V 的 Vout,它必须将 58% 的输入功率作为热量消散。如果您使用输出更像 7-8V 的稳压电源,它将更有效地运行。 |
好的。 一切都适用于spindle_contol.c 文件。对我所做的所有错误感到抱歉。 您必须输入将在 gcode 中发送的最小和最大速度。这是在 config.h 文件中: #define SPINDLE_MAX_RPM 100.0 // 最大主轴转速。该值等于 PWM 上的 100% 占空比。 在我的情况下,M3SXX,XX 必须在 0 到 100 之间。您可以根据需要修改此值(如果您想以度为单位工作,则为 0 到 180…) 我希望这很清楚。 |
各位圣诞快乐, 所以我做了很多测试,但结果实际上是相等的。 我变了:
#define RC_SERVO_SHORT 15 – 从 4 到 15
#define SPINDLE_MAX_RPM 100 – 从 100 到 256 初始状态位于左下方。 M3 S50 和 M3 S1000 之间的值将伺服移动到某个位置 – 可能与 thou 值相对应。 每个大于 M3 S1000 的值都不会移动伺服超过 M3 S1000。 更接近的 S 值什么都不做 – 例如,如果我已经将伺服器移动到 M3 S30,发送 M3 S50 什么也不做! 可能我对此一无所知,但直到现在我对 Arduino(Uno、Mega、RAMPS 等)没有任何问题。 我会尝试使用这些结果,但我仍然对这个 PWM 感到困惑。 问候 |
你确定编译好文件吗?您是否在 arduino IDE 中使用 GRBL 作为示例? 告诉我怎么了… |
我有 2 个包含 GRBL 文件的文件夹:
我犯了您在第一个文件夹中的主轴控制中向我展示的“错误”并尝试编译 – 没有错误。然后我在第二个文件夹中做了同样的事情 – 再次没有错误。 可能是我错过了什么 提前致谢 |
你有两个(或更多)GRBL 库,比如 GRBL(经典)和 GRBL Servo 吗? |
非常感谢您 !!! 我真的有 2 * GRBL 库…我删除了不必要的库,一切正常! 再次感谢!!! |
你让它工作很好。但是我想指出,您的解决方案可能不适用于所有情况。原因是因为 RC 伺服不使用与传统相同类型的 PWM。RC 伺服系统真正使用 PPM 或脉冲位置调制。正如您所发现的,许多 RC 伺服系统在标准 PWM 上工作得相当好,但有些则不会。原因是因为 RC PWM(实际上是 PPM)应该具有相同的帧速率,只有高端脉冲宽度不同。例如,1.5 毫秒的“开启”信号指示中性伺服位置,1 毫秒和 2 毫秒是伺服的极限位置。“关闭”时间会有所不同,以使总帧速率等于 50 Hz 或 20 毫秒。如前所述,许多伺服系统可以容忍标准 PWM,但有些,特别是较旧的伺服系统无法正常工作。 |
好的,这在 Mega 上很容易做到,但在 UNO 上很难做到。 |
@chamnitgrbl上伺服支持的官方状态是什么?我正在使用来自robotini的repo的grbl-servo,但它基于0.9i(我们已经在0.9j上),它似乎是对主轴代码的快速破解。我正在考虑将其移植到最后一个版本(可能是主干/主分支),并通过官方配置和自己的代码(不涉及主轴代码)使其正确支持。但是我首先要知道现在是否已经完成了任何事情,以及您是否会接受代码进行审查(用于进入官方树)。 也许使用引脚 9 或 10(您可以通过连接一些 endstop 来释放引脚),因此使用 timer1。你怎么看?我仍在阅读代码以了解这是否会导致任何附带影响。由于驱动伺服的分辨率,Timer1 是可取的。 此外,由于伺服支持最终可以与所有其他功能并行工作,我认为它不是像robotini那样劫持主轴代码的最佳选择(因为M03和M05可能同时用于主轴本身时间)。伺服器可能有不同的 gcode。我知道在 3d 打印机世界中也有一些定义(它是用于设置角度的 M280 和用于设置微秒的 M340)。对于那些无法更改生成 gcode 的软件并希望通过主轴开/关动作控制伺服的人来说,也许有一些配置选项可以选择性地禁用主轴并将 M03 和 M05 操作映射到特定位置的伺服。你怎么看? |
@token47: 诚然,由于 328p Arduino 处理器的内存和闪存限制以及即将推出的 v1.0 版本,我一直非常自私地囤积我能获得的任何闪存和内存。当它完成时,我会更愿意接受拉取请求,特别是在 Grbl-Mega 存储库中,Mega2560 将没有这样的限制。 Timer1 被 328p 上的步进算法使用。所以不去那里。 |
亲爱的会员, 请帮我! 如何配置主轴控制.c 文件,以便 goow 工作? 和伺服占空比? 什么值可以给 M03 参数? 谢谢! |
@token47是的,请!为 grbl 1.1 添加伺服支持!我和这里的许多其他人在同一个地方:我可以让我的设置(CoreXY Plotter)与robottini 0.9 版本一起使用,但我真的很想使用1.1。 如果您或其他人可以在 GRBL 1.1 中添加伺服控制,我将不胜感激:) |
嗨,我刚刚测试了 cprezzi 的 grbl-servo,它可以正常工作。它是 grbl 1.1f,现在我可以连接到laser web 4。这是下载链接https://github.com/cprezzi/grbl-servo。 |
cprezzi 的代码看起来很干净,带有 |
我只知道它如何与我的 cnc 和伺服一起工作, |
@MinSoeVertex您能否告诉我们您在 LaserWeb4 中使用哪些设置来通过 Grbl-servo 控制伺服?如何为 Tool_on 和 Tool_off 位置设置所需的角度? |
我有伺服第一次工作,但现在不工作?一个你帮助 |
我没有使用 Arduino Mega2560 和 GRBL 固件在 Ramps 1.4 上获得任何 PWM 输出,我想知道您从哪个输出引脚获得了 PWM 输出并且您是否更改了代码。等待您的回复。谢谢 |
请告诉您如何在 Ramps 1.4 Mega 上运行伺服系统?GRBL 运行的输出引脚和 G 代码是什么? |
星展银行 评论 on 22 Dec 2015
你好,
是否可以在 Arduino Uno 上控制 X、Y 电机 + 伺服(用于投影仪的快门)?
M03 Sxx / M04 Sxx 做了一些动作,但能正确使用吗?
提前致谢。