Arduinoリファレンス

Arduinoリファレンスの日本語訳のページです
garretlab
SoftwareSerialライブラリ

Arduinoハードウェアでは、0番ピンと1番ピンでシリアル通信をサポートしている(USB接続でPCとの通信にも使われる)。このシリアル通信はチップに内蔵されたハードウェアを利用しており、UARTと呼ばれる。このハードウェアを使えば、64バイトのシリアルバッファに有余がある限りは、他のタスクを実行中でもAtmegaチップはシリアル通信を受信することができる。

SoftwareSerialライブラリは、ソフトウェア実装により(なのでSoftwareSerialと名づけられた)、Arduinoの他のデジタルピンを使ってシリアル通信を利用できるようにするために開発された。115200bpsまでのスピードで、複数のソフトウェアシリアルポートを利用することができる。パラメータを設定することで、負論理(inverted signaling )のデバイスにも対応することができる。

1.0以降のSoftwareSerialのバージョンはMikal Hartが作成したNewSoftSerialライブラリを基にしている。

制約

このライブラリには以下の制約がある。

  • 複数のソフトウェアシリアルポートを利用しても、同時には一つのデータしか受信できない。
  • MegaとMega 2560では、全てのピンが入力の変化に対する割り込みをサポートしているわけではないので、以下のピンだけが受信(RX)に対応している:10, 11, 12, 13, 14, 15, 50, 51, 52, 53, A8(62), A9(63), A10(64), A11(65), A12(66), A13(67), A14(68), A15(69)。
  • LeonardとMicroでは、全てのピンが入力の変化に対する割り込みをサポートしているわけではないので、以下のピンだけが受信(RX)に対応している:8, 9, 10, 11, 14(MISO), 15(SCK), 16(MOSI)。
  • Arduino/Genuino 101では、現在の最大受信(RX)スピードは57600bpsである。
  • Arduino/Genuino 101では、13番ピンでは受信できない。

同時にシリアル通信を利用する必要がある場合は、Paul Stoffregen作成のAltSoftSerialライブラリを参照すること。AltSoftSerialではSoftwareSerialが持ついくつかの制約が解除されている。ただし、独自の制約もある。

SoftWareSerial
SoftwareSerial SoftwareSerialはSoftwareSerialオブジェクトのインスタンスを作成する
available() ソフトウェアシリアルポートから読み込み可能なバイト数(文字数)を取得する。
begin() シリアル通信の速度(ボーレート)を設定する。
isListening() 指定したソフトウェアシリアルポートが受信中かを調べる。
overflow() ソフトウェアシリアルのバッファがオーバーフローしているかどうかを調べる。
peek() ソフトウェアシリアルポートのRXピンで受信した文字を返却する。
read() ソフトウェアシリアルポートのRXピンで受信した文字を返却する。
print() ソフトウェアシリアルポートの送信ピンにデータを書き込む。
println() ソフトウェアシリアルポートの送信ピンにデータを書き込み、その後に、CR(キャリッジリターン)とLF(ラインフィード)を書き込む。
listen() 選択したソフトウェアシリアルポートを受信可能状態にする。
write() ソフトウェアシリアルポートの送信ピンにデータを書き込む。

バージョン

Arduino 1.8.5



メニューを表示するためにJavaScriptを有効にしてください。

inserted by FC2 system