Arduino Mega - Button (Taste)

Die Taste ist ein einfaches aber wichtiges Bauteil, das in vielen Arduino Mega-Projekten verwendet wird. Es mag schwierig erscheinen aufgrund seiner Funktionsweise und wie es sich beim Drücken anfühlt, was für Anfänger herausfordernd sein kann. Diese Anleitung wurde erstellt, um Anfängern das einfache Verständnis zu ermöglichen. Lassen Sie uns beginnen!

Arduino Mega button

※ Notiz:

Bevor wir lernen, wie man die Taste mit dem Arduino Mega verwendet, sind hier zwei häufige Fehler, die Anfänger machen:

  • Floating Input Problem
    • Symptom: Wenn eine Taste an einen Arduino Mega Input-Pin angeschlossen ist, ist der Pin-Zustand nicht zuverlässig und zeigt nicht den echten Tastenzustand.
    • Ursache: Der Input-Pin hat keinen Pull-Down- oder Pull-Up-Widerstand.
    • Lösung: Fügen Sie einen Pull-Down- oder Pull-Up-Widerstand zum Input-Pin hinzu. Wir erklären mehr dazu später in dieser Anleitung.
  • Debounce (Chattering) Problem
    • Symptom: Der Mega liest die Taste und versucht einen Tastendruck zu erkennen, indem er nach Zustandsänderungen sucht (HIGH zu LOW, oder LOW zu HIGH). Aber mit einem Tastendruck kann der Mega denken, dass es mehrere Tastendrücke gibt.
    • Ursache: Die mechanische Aktion der Taste bewirkt, dass der Input schnell zwischen LOW und HIGH nach einem Tastendruck wechselt.
    • Lösung: Verwenden Sie Debounce. Siehe das Arduino Mega Button Debounce Tutorial für Details.

    Hinweis: Chattering betrifft nur Projekte, die eine exakte Zählung der Tastendrücke benötigen. In anderen Anwendungen ist es möglicherweise kein Problem.

Erforderliche Hardware

1×Arduino Mega
1×USB 2.0 Kabel Typ A/B
1×Breadboard-montierte Taste mit Kappe
1×Breadboard-montierte Tasten-Kit
1×Panel-montierte Taste
1×Taster-Modul
1×Breadboard (Steckplatine)
1×Jumper-Kabel
1×(Empfohlen) Screw Terminal Block Shield for Arduino Uno/Mega
1×(Empfohlen) Breadboard Shield for Arduino Mega
1×(Empfohlen) Enclosure for Arduino Mega

Oder Sie können die folgenden Kits kaufen:

1×DIYables Sensor-Kit (30 Sensoren/Displays)
1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Über die Taste

Die Drucktaste, auch Taktile Taste oder Momentary Switch genannt, ist ein Schalter, der sich schließt, wenn Sie ihn drücken und halten, und sich öffnet, wenn Sie ihn loslassen. Drucktasten gibt es in verschiedenen Arten, hauptsächlich zwei Gruppen:

  • Drucktasten für PCB-Montage (können auf einem Breadboard verwendet werden)
  • Drucktasten für Panel-Montage
Arduino Mega Push button

Pinout

Die PCB-montierten Tasten haben normalerweise vier Pins.

Button Pinout

Innen sind die Pins paarweise verbunden. Sie müssen also nur zwei Pins verwenden und einen aus jedem Paar wählen.

Es gibt vier Möglichkeiten, die Taste anzuschließen, aber eigentlich nur zwei, da sie ähnlich sind. Siehe das Bild.

How To Use Button

Eine Taste hat vier Pins, aber wir verwenden nur zwei. Das hilft ihr, stabil auf der Schaltungsplatine zu bleiben und zu überleben, wenn sie gedrückt wird.

Die Panel-montierten Tasten haben normalerweise zwei Pins.

two-pin push button Pinout
image source: diyables.io

Das Push Button Module enthält einen eingebauten Pull-Down-Widerstand, der sicherstellt, dass der Ausgang LOW bleibt, wenn die Taste nicht gedrückt wird. Es hat drei Pins:

  • GND: Verbinden Sie diesen Pin mit Masse.
  • VCC: Verbinden Sie diesen Pin mit einer 5V oder 3,3V Stromversorgung.
  • OUT: Verbinden Sie diesen Pin mit einem digitalen Eingang Ihres Arduino.

