Suchcode

Arduino-Code und Video für ein Vier-Tasten-Keypad

Arduino-Code und Video für ein Vier-Tasten-Keypad

In diesem Tutorial lernen wir, wie man ein 4-Tastenfeld mit einem Arduino verwendet. Dieses Projekt ist besonders nützlich für Anwendungen, bei denen mehrere Tasten benötigt werden, aber man die Anzahl der verwendeten Drähte minimieren möchte. Durch das spezifische Anschließen des Tastenfelds können wir einen funktionierenden Aufbau mit nur 5 Drähten statt 8 erreichen.

4 key flixable keypad

Das Tastenfeld mit vier Tasten vereinfacht die Verkabelung, da es einen gemeinsamen Anschluss besitzt, der die insgesamt benötigte Anzahl an Drähten reduziert. Jede Taste ist über zugewiesene Pins mit dem Arduino verbunden, was eine einfache Interaktion und Steuerung ermöglicht. Diese Anleitung behandelt die Verkabelung, den Code und das erwartete Verhalten des Tastenfelds, damit Sie das Projekt erfolgreich nachbauen können (im Video bei 02:30).

Hardware erklärt

Die Hauptkomponenten dieses Projekts sind ein Tastenfeld mit vier Tasten und ein Arduino-Board. Das Tastenfeld enthält vier Tasten, und jede Taste ist über zwei Drähte mit dem Arduino verbunden – eine gemeinsame Leitung und eine eigene Leitung pro Taste. Diese Anordnung ermöglicht unkomplizierte Verbindungen und minimiert zugleich Kabelsalat.

Der Arduino interpretiert die Tastendrücke über digitale Eingänge und nutzt dabei interne Pull-up-Widerstände, um stabile Messwerte zu gewährleisten. Wenn ein Taster gedrückt wird, verbindet er den entsprechenden Pin mit Masse, sodass der Arduino die Zustandsänderung erkennen kann.

Details zum Datenblatt

HerstellerGenerisch
Teilenummer4-Tasten-Tastatur
Logik-/I/O‑Spannung5 V
Versorgungsspannung5 V
Anzahl der Tasten4
Gängiger Pin-Typaktiv bei niedrigem Pegel
Tastenwiderstand1 kΩ (typ.)
Paketflexible Leiterplatte
Notizen / VariantenIn mehreren Layouts erhältlich

  • Jeder Taster benötigt zwei Anschlüsse: einen für das Signal des Tasters und einen für die gemeinsame Masse.
  • Die Verwendung interner Pull-up-Widerstände vereinfacht die Verdrahtung und reduziert die Anzahl der Bauteile.
  • Stellen Sie sicher, dass der gemeinsame Pin zur korrekten Funktion mit Masse verbunden ist.
  • Tastendrücke in der Software entprellen, um fehlerhafte Messwerte zu vermeiden.
  • Teste die Funktionalität der Taste mit einer einfachen seriellen Ausgabe als Rückmeldung.

Verdrahtungsanleitung

Arduino wiring for 4 key keypad
Arduino wiring for 4 key keypad

Um das Vier-Tasten-Keypad an den Arduino anzuschließen, führen Sie die folgenden Schritte aus:

  • Verbinden Sie den ersten Key-Draht mit dem Pin.2auf dem Arduino.
  • Schließen Sie die zweite Key-Leitung an den Pin an3.
  • Verbinden Sie den dritten Draht der Taste mit dem Pin4.
  • Schließen Sie den vierten Tastendraht an den Pin an.5.
  • Verbinde den gemeinsamen Draht des Tastenfelds mit dem GND-Pin des Arduino.

Stellen Sie sicher, dass jede Leitung sicher angeschlossen ist, um lockere Verbindungen zu vermeiden. Wenn Sie Probleme haben, überprüfen Sie jede Verbindung anhand der im Video gezeigten Pinbelegungen (bei 04:15).

Codebeispiele und Schritt-für-Schritt-Anleitung

Der folgende Codeausschnitt initialisiert die Pins für das Tastenfeld und setzt sie als Eingänge:

#define key1 2 //connect wire 1 to pin 2
#define key2 3 //connect wire 2 to pin 3
#define key3 4 //connect wire 3 to pin 4
#define key4 5 //connect wire 4 to pin 5

void setup() {
 Serial.begin(9600);
 pinMode(key1, INPUT_PULLUP); // set pin as input
 pinMode(key2, INPUT_PULLUP); // set pin as input
 pinMode(key3, INPUT_PULLUP); // set pin as input
 pinMode(key4, INPUT_PULLUP); // set pin as input   
}

