Arduinoでプッシュボタンスイッチを使用する方法

How to Use a Push Button Switch with the Arduino

プッシュボタンスイッチは、一般的に電子機器で使用され、デバイスを制御したり、特定のアクションをトリガーしたりします。 Arduinoを使用すると、プッシュボタンの状態を簡単に読み、プロジェクトで使用できます。このチュートリアルでは、コードに組み込む方法の例とともに、Arduinoを使用したプッシュボタンスイッチのセットアップと使用をガイドします。


あなたが必要とするもの

  1. Arduino委員会(例:UNO、MEGA、NANO)
  2. プッシュボタンスイッチ
  3. 10K-OHM抵抗器(プルダウン構成用)
  4. ブレッドボードとジャンパーワイヤ
  5. Arduino IDEがインストールされたコンピューター

ステップ1:プッシュボタンスイッチの理解

プッシュボタンスイッチは、押したときに回路を接続または切断するシンプルなデバイスです。通常、4つのピンがあり、そのうち2つは内部的に接続されており、単一のスイッチを形成します。

一般的な構成

  • プルダウン抵抗: ボタンが押されないと、入力ピンが低く読み取られるようにします。
  • プルアップ抵抗: ボタンが押されていないときに入力ピンが高く読み取られるようにします(Arduinoの内部プルアップ抵抗器を使用できます)。

ステップ2:プッシュボタンをArduinoに配線します

プルダウン抵抗設定

ボタンピン 繋がり
片側 Arduino Pin 2
反対側 5V
抵抗(10k) Arduino Pin 2からGNDへ

ステップ3:ボタン状態を読む

を使用します digitalRead() ボタンが押されている(高)かどうか(低)かどうかを判断する機能。

例コード:基本ボタン読み取り

#define buttonPin 2 // Button connected to pin 2

void setup() {
  pinMode(buttonPin, INPUT); // Set pin 2 as input
  Serial.begin(9600);
  Serial.println("Button Test");
}

void loop() {
  int buttonState = digitalRead(buttonPin); // Read the button state

  if (buttonState == HIGH) {
    Serial.println("Button Pressed");
  } else {
    Serial.println("Button Released");
  }

  delay(100); // Small delay for readability
}

ステップ4:内部プルアップ抵抗器の使用

Arduinoには、外部抵抗器の必要性を排除することで配線を簡素化できる組み込みのプルアップ抵抗器があります。

内部プルアップの配線

ボタンピン 繋がり
片側 Arduino Pin 2
反対側 GND

例コード:内部プルアップの使用

#define buttonPin 2 // Button connected to pin 2

void setup() {
  pinMode(buttonPin, INPUT_PULLUP); // Enable internal pull-up resistor
  Serial.begin(9600);
  Serial.println("Button Test with Pull-Up");
}

void loop() {
  int buttonState = digitalRead(buttonPin); // Read the button state

  if (buttonState == LOW) { // LOW means button is pressed
    Serial.println("Button Pressed");
  } else {
    Serial.println("Button Released");
  }

  delay(100); // Small delay for readability
}

ステップ5:ボタンのデバウンド

メカニカルボタンは、多くの場合、押したときにノイズまたは「バウンス」を生成し、複数の測定値を引き起こします。デバウニングは安定した測定値を保証します。

コードの例:ボタンのデバウンド

#define buttonPin 2 // Button connected to pin 2

unsigned long lastDebounceTime = 0;
unsigned long debounceDelay = 50; // 50ms debounce time
int lastButtonState = HIGH;
int buttonState;

void setup() {
  pinMode(buttonPin, INPUT_PULLUP);
  Serial.begin(9600);
}

void loop() {
  int reading = digitalRead(buttonPin);

  // If the button state has changed, reset the debounce timer
  if (reading != lastButtonState) {
    lastDebounceTime = millis();
  }

  // Check if the debounce time has passed
  if ((millis() - lastDebounceTime) > debounceDelay) {
    if (reading != buttonState) {
      buttonState = reading;

      if (buttonState == LOW) {
        Serial.println("Button Pressed");
      }
    }
  }

  lastButtonState = reading;
}

ステップ6:ボタンでLEDを制御します

ボタンを使用してLEDを制御できます。たとえば、ボタンを押すたびにLED状態を切り替えます。

例コード:ボタントグルLED

#define buttonPin 2 // Button connected to pin 2
#define ledPin 13   // LED connected to pin 13

bool ledState = false;
bool lastButtonState = HIGH;

void setup() {
  pinMode(buttonPin, INPUT_PULLUP);
  pinMode(ledPin, OUTPUT);
  digitalWrite(ledPin, LOW);
}

void loop() {
  int buttonState = digitalRead(buttonPin);

  if (buttonState == LOW && lastButtonState == HIGH) {
    ledState = !ledState; // Toggle LED state
    digitalWrite(ledPin, ledState ? HIGH : LOW);
    delay(200); // Debounce delay
  }

  lastButtonState = buttonState;
}

プッシュボタンのアプリケーション

  1. スイッチを開始/停止します
  2. モードを選択するためのユーザー入力
  3. サーキットでボタンをリセットします
  4. 照明または電化製品を制御します

トラブルシューティング

  • 応答しないボタン: 配線を確認し、正しいピンモードが使用されていることを確認してください。
  • 不安定な測定値: デバウンスロジックを追加するか、プルアップ/プルダウン抵抗を使用します。
  • LED照明ではありません: LED方向を確認し、電流を制限するために抵抗器を使用します。

結論

Arduinoを使用してプッシュボタンスイッチを使用する方法を学びました。これには、LEDなどの状態の読み取り、デバウンス、制御デバイスなどがあります。プッシュボタンはエレクトロニクスの基本的なコンポーネントであり、それらの使用をマスターすると無限のPOが開きます

コメントを残す

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.