基本ライブラリ
デジタルIO
アナログIO
拡張IO
時間
数学
三角関数
乱数
ビットバイト操作
割り込み
シリアル通信
標準ライブラリ
サーボモーター
ステッピングモーター
キャラクタ液晶表示
EEPROM
SPI通信
I2C通信(Wire)
メモリカード
メモリカード(File操作)
Ethernet
Ethernetサーバー
Ethernetクライアント
Firmata
周期処理
省電力
時計(RTC)
SoftwareSerial
ユーティリティ
シリアル通信(SoftwareSerialクラス)
SoftwareSerialは、Serialクラスのシリアルポート以外のデジタルピンでシリアル通信を可能にするライブラリです。最大115200 bpsの速度を持つ複数のソフトウェアシリアルポートを持つことが可能です。ただし、ボーレートが115200bpsでは、受信のラッチタイミングがそれほど正確ではないため、注意してください。受信バッファは256バイト固定です。
使用する場合は、#include <SoftwareSerial.h>
を記述して、SoftwareSerialクラスのインスタンスを生成してください。
SoftwareSerial用コンストラクタ
概要
SoftwareSerialクラスのインスタンス生成用コンストラクタです。
文法
SoftwareSerial(receivePin, transmitPin)
SoftwareSerial(receivePin, transmitPin, inverse_logic)パラメータ
receivePin: 受信するピン
transmitPin: 送信するピン
inverse_logic: ロジックを反転する(デフォルト false)戻り値
なし
begin
概要
シリアル通信のボーレート、ポートの設定を行います。
文法
serial.begin(int speed)
パラメータ
speed: ボーレート
戻り値
なし
end
概要
シリアル通信ポートの停止
文法
serial.end()
パラメータ
なし
戻り値
なし
available
概要
シリアル通信ポートから何バイトのデータが読み取れるかを返す
文法
int serial.available()
パラメータ
なし
戻り値
シリアルバッファにあるデータのバイト数。0の場合はデータなし
read
概要
シリアル通信ポートの受信バッファから1バイトのデータが読み出します。
文法
int serial.read()
パラメータ
なし
戻り値
データ。データなしの場合は-1が返る。
peek
概要
シリアル通信ポートの受信バッファにある先頭データを読み出します。バッファ中の読み込み位置は変更せずバッファを覗くだけです。
文法
int serial.peek()
パラメータ
なし
戻り値
先頭データ。データなしの場合は-1が返ります。
flush
概要
シリアル通信ポートの送信バッファが空になるまで待ちます。ただし、SoftwareSerialでは送信バッファに貯められることはありませんので、この関数は何もしません。
文法
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進数)戻り値
出力したバイト数
listen
概要
複数オブジェクトを生成している場合、対象オブジェクトをListen状態にする。他のオブジェクトの受信データは破棄されます。
文法
bool serial.listen()
パラメータ
なし
戻り値
true: 成功、false: 失敗
isListening
概要
対象オブジェクトがListen状態か確認する。
文法
bool serial.isListening()
パラメータ
なし
戻り値
true: Listen状態、false: Listen状態ではない
overflow
概要
受信バッファがオーバーフローしているか確認する。
文法
bool serial.overflow()
パラメータ
なし
戻り値
true: オーバーフローしている、false: オーバーフローしていない
サンプルプログラム
Pin 10を受信、Pin 11を送信としたシリアルポートを生成し、A0の値を出力するサンプルです。
#include <Arduino.h>
#include <SoftwareSerial.h>
SoftwareSerial serial(10, 11); // RX: 10, TX:11
int analogValue;
void setup()
{
serial.begin(9600);
}
void loop()
{
analogValue = analogRead(A0);
delay(100);
}