Drucktaste: Verwendung dieses einfachen Elements mit Arduino

Knopf drücken

Un Druckknopf ist ein Knopf, mit dem Sie ein elektronisches Signal unterbrechen oder senden können. Mit diesem einfachen Element in Kombination mit anderen Elementen können Sie Projekte für eine Vielzahl von Anwendungen erstellen. Die Verwendung dieser Art von Drucktasten ist bei Projekten mit Arduino sehr verbreitet. Durch Kombinieren mehrerer dieser Tasten können Sie eine etwas komplexere Tastatur erstellen, obwohl es bereits programmierbare Tastaturen für diese Zwecke gibt ...

Übrigens Sie sollten den Druckknopf nicht mit einem Schalter verwechseln. Das sind ganz andere Dinge. Der Unterschied besteht darin, dass der Schalter oder Schalter bei jedem Drücken aktiviert oder deaktiviert wird. Während der Druckknopf nur in einem Zustand bleibt, während Druck auf ihn ausgeübt wird. Ich habe kommentiert, dass es senden oder unterbrechen kann, das heißt, weil es zwei grundlegende Arten von Schaltflächen gibt.

Druckknopfsymbol

Existieren NEIN oder normalerweise offene Drucktasten und NC oder normalerweise geschlossene Drucktasten. Dies ertönt auch für Sie von den Relais. Und ja, es ist genau die gleiche Operation. Wenn Sie eine NC haben, lässt sie Strom durch ihre Klemmen fließen und unterbricht sie nur, während Sie sie drücken. Andererseits lässt die NA keinen Strom durch, wenn kein Druck auf sie ausgeübt wird, und lässt ihn nur durch, wenn Sie darauf drücken.

Wissend, dass, ist fast alles, was Sie über einen Druckknopf wissen müssen um Ihre Verbindung und Programmierung mit Arduino zu starten. Die Wahrheit ist, dass es ein so einfaches Element ist, dass es nicht viel mehr über diese Art von Drucktasten zu sagen gibt.

Push Button Integration mit Arduino

Schaltung mit Arduino

La Anschließen eines Druckknopfes Es könnte nicht einfacher sein, es mit Arduino interagieren zu lassen. Ein Beispiel ist das Diagramm, das Sie in diesen Zeilen sehen können. Das wäre alles, was man braucht, um zu experimentieren. Aber mit diesem Schema können Sie natürlich wenig tun. Es wäre notwendig, dass Sie ein wenig Fantasie einsetzen, um zu entscheiden, was dieser Knopf steuern soll. Wenn Sie häufig hwlibre.es lesen, haben Sie bereits einige Artikel gesehen, in denen wir Druckknöpfe verwendet haben ...

Möglichkeiten, es zu verbinden

hochziehen und runterziehen

Eine Sache, die Sie wissen sollten, ist das Thema Anti-Bounce und wie man diese Drucktasten anschließt. Zuerst gehen wir zum Weg, um sie zu verbinden, von denen Sie bereits wissen, dass sie mit den Pull-Up- und Pull-Down-Widerständen möglich sind:

  • Klimmzug- Bei dieser Widerstandseinstellung kann der Mikrocontroller oder Arduino beim Drücken des Druckknopfs eine Null an diesem Pin sehen oder lesen. Das heißt, es interpretiert es als ein NIEDRIGES Signal.
  • Pulldown: In diesem Fall ist es umgekehrt, Sie können ein 1- oder HIGH-Signal über den angeschlossenen Pin lesen oder empfangen.

Verwechseln Sie es nicht mit der NC oder NA, Das ist etwas anderes, als wir zuvor gesehen haben. Dies ist unabhängig von den anderen ...

Anti-Bounce

Die Drucktasten haben eine Abpralleffekt wenn gedrückt. Das heißt, wenn es gedrückt oder losgelassen wird, gibt es eine Schwankung im Signal, das durch seine Kontakte geht und dazu führen kann, dass es von einem HIGT-Zustand auf LOW oder umgekehrt wechselt, ohne dass dies wirklich geschehen soll. Das kann einen unerwünschten Effekt auf das Arduino haben und es dazu bringen, seltsame Dinge zu tun, wie ein Element zu aktivieren, wenn wir es wirklich mit dem Druckknopf ausschalten wollten usw. Das liegt daran, dass der Arduino die Bounces so interpretiert, als ob sie mehr als einmal gedrückt worden wären ...

Dieser negative Effekt es hat eine Lösung. Hierzu muss ein kleiner Kondensator in der Anti-Bounce-Schaltung (Hardwaremethode) oder Software (Ändern des Quellcodes) implementiert werden, unabhängig davon, ob eine Pull-Up- oder Pull-Down-Konfiguration verwendet wurde oder ob es sich um NC oder NO handelt. In all diesen Fällen muss die Lösung implementiert werden, um diese Rückschläge zu vermeiden.

