Quellcode in C für eine Matrixtastatur 3x4 Tasten?

Antwort

Hier ist ein einfacher Quellcode in C für eine 3x4-Matrix-Tastatur. Dieser Code geht davon aus, dass du eine Mikrocontroller-Plattform wie Arduino verwendest, um die Tasten zu scannen. ```c #include <stdio.h> #include <wiringPi.h> #define ROWS 3 #define COLS 4 int rowPins[ROWS] = {0, 1, 2}; // GPIO-Pins für die Zeilen int colPins[COLS] = {3, 4, 5, 6}; // GPIO-Pins für die Spalten char keys[ROWS][COLS] = { {'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'} }; void setup() { wiringPiSetup(); // Initialisiere WiringPi // Setze Zeilen als Ausgänge und Spalten als Eingänge for (int i = 0; i < ROWS; i++) { pinMode(rowPins[i], OUTPUT); digitalWrite(rowPins[i], HIGH); // Setze Zeilen auf HIGH } for (int i = 0; i < COLS; i++) { pinMode(colPins[i], INPUT); pullUpDnControl(colPins[i], PUD_UP); // Aktiviere Pull-Up-Widerstand } } char getKey() { for (int i = 0; i < ROWS; i++) { digitalWrite(rowPins[i], LOW); // Aktiviere die aktuelle Zeile for (int j = 0; j < COLS; j++) { if (digitalRead(colPins[j]) == LOW) { // Wenn Taste gedrückt while (digitalRead(colPins[j]) == LOW); // Warte, bis Taste losgelassen wird digitalWrite(rowPins[i], HIGH); // Setze Zeile zurück return keys[i][j]; // Gebe den Wert der Taste zurück } } digitalWrite(rowPins[i], HIGH); // Setze Zeile zurück } return '\0'; // Keine Taste gedrückt } int main() { setup(); char key; while (1) { key = getKey(); if (key != '\0') { printf("Taste gedrückt: %c\n", key); } } return 0; } ``` Dieser Code initialisiert die Pins für die Zeilen und Spalten der Matrix-Tastatur, scannt die Tasten und gibt die gedrückte Taste auf der Konsole aus. Stelle sicher, dass du die richtigen GPIO-Pins für deine Hardware verwendest.

Kategorie: Programmierung Tags: C Matrix Tastatur
Frage stellen und sofort Antwort erhalten

Verwandte Fragen

Welchen KeyCode-Namen hat in VB.NET 2003 die Taste mit '°'/'^'?

In VB.NET 2003 (bzw. im .NET Framework allgemein) werden Tastenereignisse wie `KeyDown` oder `KeyUp` über das `KeyEventArgs`-Objekt behandelt, das die Eigenschaft `KeyCode` bereitstellt. Die Tast... [mehr]

Kann man bei der Programmierung die Escape-Taste mit einer anderen Taste kombinieren?

Ja, es ist möglich, die Escape-Taste mit einer anderen Taste zu kombinieren, allerdings hängt das Vorgehen stark von der jeweiligen Programmiersprache, dem Betriebssystem und dem Kontext ab... [mehr]

Wie kann ich in einem struct auf eine Zahl zugreifen, zum Beispiel auf struct.li[0][0]?

In der von dir angegebenen Struktur handelt es sich um ein zweidimensionales Array in einer Programmiersprache wie C oder C++. Um auf eine Zahl in diesem Array zuzugreifen, kannst du den Index verwend... [mehr]

Wie füge ich einen 3D-Eigenvektor in die erste Spalte einer Eigen-Matrix(3, p) in C++ ein?

Um in eine Eigen-Matrix in C++ eine Spalte einzufügen, kannst du die Methode `col()` verwenden, um auf die gewünschte Spalte zuzugreifen, und dann die Werte des 3D-Vektors zuweisen. Hier ist... [mehr]

In z/OS C einen String in Großbuchstaben umwandeln?

In z/OS C, you can convert a string to uppercase using the `toupper` function from the C standard library. Here’s a simple example of how to do this: ```c #include <stdio.h> #include <... [mehr]