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

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

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

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

このライブラリを使うためには、以下を宣言する。

#include <SoftwareSerial.h> 

制約

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

  • 複数のソフトウェアシリアルポートを利用しても、同時には一つのデータしか受信できない。
  • 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
シリアル通信の速度(ボーレート)を設定する。
ソフトウェアシリアルポートから読み込み可能なバイト数(文字数)を取得する。
シリアル通信の速度(ボーレート)を設定する。
指定したソフトウェアシリアルポートが受信中かを調べる。
ソフトウェアシリアルのバッファがオーバーフローしているかどうかを調べる。
ソフトウェアシリアルポートのRXピンで受信した文字を返却する。
ソフトウェアシリアルポートのRXピンで受信した文字を返却する。
ソフトウェアシリアルポートの送信ピンにデータを書き込む。
ソフトウェアシリアルポートの送信ピンにデータを書き込み、その後に、CR(キャリッジリターン)とLF(ラインフィード)を書き込む。
選択したソフトウェアシリアルポートを受信可能状態にする。
選択したソフトウェアシリアルポートを受信可能状態にする。

プログラム例

プログラム例 説明
Software Serial Example シリアルポートが一つだと足らないときはこのライブラリを使おう。
Two Port Receive 複数のソフトウェアシリアルポートを使う。

オリジナルのページ

https://www.arduino.cc/en/Reference/SoftwareSerial

inserted by FC2 system