Zum Beispiel Pull-Up- und Pull-Down-Schaltkreise mit dem Anti-Bounce-Kondensator sie würden ungefähr so ​​aussehen:

Rebounder

Während die Software-Methode Es könnte in diesem Code-Snippet gesehen werden:

if (digitalRead (button) == LOW) // Überprüfen Sie, ob die Taste gedrückt wurde
{
gedrückt = 1; // Die Variable ändert den Wert
}
if (digitalRead (Taste) == HIGH && gedrückt == 1)
{
// Führen Sie die gewünschte Aktion aus
gedrückt = 0; // Die Variable kehrt zu ihrem ursprünglichen Wert zurück
}

Einfaches Projektbeispiel

Anti-Bounce mit Druckknopf und Arduino

Sobald wir das Thema der Verbindungsmöglichkeiten zwischen Drucktaste und Rückprallschutzschaltung kennengelernt haben, sehen wir uns ein praktisches Beispiel dafür an Steuern Sie eine LED mit dem Druckknopf. Das Schema ist ebenso einfach, wie Sie sehen können.

Sobald die Verbindung korrekt hergestellt ist, müssen Sie als Nächstes schreiben der Code in der Arduino IDE um Ihr Panel zu programmieren und mit den Tasten zu experimentieren. Ein einfaches Codebeispiel zur Steuerung unserer Schaltung wäre das Folgende:

// Beispiel einer Skizze zur Steuerung der Schaltfläche
int-Pin = 2;
int state;
pulsierendes int = 0;
void setup ()

{
pinMode (2, INPUT); // Um ​​den Impuls zu lesen, indem dieser Pin eingegeben wird

pinMode (13, OUTPUT); // Für die LED

Serial.begin (9600);
}
void loop ()

{
if (digitalRead (2) == HIGH)

{

Pin = 2;

antiBounce (); // Aufruf der Anti-Bounce-Funktion

}
}
// Software-Anti-Bounce-Funktion
void anti-bounce ()

{
while (digitalRead (Pin) == LOW);
state = digitalRead (13);
digitalWrite (13 ,! state);
while (digitalRead (Pin) == HIGH);

}


5 Kommentare, hinterlasse deine

Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: Miguel Ángel Gatón
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.

  1.   Marcelo Castillo Platzhalterbild sagte

    Cool!!! Vielen Dank, ich habe eine CNC gebaut und paradoxerweise war es für mich am schwierigsten, die Tasten abzustimmen.

  2.   Liliana sagte

    Hallo! Ich berate mich als Neuling im Zusammenhang mit GND… ..der schwarze Draht sollte nicht aus der negativen Leitung herauskommen, die sich über der in Abbildung 2 gezeigten befindet?

  3.   Giovanni sagte

    Hervorragende Erklärung. Vor ein paar Jahren habe ich ein Auto-Zündprojekt durchgeführt und in Wahrheit konnte ich nie einen korrekten Tastendruck ausführen. Für die Zündung. Ich werde diese Methode ausprobieren. Ich danke Ihnen vielmals für diese großartige Hilfe

  4.   Omar Romero Rincon sagte

    Hallo, ich mache ein Projekt mit drei Tasten und 5 LEDs mit folgender Reihenfolge.
    1 Taster sendet ein Signal an 2 LEDs, die ich 1 und 2 genannt habe.
    der zweite Druckknopf sendet ein Signal an 3 LEDs, die als 2,3 und 4 bezeichnet werden.
    Mein dritter Pushbotton sendet ein Signal an weitere 3 LEDs, die 3,4, 5 und XNUMX genannt werden.

    Ich habe es geschafft, diese Sequenz zu machen, ich habe nur ein Problem, wenn ich 2 Tasten drücke, sendet es ein falsches Signal an die LED, die an bleiben sollte, was dazu führt, dass sie intermittierend blinkt, ich habe es gesteuert, indem ich eine Verzögerung eingestellt habe (von 2 Sekunden, das ist was ich brauche damit die LEDs an bleiben und dann wieder ausgehen dann ist meine frage wie kann ich die millis funktion in mein programm einbauen, ich verstehe nicht wie millis funktioniert, ich möchte wissen ob ihr mir weiterhelfen könnt Um ein Beispiel für 3 Tasten mit Millis in jedem von ihnen zu machen, brauche ich Millis, um die Tasten jederzeit drücken zu können, ohne das Arduino zu verzögern.

    1.    Holger sagte

      Hallo Omar,
      Ich empfehle Ihnen, unser Arduino-Tutorial zu sehen:
      https://www.hwlibre.com/programacion-en-arduino/
      Und Sie können auch unseren Artikel zu Millis lesen ():
      https://www.hwlibre.com/millis-arduino/
      Ein Gruß.