注释
如果您知道一点编程,修改起来很简单,但我认为您可以通过添加晶体管和电阻器按原样使用 grbl |
你最好的方法是像@langwadt 说的那样使用晶体管进入硬件模式。nano 或 uno 上没有剩余的可用引脚来进行所需的更改。基本上你必须制作或购买一个转换器电路,将 STEP/DIR 转换为 CW 或 CCW 像这样 http://www.electronics-lab.com/project/stepdir-signal-cwcww-signal-converter-cnc-motion-control -systems/ 2018-04-02 17:38 GMT+01:00 langwadt <notifications@github.com>:
|
他不应该加一个二极管来避免极性反接吗?2018-04-02 18:56 GMT+01:00 Vinicius Silva <x3msnake@gmail.com>:
|
你是对的 CCW- 上需要一个二极管,因为 Arduino 可能没有足够的驱动力通过 CCW 输入上的反极性二极管驱动额外的 ~20mA |
通常使用光耦合器,将 cw+ 连接到 ccw-,将 cw- 连接到 ccw+,将 cw+ 连接到 step,将 ccw+ 连接到 dir 就足够了。自然地,Dir/step delay compile time 选项是必需的。Il lunedì 2018 年 4 月 2 日,langwadt <notifications@github.com> ha scritto:
|
@cri-s由于驱动器中的反向二极管,反向输入将在 5V 时消耗 ~20mA,这对于 arduino 输出来说有点多,并且阶跃极性会随着方向而改变,我认为这会导致额外的阶跃 |
接得好。然后串行连接。我更喜欢 Vih 超过 2v 的 nand IC,用于连接 ON – 和 + ON 5v 的转换。Il lunedì 2018 年 4 月 2 日,langwadt <notifications@github.com> ha scritto:
|
如果你认为它可行,你能画一个电路图吗?否则我不能完全理解。 |
此外,我只需要驱动器 cw 和 ccw 的两个输入引脚,其他输入引脚在与 arduino 草图一起使用的设置中接地。 |
@rickysupreme你只需要一个电机? |
是的,只有一个电机
|
这里有一个将 step/dir 转换为 cw/ccw 的电路。使用 74HC00 或 74AC(T)00 代替 74C00。晶体管版本的工作原理相同,我对晶体管的唯一估计是阈值低,最终在反电动势期间可能会出现问题(理论上)。
|
看起来不错,您使用的电阻值是多少?2018-04-03 15:19 GMT+01:00 rickysupreme <notifications@github.com>:
|
LM35?我只能看到温度传感器数据表,你确定那是你使用的晶体管吗?2018-04-03 16:21 GMT+01:00 Vinicius Silva <x3msnake@gmail.com>:
|
好吧,它是一个真正普通的电阻器,宽度约为 4mm,形状为半圆柱体。电阻似乎是marone,黑色,黑色,金色,金色。它是 1k 或 10k。这些都是假的 arduino uno 入门套件中的所有东西。即使没有电阻器,该轴也能以精确的毫米精度(通过标尺测量)工作。不确定是否需要电阻器,似乎没有什么温暖的。 |
电阻器在那里保护 arduino 引脚;)至于 LM35,我相信它是一个温度传感器,但它看起来确实可以用作晶体管,尽管它不是 pourpose https://www.element14.com /community/thread/36219/l/lm35-dz-same-as-pnp-transistor?displayFullThread=true 2018-04-03 16:41 GMT+01:00 rickysupreme <notifications@github.com>:
|
太搞笑了,告诉我应该用什么电阻和三极管,你也有奖。我想达到小于 10 微米的重复精度,因为我是一个理想主义者。langwadt 是第一个建议这条赛道的获胜者。 |
cri-s 你能不能也简化一下你的解释,也许是一张图表,毕竟你仍然可以赢得奖金。你似乎知道你在说什么。 |
抱歉,我对电子产品的了解还不够好,无法建议您使用哪种晶体管。我想任何 PNP 晶体管都可以工作,常见的 pnp 晶体管是 2N3904 和 2N2222 至于精度,它更多地与您的机械设计有关,而不是您使用的电路或软件。任何直接耦合 1.8º /200steps per rev NEMA 的 M6/1mm 螺距螺钉的理论机械精度为 0.005 mm 这完全取决于您正在建造的东西、您需要移动的力以及您试图达到的最终结果实现 2018-04-03 17:15 GMT+01:00 rickysupreme <notifications@github.com>:
|
一行破解?什么是黑客?我要打开什么文件? |
@rickysupreme在 stepper.c 中的 398 和 399 之间添加这样一行,以便在移动 X 时在引脚 2 和 3 上获得步进输出
|
我会在 11 小时后回家时尝试一下。这些输出在哪些引脚上? |
step_x 和 step_y 所以引脚 2 和引脚 3 |
好的,我的 Gcode 只输出一个运动轴。所以这仍然有效吗? |
是的,只要你只使用 X 轴它就可以工作 |
抱歉,我在编译时遇到错误,它不会加载到 arduino 上。 |
它应该都在一条线上 错误是什么? |
也许你可以在 arduino.ino 中测试它? |
试试这个,我没有arduino所以我不能试试 |
Brilliant 终于对它进行了测试,它似乎比我预期的半成品硬件电路效果更好。但一旦它收到邮件,我将使用 0.001 毫米数字千分表对其进行测试,并最终能够发布结果。现在我需要弄清楚如何让这个东西进行微步进,因为我似乎仅限于 0.02mm 层步,这非常好,除了轴有点贵,所以如果可以的话我想进一步推动它。感谢您的帮助 langwadt。 |
太酷了,请发回您的结果 从代码开始,您做错了什么?如果你的电机是 0.72º,这意味着你的整圈步进分辨率是 500step/rev 如果你移动一步并且你的轴移动 0.02mm 比那一定意味着你的轴上有一个 10mm 螺距的螺纹,这是正确的吗?2018-04-05 11:01 GMT+01:00 rickysupreme <notifications@github.com>:
|
该代码现在有效,提供的第一个代码没有。你将不得不问Langwadt。你说的 10mm 螺距螺纹是正确的,但我不能改变它,因为它是集成的,它也是皮带驱动的,但也许比率是 1:1。 |
我在某处读到皮带驱动的执行器实际上比直接耦合更好。移动 1mm 需要 50 步。 |
对于后代来说,解决这个问题的方法是 插入: st.step_outbits = ((st.dir_outbits & (1<<X_DIRECTION_BIT)) ? (st.step_outbits<<1):st.step_outbits)&STEP_MASK; 在 stepper.c 的第 398 和 399 行之间移动 X 时在引脚 2 和 3 上获得步进输出 |
我遇到了一个问题,我实际上需要轴为 Z 轴,因为 nano DLP 在其内部打印公式中仅使用 Z 轴。你能再次帮助 Langwadt 吗? |
移动 Z 时应将其踩在引脚 3 和引脚 4 上 |
好的,它正在工作!它没有在两条线路上工作,但也许只是接触不良。逻辑占上风! |
前几天刚拿到数显千分表。在完全向上/向下运动后,它似乎能够在 90% 的时间内精确到 0.001 毫米。定位精度不那么精确(需要进行更多测试)但重复性非常好。接下来仍然想继续进行微步进,需要检查我所有的电源。 |
所以事实证明我只需要两个引脚可以根据命令输出恒定的高信号或低信号而不会产生任何脉冲我将能够根据提供的文档将步进角减半并在需要时切断绕组。 |
@rickysupreme |
几乎完成只需要解决一些问题。 0.004 |
我有带步进驱动器的原始 vexta 步进电机 5 相 0.72 度http://www.orientalmotor.com/products/pdfs/opmanuals/HM-60042E.pdf它是没有方向开关引脚的驱动器。我找到了一个可以驱动它的基本 arduino 草图。我基本上只需要向一个引脚发送脉冲以顺时针驱动它,并向另一个引脚发送脉冲以逆时针转动它。我想用 nano dlp 驱动它,所以我需要它能够解释 G 代码,因此我需要有人修改 GBRL 以将脉冲发送到我的步进驱动器的顺时针或逆时针引脚。我不知道如何修改 GBRL 或任何其他复杂的代码,如果你能帮忙,我会捐助。