-
ハードウェアの接続: ボタンをArduinoに接続するためには、ボタンの一方のピンをデジタル入力ピンに、もう一方のピンをGND(グラウンド)に接続します。プルアップまたはプルダウンの抵抗を使用することもありますが、ここでは簡単のために省略します。
-
ボタンの読み取り: ボタンの状態を読み取るために、Arduinoのプログラムでデジタル入力ピンを監視します。以下は、ボタンが押されたかどうかを判定する例です。
const int buttonPin = 2; // ボタンの接続ピン番号 void setup() { pinMode(buttonPin, INPUT); // ボタンの接続ピンを入力モードに設定 Serial.begin(9600); // シリアル通信を開始 } void loop() { int buttonState = digitalRead(buttonPin); // ボタンの状態を読み取る if (buttonState == HIGH) { Serial.println("ボタンが押されました"); } delay(100); // ディレイを挿入して連続的な読み取りを制御 }
上記のコードでは、
digitalRead()
関数を使用してデジタル入力ピンの状態を読み取ります。ボタンが押されると、buttonState
はHIGH
となり、「ボタンが押されました」というメッセージがシリアルモニタに表示されます。 -
ボタンのイベント処理: ボタンが押されたときや離されたときに特定のアクションを実行する場合、イベント処理が必要です。以下は、ボタンの状態変化を検出して処理する例です。
const int buttonPin = 2; // ボタンの接続ピン番号 int buttonState = LOW; // ボタンの初期状態 void setup() { pinMode(buttonPin, INPUT); // ボタンの接続ピンを入力モードに設定 Serial.begin(9600); // シリアル通信を開始 } void loop() { int newButtonState = digitalRead(buttonPin); // ボタンの現在の状態を読み取る if (newButtonState != buttonState) { if (newButtonState == HIGH) { Serial.println("ボタンが押されました"); // ここにボタンが押されたときの処理を記述 } else { Serial.println("ボタンが離されました"); // ここにボタンが離されたときの処理を記述 } buttonState = newButtonState; // ボタンの状態を更新 } delay(100); // ディレイを挿入して連続的な読み取りを制御 }
上記のコードでは、ボタンの状態変化を検出するために
buttonState
変数を使用します。buttonState
変数は現在のボタンの状態を保持し、newButtonState
変数は最新のボタンの状態を読み取ります。ボタンの状態が変化した場合、対応するメッセージがシリアルモニタに表示され、必要な処理が実行されます。
これらはArduinoでボタンを使用する基本的な方法とコード例です。さまざまなプロジェクトに応じて、さらに高度なボタンの制御や他のセンサーとの組み合わせなどが必要になる場合もあります。しかし、これらの基本的なコンセプトとコード例を理解すると、ボタンの制御に関する幅広い知識を得ることができます。