Ich habe einen 8-poligen 4x4-Keyapd und möchte ihn an meinen Mikrocontroller anschließen. Ich habe im Internet gesucht, aber ich kann seine Pin-Konfiguration nicht sehen. Ich habe ein Problem beim Anschließen, deshalb kann mir jemand helfen. Ich habe hier ein Bild der Tastatur und Pin-Beschreibung meines Controllers.
Hier ist eine entsprechende Anleitung
Keypad Pin Connects to Arduino Pin...
1 D9
2 D8
3 D7
4 D6
5 D5
6 D4
7 D3
8 D2
/*4x4 Matrix Keypad connected to Arduino
This code prints the key pressed on the keypad to the serial port*/
#include <Keypad.h>
const byte numRows= 4; //number of rows on the keypad
const byte numCols= 4; //number of columns on the keypad
//keymap defines the key pressed according to the row and columns just as appears on the keypad
char keymap[numRows][numCols]=
{
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};
//Code that shows the the keypad connections to the arduino terminals
byte rowPins[numRows] = {9,8,7,6}; //Rows 0 to 3
byte colPins[numCols]= {5,4,3,2}; //Columns 0 to 3
//initializes an instance of the Keypad class
Keypad myKeypad= Keypad(makeKeymap(keymap), rowPins, colPins, numRows, numCols);
void setup()
{
Serial.begin(9600);
}
//If key is pressed, this key is stored in 'keypressed' variable
//If key is not equal to 'NO_KEY', then this key is printed out
//if count=17, then count is reset back to 0 (this means no key is pressed during the whole keypad scan process
void loop()
{
char keypressed = myKeypad.getKey();
if (keypressed != NO_KEY)
{
Serial.print(keypressed);
}
}
keypressed
-Variable enthält den gelesenen Wert als Zeichen, nachdem Sie überprüft haben, ob eine Schaltfläche gedrückt wurde ( if (keypressed != NO_KEY)
), können Sie den Wert verwenden, wann immer Sie wollen, aber wenn Sie eine Ganzzahl benötigen, müssen Sie sie konvertieren. Damit die Zeichen "0"-"9" in Ganzzahlen umgewandelt werden können, müssen Sie nur dezimal 48 subtrahieren (das ist 0x30 als Hex)keypressed
Variable befindet sich bereits im Arduino-Speicher, Sie müssen sie nirgendwohin senden, verarbeiten Sie sie einfach so, wie Sie es je nach Ihrer Aufgabe beabsichtigen.keypressed
gleich 'A' (das ist if(keypressed == 0x41
) oder die Alternative if(keypressed == 'A')
)if(keypressed - 48)
eher if(keypressed == 0x41
, weil das die Anzeige "0" zurückgibt.if(keypressed == 0x41
ist dasselbe wie if(keypressed == 'A'
, es wird wahr sein, wenn die gedrückte Taste gleich dem Zeichenwert 'A' ist. Der -48-Trick hat nur Sinn, wenn die Zeichen '0'..'9' in Ganzzahlen 0..9 umgewandelt werden sollenDas Herausfinden der Matrixverdrahtung der 4x4-Tastatur ist mit einem Ohmmeter kinderleicht. Schließen Sie die Messleitungen an ausgewählte Leiterpaare im Anschlusskabel an. Drücken Sie dann nacheinander die Tasten, um zu sehen, welcher Schalter die Verbindung zwischen den ausgewählten Leitern schließt. Wenn Sie die Verbindungsnummern als 1 bis 8 aufschreiben und dann eine Tabelle der ausgewählten Paare der Reihe nach erstellen und welcher Schalter jedes Paar schließt. Bei einigen Paaren werden keine Schließungen registriert. In diesem Fall wissen Sie, dass es sich bei dem ausgewählten Paar von Verbindungsdrähten entweder um Zeilendrähte in der Schaltmatrix oder um Spaltendrähte handelt.
Ich habe über das Internet gesucht, aber ich kann die Pin-Konfiguration nicht sehen.
Ich nehme an, ich sehe einen 8-Draht-Schwanz.
Vielleicht 9. Nur vielleicht 7.
Die Tastatur hat wahrscheinlich die Anschlüsse als 4 Zeilen und 4 Spalten herausgebracht. Wenn es einen 9. Draht gibt, kann es eine Abschirmung sein.
Verwenden Sie ein Ohmmeter-Set, um so etwas wie einen Bereich von 100k (oder 199,9k oder was auch immer) zu sagen. Dadurch können Sie sehr hochohmige Kontakte nicht verpassen. Eine Reichweite von 20.000 KÖNNTE OK sein, aber 200.000 ist sicherer.
Kontakt mit dem leitfähigen Ende des Endes mit Messsonden herstellen. Versuchen Sie, 2 Sonden am selben Ende anzubringen und stellen Sie sicher, dass Sie leicht sehen können, wie das Messgerät reagiert – die meisten Enden sind bis kurz vor dem Ende isoliert und einige können auf den leitfähigen Oberflächen oxidiert sein und müssen VORSICHTIG mit der Sondenspitze des Messgeräts gerieben werden, um Kontakt herzustellen. Schwänze können durch Aufbringen von leitfähiger Tinte hergestellt werden, sind also normalerweise nicht sehr stark, also gehen Sie beim Herstellen des Kontakts mit angemessener Sorgfalt vor. Sie sind normalerweise nicht besonders empfindlich - seien Sie einfach vernünftig.
Wenn Sie einen Anschluss für die Tastatur haben, verwenden Sie ihn. Ich gehe von 8 Leitern aus, die unten von 1 bis 8 nummeriert sind. Passen Sie nach Bedarf an.
Einen Assistenten zu haben ist nicht unbedingt erforderlich, aber hilfreich.
Halten Sie eine Taste gedrückt und platzieren Sie eine Sonde auf Kontakt 1 (1. Draht) und gehen Sie mit der Sonde an allen anderen Drähten 2-8 entlang, um zu sehen, ob ein Kontakt gefunden werden kann.
Wenn nicht, platzieren Sie eine Sonde am 2. Draht (Kontakt 2) und gehen Sie entlang 3-8. Dann
3 + 4-8
4 +
5-8 5
+ 6-8 6 + 7-8
7 + 8
Wenn Sie bei IRGENDEINEM der oben genannten Punkte keine Kontaktschließung erhalten, stellen Sie (höchstwahrscheinlich) keinen richtigen Kontakt her oder die Tastatur ist tot (weniger wahrscheinlich).
Notieren Sie das Ergebnis und versuchen Sie es mit einer anderen Taste.
Nach ein paar Versuchen erscheint ein Muster. Wahrscheinlich 4 x Zeile und 4 x Spalte wie oben.
Eine alternative Methode besteht darin, zwei Kontakte für Zählersonden zu wählen und die Tasten der Reihe nach zu drücken, bis eine Schließung erfolgt, z. B. Kontakte auf 2 + 5 KÖNNEN auf Taste 4 reagieren. (2. Reihe, 5-4 = 1 = 1. Spalte), müssen es aber nicht.
Diese Methode MUSS funktionieren, wenn sie richtig durchgeführt wird, wenn die Matrix nur Schalter hat.
EINIGE Tastaturen haben interne Dioden, aber das ist bei Ihrer Tastatur äußerst unwahrscheinlich. Bei Tastaturen mit Dioden ist die Polarität des Messgeräts von Bedeutung.
Kajaks, die Ihrem sehr ähnlich sehen, finden Sie unter:
Hier - siehe unten
Und hier für 6,99 $ - gleiche Anordnung.
Hersteller: Parallax
Produktcode: Dev-4x4Key-01
Vielleicht hier für $ weniger.
Ignacio Vazquez-Abrams
Butzke
NeuInAlles
PeterJ
Codebeat