dbo 发表于 2012-8-13 10:15:32

请问一下 两块arduino通过TX RX通信代码要怎么写

我一块发送的TX连一块接收的RX   Serial.println("x=10");发送不成功

Randy 发表于 2012-8-13 10:38:41

把你的代码弄上来,你初始化串口了么?

dbo 发表于 2012-8-13 10:48:12

void setup ()
{
pinMode(4,INPUT);
pinMode(11,OUTPUT);
Serial.begin(9600);
}
void loop()
{
int n =digitalRead(4);
if (n==HIGH)
{
char flag[]="x=10";
   Serial.print(flag);
   delay(5000);
   digitalWrite(11,HIGH);
   delay(5000);
   digitalWrite(11,LOW);
}
}

接收端我用ARDUINO IDE的串口通信试过 接收到x=10后会动作

弘毅 发表于 2012-8-13 15:06:08

两个arduino通过TX RX通信,有专门的库,见附件。。。



硬件连接像这样子



dbo 发表于 2012-8-14 08:23:45

谢谢各位 看了弘毅的东西 说明不能用另一个ARDUINO控制一个装有grbl的ARDUINO了 除非改grbl代码

for 发表于 2014-4-26 15:46:46

如果两者之间用MAX485通讯怎么做呢?

学慧放弃 发表于 2014-4-26 19:06:18

想知道怎么通过TX和RX发送给APC220或者nrfl2401模块通信,APC220可以直接串口,

for 发表于 2014-4-26 21:16:09

学慧放弃 发表于 2014-4-26 19:06 static/image/common/back.gif
想知道怎么通过TX和RX发送给APC220或者nrfl2401模块通信,APC220可以直接串口,

不明白说的啥子

学慧放弃 发表于 2014-4-27 13:05:37

for 发表于 2014-4-26 21:16 static/image/common/back.gif
不明白说的啥子

就是通过无线模块发送数据包,懂不??

for 发表于 2014-4-27 14:23:38

学慧放弃 发表于 2014-4-27 13:05 static/image/common/back.gif
就是通过无线模块发送数据包,懂不??

原来如此我还没研究到无线这个方面

hmpmark 发表于 2014-5-11 01:20:51

弘毅 发表于 2012-8-13 15:06 static/image/common/back.gif
两个arduino通过TX RX通信,有专门的库,见附件。。。




0.0为什么无法编译提示未定义
EasyTransfer_2Way_wServo_Example : 20 :错误:' EasyTransfer '没有命名一个类型
EasyTransfer_2Way_wServo_Example.pde :在函数'无效设置( ) ' :
EasyTransfer_2Way_wServo_Example : 46 :错误:' ETIN '在此作用域中声明
EasyTransfer_2Way_wServo_Example : 46 :错误:'细节'在此作用域中尚未声明
EasyTransfer_2Way_wServo_Example : 47 :错误:' ETout '在此作用域中声明
EasyTransfer_2Way_wServo_Example.pde :在函数'无效循环( ) ' :
EasyTransfer_2Way_wServo_Example : 66 :错误:' ETout '在此作用域中声明
EasyTransfer_2Way_wServo_Example : 75 :错误:' ETIN '在此作用域中声明

shenhaiyu 发表于 2014-9-4 00:20:55

本帖最后由 shenhaiyu 于 2014-9-4 00:31 编辑

dbo 发表于 2012-8-14 08:23 static/image/common/back.gif
谢谢各位 看了弘毅的东西 说明不能用另一个ARDUINO控制一个装有grbl的ARDUINO了 除非改grbl代码

最近我也遇到同样的问题了,想用一块Arduino接收硬件串口接收到的指令,处理后用软件串口发给另一块装了原版GRBL的Arduino。目前实验成功,方法如下:

首先我们将发送指令的Arduino称为A,装了GRBL的Ardunio称为B,我将A的端口5和6设为了软件串口,所以将A的 pin5 连接到B的 pin 1,再将A的 pin6 连接到B的 pin0,A和B的GND也要相连。然后在A中写入如下代码:


#include <SoftwareSerial.h>   // 软件串口

// 软件串口设置
SoftwareSerial WRSerial(3, 4); // 其他软件串口数据通讯TTL RX, TX
SoftwareSerial GBSerial(5, 6); // GRBL数据通讯TTL RX, TX
String WRComData = "";         // 串口字串缓存
String GBComData = "";         // 串口字串缓存

void setup() {
// 串口初始化
Serial.begin(9600);
GBSerial.begin(9600);
WRSerial.begin(9600);
}

void loop() {

// 其他软件串口数据处理
while(WRSerial.available()) {
    WRComData += char(WRSerial.read()); // 将串口数据全部写入字串
    delay(2);
}
if(WRComData.length() == 11) {
   // 任意内容
}
    WRComData = ""; // 清除缓存


// GRBL数据处理
while(Serial.available()) {
    GBComData += char(Serial.read()); // 将串口数据全部写入字串
    delay(2);
}
if(GBComData == 'G') {
   GBSerial.listen();
   GBSerial.println(GBComData);
   WRSerial.listen();
}
    GBComData = ""; // 清除缓存

}



这段代码的功能是:如果A接收到从硬件串口(比如电脑)传来的G命令,则将该命令完整的发送给B,同时A还可以随时处理来自 pin3 pin4 串口的其他数据。

linrk 发表于 2015-7-17 15:46:38

弘毅 发表于 2012-8-13 15:06 static/image/common/back.gif
两个arduino通过TX RX通信,有专门的库,见附件。。。




弘毅大哥你好,如果我两个arduino分别接zigbee 应该怎么通信,接线是每一块arduino分别接彼此对应的TX和RX(arduino的和zigbee的反过来);然后 将 zigbee 烧一个协调器,另一个烧终端,然后传输数据。但是不知道代码应该怎么初始化TX和RX端口

patrick诚 发表于 2015-12-21 16:06:39

for 发表于 2014-4-26 15:46 static/image/common/back.gif
如果两者之间用MAX485通讯怎么做呢?

你好,问下,用max485通讯你实现了吗,可以分享下不?
页: [1]
查看完整版本: 请问一下 两块arduino通过TX RX通信代码要怎么写