基本ライブラリ
デジタルIO
アナログIO
拡張IO
時間
数学
三角関数
乱数
ビットバイト操作
割り込み
シリアル通信
標準ライブラリ
サーボモーター
ステッピングモーター
キャラクタ液晶表示
EEPROM
SPI通信
I2C通信(Wire)
メモリカード
メモリカード(File操作)
Ethernet
Ethernetサーバー
Ethernetクライアント
Firmata
周期処理
省電力
時計(RTC)
SoftwareSerial
ユーティリティ
シリアル通信(Serialクラス)
PCや他のマイコンと通信をするためのライブラリです。KURUMIボードでは、3組シリアルポート(TXO、RXI)を使用できます。それぞれSerial(ピン1、ピン0)、Serial1(ピン7、ピン8)、Serial2(ピン9、ピン10)として使用できます。
これらのシリアルポートで足りない場合は、SoftwareSerialをお試しください。
Serial2はSPIと同時に使えません。
begin
概要
シリアル通信のボーレート、ポートの設定を行います。
文法
Serial.begin(baud)
Serial.begin(baud, config)
Serial.begin(baud, config, rx_buf, tx_buf)パラメータ
baud: ボーレート
config: データビット幅、パリティ、ストップビット。下記から選択。
SERIAL_7N1
SERIAL_8N1(デフォルト)
SERIAL_7N2
SERIAL_8N2
SERIAL_7E1
SERIAL_8E1
SERIAL_7E2
SERIAL_8E2
rx_buf: 受信バッファサイズ(デフォルト 256)
tx_buf: 送信バッファサイズ(デフォルト 256)戻り値
なし
end
概要
シリアル通信ポートの停止.
文法
Serial.end()
パラメータ
なし
戻り値
なし
available
概要
シリアル通信ポートから何バイトのデータが読み取れるかを返す
文法
int Serial.available()
パラメータ
なし
戻り値
シリアルバッファにあるデータのバイト数。0の場合はデータなし
read
概要
シリアル通信ポートの受信バッファから1バイトのデータが読み出します。
文法
int Serial.read()
パラメータ
なし
戻り値
データ。データなしの場合は-1が返る。
peek
概要
シリアル通信ポートの受信バッファにある先頭データを読み出します。バッファ中の読み込み位置は変更せずバッファを覗くだけです。
文法
int Serial.peek()
パラメータ
なし
戻り値
先頭データ。データなしの場合は-1が返ります。
flush
概要
シリアル通信ポートの送信バッファが空になるまで待ちます。
文法
Serial.flush()
パラメータ
なし
戻り値
なし
write
概要
シリアル通信ポートに文字列やデータを出力する。
文法
Serial.write(const char* str)
Serial.write(const unsigned char* buf, int len)パラメータ
str: 文字列
buf: 出力するデータのポインタ
len: 出力するデータの長さ戻り値
出力したバイト数
概要
シリアル通信ポートに文字列を出力する。
文法
Serial.print(val)
Serial.print(val, format)パラメータ
val: 出力したい値や文字列
format: 数値の場合はその基数(2:2進数、8:8進数、10:10進数、16:16進数)戻り値
出力したバイト数
println
概要
シリアル通信ポートに文字列を改行付きで出力する。
文法
Serial.println(val)
Serial.println(val, format)パラメータ
val: 出力したい値や文字列
format: 数値の場合はその基数(2:2進数、8:8進数、10:10進数、16:16進数)戻り値
出力したバイト数
availableForWrite
概要
送信バッファの空き容量を返す。
文法
int Serial.availableForWrite()
パラメータ
なし
戻り値
空き容量
availableForRead
概要
受信バッファの空き容量を返す。
文法
int Serial.availableForRead()
パラメータ
なし
戻り値
空き容量
サンプルプログラム
Serialで受信したデータをSerial2に出力し、Serial2で受信したデータをSerialに出力します。
#include <Arduino.h>
void setup()
{
Serial.begin(9600);
Serial2.begin(9600);
}
void loop()
{
if(Serial.available())
{
char c = Serial.read();
Serial2.write(c);
}
if(Serial2.available())
{
char c = Serial2.read();
Serial.write(c);
}
}