ボタンの押下回数を数える
CoddyのArduinoジャーニー「入力」セクションの一部。レッスン 5/22。
前のレッスンのエッジを使うと、ボタンを押すたびに1回だけ実行したい処理を動かせます。ここでは、Counting Upで使った++を使って、カウンターに1を加えます。
int presses = 0;
void loop() {
int reading = digitalRead(2);
if (reading == LOW && lastReading == HIGH) {
presses++;
Serial.println(presses);
}
lastReading = reading;
}pressesはlastReadingと同じようにsetup()より上にあるため、loop()が実行されても値が保持されます。
出力処理はifの中にあるため、カウントが変わったときだけ数値が表示されます。1、2、3のように表示されます。ifの外に置くと、1秒間に何千回も同じカウントが表示されてしまいます。
チャレンジ
簡単ボタンはピン2(INPUT_PULLUP)に接続されています。ボタンが押された回数を数えましょう。
setup()より前に宣言したpressesに回数を保持します- ボタンが押されたら、1を加えて回数を出力します
Runを押し、ボタンを数回押してシリアルモニターを確認してから、Checkを押します。
自分で試してみよう
const int buttonPin = 2;
int lastReading = HIGH;
void setup() {
pinMode(buttonPin, INPUT_PULLUP);
Serial.begin(9600);
}
void loop() {
int reading = digitalRead(buttonPin);
// ボタンが押されたら回数を数え、その回数を出力する
lastReading = reading;
}
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
入力のすべてのレッスン
自分で練習してみよう: Arduinoプレイグラウンド