シリアル通信は1対1の通信で、Arduinoどうし、Arduinoと入出力装置、ArduinoとPCの通信に用いられる。通信は対等に行なわれ、3本の線(Rx(受信), Tx(送信), GND)で接続される。一方のRxと他方のTxを、また、GNDどうしをつなぐ。Arduinoのシリアル通信には、0番ピンをRx, 1番ピンをTxとするハードウェアシリアルと、任意のデジタルピンをRx, Txにできるソフトウェアシリアルとがある。Arduino IDE(PCでプログラムを作成するアプリケーション)のシリアルモニタは、ArduinoとPCの間でハードウェアシリアル通信を行なう。
Serial.begin( rate );rateの部分には通信速度(bit/秒)を指定する。 300, 600, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600, 115200 の値が指定可能である。通信を行なう両者でこの値を合わせること。
#include <SoftwareSerial.h>次の文で、ソフトウェアシリアル通信の名前(この例ではmySerial)とRx, Txのピン番号を指定する。
SoftwaerSerial mySerial( Rx, Tx );さらに、setup()の中で、ピンの設定と通信速度の設定を行なう。
pinMode( Rx, INPUT ); pinMode( Tx, OUTPUT ); mySerial.begin( rate );を実行する。rateはハードウェアシリアルと同じ。
Serial.write( 12 ); // 数値12を送信 Serial.write( "12" ); // 文字列"12"(数値では0x31と0x32の2バイト)を送信 Serial.print( "Hello" ); // 文字列"Hello"を送信 Serial.println( "Hello" ); // 文字列"Hello\n"を送信
int c; if( Serial.available()>0 ){ // 受信データがあれば c = Serial.read(); // 1バイト受信して、cに格納する }