Help us understand the problem. What is going on with this article?

Arduino同士で文字列をシリアル通信する方法

More than 1 year has passed since last update.

本ドキュメントは、Arduino同士でシリアル接続して文字列を送受信する方法についての解説です。
arduino2.png
上記写真の様にお互いに TX<->RX, RX<->TX をクロスさせてジャンパーピンを接続します。これだけでシリアル通信が可能になります。ただし、ArduinoのSketchを書き込み時はこのシリアル通信が書き込みの邪魔になってエラーを起こすので結線を外して書き込みし、結線して受信側をシリアルモニタで確認するという手順を繰り返しながら実装して行くという流れになります。

送信側プログラム

どちらかのArduinoを送信側と決めて、下記のスケッチをアップロードします。

int LED = 13;
String sendstr = "arduino";

void setup(){
  Serial.begin(9600);
  pinMode(LED, OUTPUT);
  Serial.println("Start writeing.");
}

void loop(){
  digitalWrite(LED, LOW);
  for (int i = 0; i < sendstr.length(); i++){
    Serial.write(sendstr.charAt(i)); 
  }
  Serial.write(0);
  digitalWrite(LED, HIGH);
  delay(2000);
}

受信側プログラム

もう一方のArduinoを受信側として下記のスケッチをアップロードします。アップロードしたら、TX,RXをクロスして結線し、両方のUSBケーブルをパソコンに接続します。

char buff[255];
int counter = 0;
int LED = 13;

void setup(){
  Serial.begin(9600);
  pinMode(LED, OUTPUT);
  Serial.println("Start reading.");
}

void loop(){
  while(Serial.available()){
    char inChar = char(Serial.read());
    //Serial.print(inChar);
    buff[counter] = inChar;
    counter++;  
    if (inChar == '\0'){
      Serial.println(buff);
      digitalWrite(LED, HIGH);
      counter = 0;
    }else{
      digitalWrite(LED, LOW);
    }
  }
}

受信側モニタ状況

Arduino IDEで受信側をシリアルモニタにしてモニタの通信速度はシリアル接続に設定した値と同じにします。すると以下の様に送信側から送られて来る文字列が表示されます。

Start reading.
arduino
arduino
arduino
arduino
arduino
arduino
arduino
bluemooninc
サーバーサイド・エンジニアとして15年。主な言語は PHP, Python, Ruby, NodeJS, Java. IoTエンジニアとして3年。Arduino, RaspberryPi を中心に半導体基盤設計からIoTシステム構築まで。主な言語はC++。システム・エンジニア、データベース・エンジニアとしては25年。主なDBはMySQL, Oracle, SQLite, MS-Access。
https://www.bluemooninc.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした