Tastenfeld

Überblick

In dieser Lektion lernen Sie, wie man ein Tastenfeld verwendet. Tastenfelder können in verschiedene Arten von Geräten eingesetzt werden, einschließlich Mobiltelefone, Faxgeräte, Mikrowellenherde und so weiter. Sie werden häufig für Benutzereingaben verwendet.

Benötigte Komponenten

Für dieses Projekt benötigen wir die folgenden Komponenten.

Es ist definitiv praktisch, ein ganzes Set zu kaufen, hier ist der Link:

Name

ARTIKEL IN DIESEM KIT

LINK

Elite Explorer Kit

300+

Elite Explorer Kit

Sie können sie auch einzeln über die untenstehenden Links kaufen.

KOMPONENTENBESCHREIBUNG

KAUF-LINK

Arduino Uno R4 WiFi

-

Jumperkabel

BUY

Tastenfeld

BUY

Verdrahtung

../_images/21-keypad_bb.png

Schaltplan

../_images/21_keypad_schematic.png

Code

Bemerkung

  • Sie können die Datei 21-keypad.ino direkt im Pfad elite-explorer-kit-main\basic_project\21-keypad öffnen.

  • Um die Bibliothek zu installieren, verwenden Sie den Arduino Library Manager und suchen nach „Adafruit Keypad“ und installieren es.

Nachdem die Codes auf das UNO-Board hochgeladen wurden, können Sie auf dem seriellen Monitor den Wert der aktuell auf dem Tastenfeld gedrückten Taste sehen.

Code-Analyse

  1. Einbinden der Bibliothek

    Wir beginnen mit dem Einbinden der Adafruit_Keypad Bibliothek, die es uns ermöglicht, einfach mit dem Tastenfeld zu interagieren.

    #include "Adafruit_Keypad.h"
    

    Bemerkung

    • Um die Bibliothek zu installieren, verwenden Sie den Arduino Library Manager und suchen nach „Adafruit Keypad“ und installieren es.

  2. Konfiguration des Tastenfelds

    const byte ROWS = 4;
    const byte COLS = 4;
    char keys[ROWS][COLS] = {
      { '1', '2', '3', 'A' },
      { '4', '5', '6', 'B' },
      { '7', '8', '9', 'C' },
      { '*', '0', '#', 'D' }
    };
    byte rowPins[ROWS] = { 2, 3, 4, 5 };
    byte colPins[COLS] = { 8, 9, 10, 11 };
    
    • Die Konstanten ROWS und COLS definieren die Abmessungen des Tastenfelds.

    • keys ist ein 2D-Array, das die Beschriftung jeder Taste auf dem Tastenfeld speichert.

    • rowPins und colPins sind Arrays, die die mit den Reihen und Spalten des Tastenfelds verbundenen Arduino-Pins speichern.


  3. Initialisierung des Tastenfelds

    Erstellen Sie eine Instanz von Adafruit_Keypad namens myKeypad und initialisieren Sie diese.

    Adafruit_Keypad myKeypad = Adafruit_Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
    
  4. setup()-Funktion

    Initialisieren Sie die serielle Kommunikation und das benutzerdefinierte Tastenfeld.

    void setup() {
      Serial.begin(9600);
      myKeypad.begin();
    }
    
  5. Hauptloop

    Überprüfen Sie auf Tastenereignisse und zeigen Sie diese im seriellen Monitor an.

    void loop() {
      myKeypad.tick();
      while (myKeypad.available()) {
        keypadEvent e = myKeypad.read();
        Serial.print((char)e.bit.KEY);
        if (e.bit.EVENT == KEY_JUST_PRESSED) Serial.println(" pressed");
        else if (e.bit.EVENT == KEY_JUST_RELEASED) Serial.println(" released");
      }
      delay(10);
    }