请问一下 两块arduino通过TX RX通信代码要怎么写
我一块发送的TX连一块接收的RX Serial.println("x=10");发送不成功 把你的代码弄上来,你初始化串口了么? 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后会动作 两个arduino通过TX RX通信,有专门的库,见附件。。。
硬件连接像这样子
谢谢各位 看了弘毅的东西 说明不能用另一个ARDUINO控制一个装有grbl的ARDUINO了 除非改grbl代码 如果两者之间用MAX485通讯怎么做呢? 想知道怎么通过TX和RX发送给APC220或者nrfl2401模块通信,APC220可以直接串口, 学慧放弃 发表于 2014-4-26 19:06 static/image/common/back.gif
想知道怎么通过TX和RX发送给APC220或者nrfl2401模块通信,APC220可以直接串口,
不明白说的啥子 for 发表于 2014-4-26 21:16 static/image/common/back.gif
不明白说的啥子
就是通过无线模块发送数据包,懂不?? 学慧放弃 发表于 2014-4-27 13:05 static/image/common/back.gif
就是通过无线模块发送数据包,懂不??
原来如此我还没研究到无线这个方面 弘毅 发表于 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: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 串口的其他数据。 弘毅 发表于 2012-8-13 15:06 static/image/common/back.gif
两个arduino通过TX RX通信,有专门的库,见附件。。。
弘毅大哥你好,如果我两个arduino分别接zigbee 应该怎么通信,接线是每一块arduino分别接彼此对应的TX和RX(arduino的和zigbee的反过来);然后 将 zigbee 烧一个协调器,另一个烧终端,然后传输数据。但是不知道代码应该怎么初始化TX和RX端口 for 发表于 2014-4-26 15:46 static/image/common/back.gif
如果两者之间用MAX485通讯怎么做呢?
你好,问下,用max485通讯你实现了吗,可以分享下不?
页:
[1]