Comment utiliser un interrupteur à bouton-poussoir avec l'Arduino

How to Use a Push Button Switch with the Arduino

Les commutateurs de bouton-poussoir sont couramment utilisés dans l'électronique pour contrôler les appareils ou déclencher des actions spécifiques. Avec un Arduino, vous pouvez facilement lire l'état d'un bouton-poussoir et l'utiliser dans vos projets. Ce tutoriel vous guidera à travers la configuration et l'utilisation d'un commutateur de bouton-poussoir avec l'Arduino, ainsi que des exemples de la façon de l'incorporer dans votre code.


Ce dont vous aurez besoin

  1. Board Arduino (par exemple, Uno, Mega, Nano)
  2. Interrupteur à bouton-poussoir
  3. Résistance 10K-OHM (pour la configuration de la mise à la baisse)
  4. Fils de planche à pain et de cavalier
  5. Un ordinateur avec l'ide Arduino installé

Étape 1: Comprendre les commutateurs du bouton-poussoir

Un interrupteur à bouton-poussoir est un appareil simple qui connecte ou déconnecte un circuit lorsqu'il est appuyé. Il a généralement quatre broches, dont deux connectées en interne, formant un seul interrupteur.

Configurations communes

  • Résistance en tir: S'assure que la broche d'entrée se lit en bas lorsque le bouton n'est pas enfoncé.
  • Résistance de traction: S'assure que la broche d'entrée se lit en haute façon lorsque le bouton n'est pas enfoncé (peut utiliser la résistance de traction interne d'Arduino).

Étape 2: Câblage du bouton-poussoir vers Arduino

Configuration de la résistance en panne

Goupille de bouton Connexion
Un côté Arduino Pin 2
Autre côté 5V
Résistance (10k) Arduino Pin 2 à GND

Étape 3: Lire l'état du bouton

Utiliser le digitalRead() fonction pour déterminer si le bouton est enfoncé (élevé) ou non (bas).

Exemple de code: bouton de base en lecture

#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
}

Étape 4: Utilisation de la résistance de traction interne

L'Arduino possède des résistances de traction intégrées qui peuvent simplifier le câblage en éliminant le besoin d'une résistance externe.

Câblage pour le traction interne

Goupille de bouton Connexion
Un côté Arduino Pin 2
Autre côté GND

Exemple de code: en utilisant un traction interne

#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
}

Étape 5: Debountage du bouton

Les boutons mécaniques produisent souvent du bruit ou du «rebond» lorsqu'il est enfoncé, provoquant plusieurs lectures. Debouncing assure des lectures stables.

Exemple de code: débouillant un bouton

#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;
}

Étape 6: Contrôle d'une LED avec le bouton

Vous pouvez utiliser le bouton pour contrôler une LED. Par exemple, bascule l'état LED à chaque bouton appuyer.

Exemple de code: le LED de basculement du bouton

#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;
}

Applications des boutons poussoirs

  1. Commutateurs de démarrage / arrêt
  2. Entrée utilisateur pour sélectionner les modes
  3. Réinitialiser les boutons en circuits
  4. Éclairage ou appareils de contrôle

Dépannage

  • Bouton qui ne répond pas: Vérifiez le câblage et assurez-vous que la bonne mode est utilisée.
  • Lectures instables: Ajoutez la logique de débouchement ou utilisez une résistance de traction / traction.
  • LED pas l'éclairage: Confirmez l'orientation LED et utilisez une résistance pour limiter le courant.

Conclusion

Vous avez appris à utiliser un interrupteur à bouton-poussoir avec l'Arduino, y compris la lecture de son état, ses dispositifs de débouchement et de contrôle comme les LED. Les boutons poussoirs sont un élément fondamental de l'électronique, et la maîtrise de leur utilisation s'ouvrira sans fin PO

Laissez un commentaire

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.