Im obigen Code ist jede Taste mit einer entsprechenden Pin-Nummer definiert. DieINPUT_PULLUPDer Modus stellt sicher, dass die Pins beim Nichtdrücken als HIGH gelesen werden, wodurch die Erkennung von Tastendrücken vereinfacht wird.

Die loop-Funktion liest den Zustand jeder Taste und gibt die entsprechende Meldung aus, wenn sie gedrückt wird:

void loop() {
  int key1S = digitalRead(key1); // read if key1 is pressed
  int key2S = digitalRead(key2); // read if key2 is pressed
  int key3S = digitalRead(key3); // read if key3 is pressed
  int key4S = digitalRead(key4); // read if key4 is pressed 

  if(!key1S) {
    Serial.println("key 1 is pressed");
  }
  if(!key2S) {
    Serial.println("key 2 is pressed");
  }
  // Additional code for key3 and key4...
  delay(100);
}

Dieser Codeabschnitt überprüft den Zustand jeder Taste und gibt eine Meldung auf dem seriellen Monitor aus, wenn eine Taste gedrückt wird. Derdelay(100)ermöglicht einen Entprell-Effekt, sodass mehrere Betätigungen nicht in schneller Folge registriert werden.

Demonstration / Was Sie erwartet

Nachdem Sie die Verkabelung vorgenommen und den Code erfolgreich auf Ihren Arduino hochgeladen haben, sollte der serielle Monitor Meldungen anzeigen, die angeben, welche Taste gedrückt wird. Beim Drücken der Taste 1 wird "key 1 is pressed" ausgegeben, und ebenso bei den anderen Tasten. Wenn die Meldungen nicht erscheinen, überprüfen Sie Ihre Verkabelung und stellen Sie sicher, dass der gemeinsame Draht mit Masse verbunden ist.

Achten Sie auf vertauschte Anschlüsse, da dies zu unerwartetem Verhalten führen kann. Stellen Sie sicher, dass die verwendeten Pins mit denen übereinstimmen, die in Ihrem Code definiert sind (im Video bei 06:45).

Video-Zeitstempel

  • 00:00- Einleitung
  • 02:30- Erläuterung der Verdrahtung
  • 04:15- Pinbelegungen
  • 06:45- Test des Tastenfelds

Bilder

4 key flixable keypad
4 key flixable keypad
Arduino wiring for 4 key keypad
Arduino wiring for 4 key keypad
50-Arduino Code for 4 key keypad
Sprache: C++
++
/*
 * This is the Arduino code for a 4-key keypad.
 * Watch the video for details and demo: https://youtu.be/BiOh_Z2N7kk
 * 
 * Written by Ahmad Shamshiri for the Robojax Video channel,
get code, wiring diagram and resources at  www.Robojax.com/RJT37
 * Date: December 28, 2017, in Ajax, Ontario, Canada
 * Permission granted to share this code, given that this
 * note is kept with the code.
 * Disclaimer: This code is "AS IS" and for educational purposes only.
 * This code has been downloaded from https://robojax.com
// Recorded December 28, 2017 for Robojax.com

#define key1 2 //connect wire 1 to pin 2
#define key2 3 //connect wire 2 to pin 3
#define key3 4 //connect wire 3 to pin 4
#define key4 5 //connect wire 4 to pin 5

void setup() {
 Serial.begin(9600);
 pinMode(key1, INPUT_PULLUP);// set pin as input
 pinMode(key2, INPUT_PULLUP);// set pin as input
 pinMode(key3, INPUT_PULLUP);// set pin as input
 pinMode(key4, INPUT_PULLUP);// set pin as input   
}

void loop() {
  int key1S = digitalRead(key1);// read if key1 is pressed
  int key2S = digitalRead(key2);// read if key2 is pressed
  int key3S = digitalRead(key3);// read if key3 is pressed
  int key4S = digitalRead(key4);// read if key4 is pressed 
 // Code written for Robojax.com video tutorial
     if(!key1S){
      Serial.println("key 1 is pressed");
     }
     if(!key2S){
      Serial.println("key 2 is pressed");
     }
     if(!key3S){
      Serial.println("key 3 is pressed");
     }
     if(!key4S){
      Serial.println("key 4 is pressed");
     }          
     delay(100);
}

Dinge, die Sie vielleicht brauchen

Ressourcen & Referenzen

Noch keine Ressourcen vorhanden.

Dateien📁

Arduino-Bibliotheken (zip)