2つのボタンを同時に使う
CoddyのArduinoジャーニー「入力」セクションの一部。レッスン 7/22。
各ボタンにはそれぞれ専用のピンと専用のdigitalRead()があります。ボードは順番に読み取りますが、とても速いので、あなたには同時に読み取っているように感じられます。
工場の機械では、離れた場所に2つのボタンがあり、両方が押されている間だけ動作することがよくあります。両手がボタンにあるので、どちらの手も刃の近くにありません。このルールには「条件の結合」で学んだ&&を使います。
bool left = digitalRead(2) == LOW;
bool right = digitalRead(3) == LOW;
if (left && right) {
// 両方のボタンが押されている
}両方のピンにINPUT_PULLUPが必要です。片方を忘れると、そのピンは浮いた状態になり、この場合はLOWとして読み取られ、ボタンが常に押されているかのようになります。
チャレンジ
簡単ボタンはピン2と3に接続され、どちらもGNDにつながっており、LEDはピン13にあります。両方のボタンが押されている間だけLEDを点灯させます。
- ピン2と3を
INPUT_PULLUPに設定します - 各ボタンの状態を
boolに読み込みます - 両方が押されているときにLEDを点灯させ、それ以外の場合は消灯します
Runを押し、片方のボタンを押してから、両方のボタンを押し、次にCheckを押します。
自分で試してみよう
const int leftPin = 2;
const int rightPin = 3;
const int ledPin = 13;
void setup() {
pinMode(ledPin, OUTPUT);
// 両方のボタンのピンをINPUT_PULLUPに設定する
}
void loop() {
// 両方のボタンの状態を読み取り、両方が押されている間だけLEDを点灯させる
}
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
入力のすべてのレッスン
自分で練習してみよう: Arduinoプレイグラウンド