コマンドで点滅させる
CoddyのArduinoジャーニー「入力」セクションの一部。レッスン 18/22。
3を入力すると、LEDが3回点滅してから停止します。loop()はすでに繰り返し実行されるので、回数のカウントを任せましょう。あと何回点滅するかを変数に保持します。loop()が実行されるたびに、残りの点滅回数があれば、1回点滅させて残りを1減らします。
int blinksLeft = 0;
void loop() {
// Serial monitorから入力された数値でblinksLeftを設定する
if (blinksLeft > 0) {
// 1回点滅する
blinksLeft = blinksLeft - 1;
}
}blinksLeftが0になると、ifはfalseになり、次の数値が入力されるまでLEDは消灯したままです。
数値の後の改行によって、1秒後にparseInt()が再び0を返します。前と同じように0を無視しましょう。そうしないと、残りの点滅回数が消されてしまいます。
チャレンジ
中級シリアルモニターに入力された数だけ、13番ピンのLEDを点滅させます。
- 文字が待機しているときは、
parseInt()で数値を読み取り、0より大きければblinksLeftに格納します blinksLeftが0より大きければ、1回点滅させ(200 ms点灯、200 ms消灯)、1減らします
Runを押し、シリアルモニターから3を送信してから、Checkを押します。
自分で試してみよう
const int ledPin = 13;
int blinksLeft = 0;
void setup() {
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
// Serialモニターから入力された数値をblinksLeftに設定する
// blinksLeftが0より大きい間、1回点滅させてからblinksLeftを1減らす
}
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
入力のすべてのレッスン
自分で練習してみよう: Arduinoプレイグラウンド