开源改变世界

GRBL通讯 #1008

推推 grbl 3年前 (2023-01-23) 202次浏览

关闭
Krenail 打开了这个问题 2016 年 6 月 7 日 · 5 条评论
关闭

GRBL通讯#1008

Krenail 打开了这个问题 2016 年 6 月 7 日 · 5 条评论

注释

GRBL通讯 #1008
克雷内尔 评论了 2016 年 6 月 7 日  

你好,在过去的几个月里,我用 Arduino Nano 和 GRBL 构建了一个 CNC 路由器。
我决定做一个慢跑器来轻松移动路由器,而不必为简单的事情而对 CAD 图纸感到生气。
慢跑者使用另一个 Arduino,它通过串行端口与 GRBL 通信。(RX 到 TX 带有 1Kohms 电阻,反之亦然)。
我遇到的唯一问题是两个 Arduinos 之间的通信似乎不起作用,我尝试运行一个简单的草图,只向 GRBL 发送一个“?” 命令并在 LCD 上打印响应,但 LCD 上没有显示任何内容。奇怪的是,如果我用电脑上的串行监视器发送消息,它就可以工作。
我从来没有真正理解 Serial 对象中的某些东西,所以问题可能在于 Serial.write() 的使用。
任何帮助将不胜感激。?`#include <Wire.h>

包括 <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);

void setup() {
lcd.begin(16, 2);
lcd.clear();
序列号.begin(115200);
}

void loop() {
Serial.write(“?”);
串口.write(“\n”);
序列号.flush();
lcd.setCursor(0, 0);
lcd.print(Serial.readString());
延迟(1000);
lcd.clear();
}`

GRBL通讯 #1008
成员

您需要\r\n在要发送到 GRBL 的命令之后发送。

GRBL通讯 #1008
作者

我尝试使用此代码(注意单个 ‘ 符号而不是双 ” 符号来测试)
`#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6、7、3,阳性);

void setup() {
lcd.begin(16, 2);
lcd.clear();
序列号.begin(115200);
lcd.setCursor(0, 0);
lcd.print(“再见”);
延迟(1000);
lcd.clear();
}

void loop() {
Serial.write(“M3”);
串口.write(“\r”);
串口.write(“\n”);
lcd.clear();
lcd.print(“M3 1”);
延迟(3000);
序列号.print(“M3”);
序列号.print(“\r”);
序列号.print(“\n”);
lcd.clear();
lcd.print(“M3 2”);
延迟(3000);
串口.write(“M3”);
串口.write(‘\r’);
串口.write(‘\n’);
lcd.clear();
lcd.print(“M3 3”);
延迟(3000);
序列号.print(“M3”);
Serial.print(‘\r’);
Serial.print(‘\n’);
lcd.clear();
lcd.print(“M3 4”);
延迟(3000);
}`
但它仍然不起作用。

GRBL通讯 #1008
成员

您可以先通过重置 GRBL 来测试 RX 代码,直到您可以使用辅助 Arduino 读取启动消息。我在网上发现有人在做同样的事情: http:
//lettsmakerobots.com/node/35111

GRBL通讯 #1008
作者

我刚刚尝试用 A0 和 GND 之间的跨接电缆重置 GRBL,但唯一发生的事情是 RX 和 TX LED 闪烁。

GRBL通讯 #1008

去掉1kOhm的电阻,只用3根线,GND-GND, TX->RX, RX->TX

喜欢 (0)