シリアル文字を読み取る
CoddyのArduinoジャーニー「入力」セクションの一部。レッスン 15/22。
Serial接続は双方向で動作します。Serialモニターのボックスに入力してSendで送信したテキストは、1文字ずつボードに送られ、スケッチが読み取るまでバッファに格納されます。
Serial.available()は、待機中の文字数を示します。Serial.read()は、バッファから次の文字を取り出します。1文字はchar変数に収まり、シングルクォートで記述します。
if (Serial.available() > 0) {
char c = Serial.read();
if (c == '1') {
// 1 が入力された
}
}シングルクォートで囲まれた'1'は、押すキーである文字の1です。数値の1ではありません。ボードはこの文字をコード49として保存します。
Serialモニターは、入力した内容の後に、目に見えない改行文字も送信します。これは'\n'と記述します。スケッチは認識する文字に対して処理を行い、それ以外の文字は読み飛ばします。
チャレンジ
簡単LEDはピン13に接続されています。シリアルモニターから切り替えます。
- 文字が待機しているとき、それを
charに読み込みます '1'でLEDが点灯し、'0'で消灯します- 改行など、その他の文字では何も変わりません
Runを押し、シリアルモニターに1または0を入力してSendを押し、その後Checkを押します。
自分で試してみよう
const int ledPin = 13;
void setup() {
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
// 文字が届いていたら読み取る
// '1' で LED を点灯し、'0' で消灯する
}
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
入力のすべてのレッスン
自分で練習してみよう: Arduinoプレイグラウンド