Mit dieser Einstellung gibt das Modul LOW aus, wenn die Taste nicht gedrückt wird, und HIGH, wenn die Taste gedrückt wird.

Funktionsweise

  • Wenn Sie die Taste nicht drücken, ist Pin A nicht mit Pin B verbunden.
  • Wenn Sie die Taste drücken, ist Pin A mit Pin B verbunden.
How Button Works

Arduino Mega - Button

Eine Seite der Taste wird mit Strom oder Masse verbunden, und die andere Seite wird mit einem Pin am Arduino Mega verbunden.

Wir können erkennen, ob die Taste gedrückt wird, indem wir den Pin am Arduino Mega lesen, der als Eingang eingestellt ist.

Tastenzustand und Drückzustand

Wie der Zustand der Taste mit dem Drücken zusammenhängt, hängt davon ab, wie wir die Taste mit dem Arduino Mega verbinden und den Pin-Einstellungen am Arduino Mega.

Es gibt zwei einfache Möglichkeiten, eine Taste mit einem Arduino Mega zu verwenden.

  • Verbinden Sie eine Seite der Taste mit VCC und die andere Seite mit einem Arduino Mega Input-Pin, mit einem Pull-Down-Widerstand zur Masse. Wenn Sie die Taste drücken, wird der Pin HIGH sein. Wenn nicht gedrückt, wird er LOW sein. Sie müssen einen externen Widerstand verwenden.
  • Verbinden Sie eine Seite der Taste mit GND und die andere Seite mit einem Arduino Mega Input-Pin, mit einem Pull-Up-Widerstand. Wenn Sie die Taste drücken, wird der Pin LOW sein. Wenn nicht gedrückt, wird er HIGH sein. Sie können entweder einen internen oder externen Widerstand verwenden; der interne Widerstand ist im Mega eingebaut und kann im Code aktiviert werden.

※ Notiz:

Wenn wir keinen Pull-Down- oder Pull-Up-Widerstand verwenden, ist der Input-Pin floating, wenn die Taste nicht gedrückt wird. Das bedeutet, der Pin-Zustand kann sich von selbst zu HIGH oder LOW ändern und falsche Messwerte liefern.

  • Schlechteste Praxis: Den Arduino Mega Pin als Eingang einstellen mit pinMode(BUTTON_PIN, INPUT) und keinen Pull-Down- oder Pull-Up-Widerstand.
  • Beste Praxis: Den Arduino Mega Pin mit einem internen Pull-Up-Widerstand einstellen mit pinMode(BUTTON_PIN, INPUT_PULLUP). Das benötigt keinen externen Widerstand.

Um Anfängern zu helfen, verwendet diese Anleitung die einfachste Methode: Stellen Sie den Arduino Mega Pin ein, um seinen eingebauten Pull-Up-Widerstand zu verwenden, sodass Sie keinen externen Widerstand benötigen. Anfänger müssen sich keine Sorgen über die Verbindung eines Pull-Up- oder Pull-Down-Widerstands machen. Sie müssen nur den hier gezeigten Arduino-Code verwenden.

Schaltplan

  • Schaltplan für Arduino Mega und eine PCB-montierte Taste.
Arduino Mega Button Wiring Diagram

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

  • Wie man Arduino Mega mit einer Panel-montierten Taste verdrahtet
Arduino Mega two-pin push button Wiring Diagram

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Programmierung für die Taste

  • Stellt Pin 7 am Arduino Mega als Eingang mit dem eingebauten Pull-Up-Widerstand mit der pinMode() Funktion ein.
pinMode(7, INPUT_PULLUP);
  • Es verwendet digitalRead() um den Zustand eines Pins am Arduino Mega zu prüfen.
int button_state = digitalRead(BUTTON_PIN);

※ Notiz:

Es gibt zwei übliche Methoden dafür:

  • Erste: Wenn der Eingang HIGH ist, etwas tun. Wenn der Eingang LOW ist, das Gegenteil tun.
  • Zweite: Wenn der Eingang von LOW zu HIGH (oder HIGH zu LOW) wechselt, etwas tun.

Wählen Sie eine basierend auf dem, was passieren soll. Zum Beispiel, mit einer Taste und einer LED:

  • Wenn Sie wollen, dass die LED angeht, wenn die Taste gedrückt wird und ausgeht, wenn sie nicht gedrückt wird, verwenden Sie die erste Methode.
  • Wenn Sie wollen, dass die LED zwischen AN und AUS wechselt, jedes Mal wenn Sie die Taste drücken, verwenden Sie die zweite Methode.

