两块arduino板子之间主从通信-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 14908|回复: 5

两块arduino板子之间主从通信

[复制链接]
发表于 2018-12-1 20:19 | 显示全部楼层 |阅读模式
玩儿了三年arduino,第一次发帖,也是最近接触到一个项目,需要用到两块板子,主机给从机发送一个指令,从机将自己采集的数据发给主机,为大家分享下,做的不好的请大神指出。

首先准备两块arduino板子,4根杜邦线,连线方式5V-5V  GND-GND   TX-RX   RX-TX。连接好以后,先上传主机代码:
String comdata = "";
void setup() {
  Serial.begin(9600);
  while(Serial.read()>= 0){} //clear serialbuffer
    Serial3.begin(9600);
  while(Serial3.read()>= 0){} //clear serialbuffer
}

void loop() {
  Serial3.print("request");    //向从机发送温度获取指令
  delay(10);
    while(Serial3.read()>=0){} //clear serialbuffer
  delay(3000);
  // read data from serial port
  if(Serial3.available()>0){
      delay(100);
      comdata = Serial3.readString();
      Serial.print("Serial.readString:");
      Serial.println(comdata);
    }
    comdata = "";
}


接着USB连接从机,并上传代码:
String comdata = "";
void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  Serial3.begin(9600);
}

void loop() {
  float TEMP1=1000.0123;
  float P1=9990.0123;

  if(Serial3.available()>0){
      delay(100);
      comdata = Serial3.readString();
            Serial.println('A'+comdata);
      if(comdata == "request"){
      Serial.println(comdata);
      Serial.println((String)TEMP1+','+(String)P1);
      Serial3.print((String)TEMP1+','+(String)P1);
      }

     delay(50);
      while(Serial.read()>= 0){} //clear serialbuffer
      while(Serial3.read()>= 0){} //clear serialbuffer
     comdata = "";
}
Serial.println("nothing");
    delay(100);
}


注意:我用的两块板子都是arduino MEGE2560,并且两块板子的连线是连接了Serial3,也可以使用其他串口,代码里面改一下串口编号就行。
 楼主| 发表于 2018-12-1 20:20 | 显示全部楼层
抱歉,是MEGA2560,错打成了MEGE2560
发表于 2018-12-2 15:08 | 显示全部楼层
这样一来,是不是可以实现远程监控端获取服务端的采集信息了?那么,这台主机可以带多少个从机呢?
发表于 2021-6-30 17:29 | 显示全部楼层
楼主,你这个程序编译后有问题,没有包含到头文件
发表于 2022-10-14 13:29 | 显示全部楼层
I2C怎么通信?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 07:24 , Processed in 0.150692 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表