ボタンの状態を表示する
CoddyのArduinoジャーニー「入力」セクションの一部。レッスン 1/22。
「ボタンを読む」では、digitalRead(pin) は HIGH または LOW を返しました。ボードにとって、これらは単なる数値です。HIGH は 1、LOW は 0 です。したがって、読み取った値を int 変数に保持し、ほかの数値と同じように表示できます。
int state = digitalRead(2);
Serial.println(state);ここでのボタンの配線は、前に見たとおりです。ボタンを押している間はピン 2 とグラウンド(GND、0 ボルト)がつながり、INPUT_PULLUP によって、それ以外の時間はピンが HIGH に保たれます。そのため、シリアルモニターには、ボタンを押していないときは 1、押しているときは 0 と表示されます。
loop() は 1 秒間に何千回も実行されます。表示後に短い delay(100) を入れると、シリアルモニターが読みやすくなります。1 秒間に何千行もではなく、10 行が表示されます。
チャレンジ
簡単ボタンはピン2に接続されています。その状態をシリアルモニターに出力します:
setup()で、ピン2をINPUT_PULLUPに設定しますloop()で、ピンの値をintに読み込み、Serial.println()で出力してから、100 ms待ちます
Runを押し、シリアルモニターを開いてボタンを押したままにしてから、Checkを押します。
自分で試してみよう
const int buttonPin = 2;
void setup() {
Serial.begin(9600);
// ボタンのピンをINPUT_PULLUPに設定する
}
void loop() {
// ボタンの状態を読み取り、読み取った値を出力し、100 ms待つ
}
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
入力のすべてのレッスン
自分で練習してみよう: Arduinoプレイグラウンド