Arduino Mega Code - Den Zustand der Taste lesen

#define BUTTON_PIN 7 // The Arduino Mega pin connected to the button void setup() { // initialize serial communication at 9600 bits per second: Serial.begin(9600); // initialize the pushbutton pin as a pull-up input pinMode(BUTTON_PIN, INPUT_PULLUP); } void loop() { // read the state of the switch/button: int button_state = digitalRead(BUTTON_PIN); // print out the button's state Serial.println(button_state); delay(500); }

Schnelle Schritte

Folgen Sie diesen Schritten Schritt für Schritt.

  • Wenn Sie zum ersten Mal den Arduino Mega verwenden, siehe die Anleitung zum Einrichten des Arduino Mega in der Arduino IDE
  • Verbinden Sie die Taste mit dem Arduino Mega gemäß dem Ihnen gegebenen Schaltplan.
  • Verbinden Sie das Arduino Mega Board mit Ihrem Computer mit einem USB-Kabel.
  • Öffnen Sie die Arduino IDE auf Ihrem Computer.
  • Wählen Sie das richtige Board (Arduino Mega) und den richtigen COM-Port.
  • Kopieren Sie den obigen Code und öffnen Sie ihn in der Arduino IDE.
  • Klicken Sie den Upload Button in der Arduino IDE, um den Code zu Ihrem Arduino Mega zu senden.
Arduino IDE - How to Upload Code
  • Öffnen Sie den Serial Monitor.
  • Drücken Sie und lassen Sie die Taste mehrmals los.
  • Sehen Sie das Ergebnis im Serial Monitor.
COM6
Send
1 1 1 0 0 0 0 0 0 1 1 1
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

1 ist an, 0 ist aus.

Code-Erklärung

Die Erklärung steht in den Kommentaren im Arduino-Code oben.

Arduino Mega Code - Erkennung des Tastendrucks und Loslassens

Lassen Sie uns den Code ändern, damit er erkennen kann, wann Tasten gedrückt und losgelassen werden.

/* * Dieser Arduino Mega Code wurde von newbiely.de entwickelt * Dieser Arduino Mega Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino-mega/arduino-mega-button */ #define BUTTON_PIN 7 // The Arduino Mega pin connected to the button int button_state; // the current state of button int prev_button_state = LOW; // the previous state of button void setup() { // initialize serial communication at 9600 bits per second: Serial.begin(9600); // initialize the pushbutton pin as a pull-up input pinMode(BUTTON_PIN, INPUT_PULLUP); } void loop() { // read the state of the switch/button: button_state = digitalRead(BUTTON_PIN); if (prev_button_state == HIGH && button_state == LOW) Serial.println("The button is pressed"); else if (prev_button_state == LOW && button_state == HIGH) Serial.println("The button is released"); // save the last state prev_button_state = button_state; }

Schnelle Schritte

  • Kopieren Sie den obigen Code und fügen Sie ihn in die Arduino IDE ein.
  • Klicken Sie den Upload Button in der Arduino IDE, um den Code zum Arduino Mega hochzuladen.
  • Öffnen Sie den Serial Monitor.
  • Drücken Sie und lassen Sie die Taste los.
  • Sehen Sie das Ergebnis im Serial Monitor.
COM6
Send
The button is pressed The button is released
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ Notiz:

  • Auch wenn Sie die Taste nur einmal drücken und loslassen, könnte der Serial Monitor viele Drück- und Loslassereignisse anzeigen. Dieses häufige Problem wird Button Bouncing genannt. Sie können mehr darüber im Arduino Mega - Button Debounce Tutorial lernen.
  • Um die Dinge für Anfänger zu vereinfachen, die mehrere Tasten verwenden, haben wir eine Bibliothek namens ezButton erstellt. Sie können über die ezButton Library lernen.
  • Wenn Sie das Button Module verwenden, stellen Sie den Pin auf Input-Modus mit pinMode(BUTTON_PIN, INPUT) ein. Mit dieser Einstellung gibt das Modul LOW aus, wenn die Taste nicht gedrückt wird, und HIGH, wenn die Taste gedrückt wird.

Video Tutorial

Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!