🍪 Privacy & Transparency

We and our partners use cookies to Store and/or access information on a device. We and our partners use data for Personalised ads and content, ad and content measurement, audience insights and product development. An example of data being processed may be a unique identifier stored in a cookie. Some of our partners may process your data as a part of their legitimate business interest without asking for consent. To view the purposes they believe they have legitimate interest for, or to object to this data processing use the vendor list link below. The consent submitted will only be used for data processing originating from this website. If you would like to change your settings or withdraw consent at any time, the link to do so is in our privacy policy accessible from our home page..

Vendor List | Privacy Policy
Skip to content

Technik Blog

Programmieren | Arduino | ESP32 | MicroPython | Python | Raspberry PI

Menu
  • Projekte
    • LED’s
    • Servo & Schrittmotoren
    • Sound
    • LCD’s
    • Kommunikation
    • Sicherheit
    • Weekend Project
  • Arduino
    • Tutorials
    • ProMini
      • Anschließen & Programmieren
    • Nano
      • Arduino Nano – Übersicht
    • UNO
      • Übersicht
    • MEGA 2560
      • Übersicht
    • Leonardo
      • Übersicht
    • NodeMCU
      • NodeMCU – “Einer für (fast) Alles!”
    • Lilypad
      • Arduino: Lilypad “Jetzt Geht’s Rund!”
    • WEMOS
      • WEMOS D1 – Arduino UNO kompatibles Board mit ESP8266 Chip
      • WEMOS D1 Mini – Übersicht
      • Wemos D1 mini Shields
    • STM32x
      • STM32F103C8T6 – Übersicht
    • Maker UNO
      • Maker UNO – Überblick und Test
    • ATTiny85
      • Mini Arduino mit ATTiny85 Chip
      • ATtiny85 mit dem Arduino UNO beschreiben
  • Android
  • Über mich
  • DeutschDeutsch
  • EnglishEnglish
Menu

Arduino Mega R3 2560 – 3×4 Keypad

Veröffentlicht am 31. Januar 20201. Mai 2023 von Stefan Draeger

Über Instagram wurde ich nach einer kleinen Lösung zu einem Problem mit dem 3×4 Keypad und einem Arduino Mega R3 2560 gefragt. 

Wemos Mega, WiFi R3 ATmega2560, ESP8266

Den Mikrocontroller Arduino Mega R3 2560 habe ich im gleichnamigen Beitrag Arduino MEGA 2560 R3 – Übersicht vorgestellt. Für die 3×4 Matrix Tastatur habe ich den Beitrag Arduino Lektion 64: 3×4 Matrix Tastatur erstellt und auch dort ausführlich erläutert. In diesem Beitrag möchte ich speziell auf ein kleines, spezielles Projekt eingehen.

  • Ziel
  • benötigte Bauteile
  • Aufbau & Schaltung
  • Programmieren
  • Video

Ziel

Es sollen spezielle Aktionen ausgeführt werden, wenn 2 bestimmte Tasten hintereinander betätigt werden.

benötigte Bauteile

Für dieses Projekt benötigst du:

  • 1x Arduino Mega R3 2560,
  • 1x USB Kabel, USB-Typ A – B
  • 1x 3×4 Matrix Tastatur,
  • 7x Breadboardkabel, männlich – männlich, 20cm

Aufbau & Schaltung

Das 3×4 Matrix Keypad verfügt über einen 8 poligen Buchsenanschluss, welcher mit dem Arduino Mega wie folgt angeschlossen wird:

Arduino Mega R3 2560 mit 3x4 Matrix Tastatur
Arduino Mega R3 2560 mit 3×4 Matrix Tastatur

Programmieren

#include <Keypad.h> //Bibliothek zum auslesen der Matrix Tastatur

//Definieren der Zeilen und Spalten.
//Wenn eine größere Tastatur verwendet wird,
//muss das hierdefiniert werden.
const byte COLS = 3;
const byte ROWS = 4;

//Definieren der Pins, über welche die Matrix Tastatur
//mit dem Microcontroller verbunden wurde.
const byte COL_PINS[COLS] = { 2, 3, 4 };
const byte ROW_PINS[ROWS] = { 5, 6, 7, 8 };

//Aufbau der Tastatur als mehrdimensionales Array abbilden.
//Es ist darauf zu achten das die Tastatur verkehrtherum abgebildet ist.
//Wenn eine 4x4 Tastatur verwendet wird muss hier jeweils
//die Buchstaben 'A' bis 'D' ergänzt werden.
const char KEYS[ROWS][COLS] = {
  {'#', '0', '*'},
  {'9', '8', '7'},
  {'6', '5', '4'},
  {'3', '2', '1'}
};

//Initialisieren des KeyPad Objektes
Keypad myKeypad = Keypad(makeKeymap(KEYS), ROW_PINS, COL_PINS, ROWS, COLS);

unsigned int index = 1;

char key1, key2;

void setup() {
  //Begin der seriellen Kommunikation mit 9600 baud.
  Serial.begin(9600);
}

void loop() {
  //lesen ob eine Taste gedrückt wurde
  char key = myKeypad.getKey();
  //Wenn eine Taste gedrückt wurde,
  //dann den Wert auf der seriellen Konsole
  //Ausgeben.
  if (key) {
    Serial.print("Die Taste ");
    Serial.print(key);
    Serial.println(" wurde gedrueckt");

    switch (index) {
      case 1: key1 = key; break;
      case 2: key2 = key; break;
    }
    //den index um 1 erhöhen
    index++;

    //Wenn der Index gleich 3 ist dann..
    if (index == 3) {
      //zurücksetzen des Indexes auf den Wert 1
      index = 1;

      //Wenn als erstes die Taste 1 gedrückt wurde UND
      //als zweites die Taste 2 dann...
      if (key1 == '1' && key2 == '2') {
        Serial.println("key1 = 1 && key2 = 2");
      }
      //Wenn als erstes die Taste * gedrückt wurde UND
      //als zweites die Taste 1 dann...
      else if (key1 == '*' && key2 == '1') {
        Serial.println("key1 = * && key2 = 1");
      }
      //Nicht die Tasten 1 & 2 bzw. * & 1 gedrückt wurden dann...
      else {
        Serial.println("Drücken Sie die Tasten 1 & 2 oder * & 1 nacheinander.");
      }
    }
  }


}

Video

Schreibe einen Kommentar Antworten abbrechen

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

Kategorien

Tools

  • 8×8 LED Matrix Tool
  • 8×16 LED Matrix Modul von Keyestudio
  • 16×16 LED Matrix – Generator
  • Widerstandsrechner
  • Rechner für Strom & Widerstände
  • ASCII Tabelle

Meta

  • Videothek
  • Impressum
  • Datenschutzerklärung
  • Disclaimer
  • Kontakt
  • Cookie-Richtlinie (EU)

Links

Blogverzeichnis Bloggerei.de Blogverzeichnis TopBlogs.de das Original - Blogverzeichnis | Blog Top Liste Blogverzeichnis trusted-blogs.com
©2023 Technik Blog | Built using WordPress and Responsive Blogily theme by Superb
x
x