🔢 Membran Keypad 3x4 Matrix
Et tyndt, selvklæbende tastatur med tallene 0–9 samt * og #. Træk papiret af, klæb det på din 3D-printede kasse, og pludselig har værkstedsdøren en kodelås (og familien en ny kode at glemme).
Knapperne er koblet i en matrix med 4 rækker og 3 kolonner, så 12 taster kun kræver 7 ben på din microcontroller.
⚡ Hurtige specifikationer
| Parameter | Værdi |
|---|---|
| Layout | 3 kolonner x 4 rækker (1–9, *, 0, #) |
| Type | Passivt membran-tastatur (ingen elektronik – kun kontakter) |
| Tilslutning | 7-pin hunstik, 2.54 mm pitch |
| Forsyning | Ingen – virker med både 3.3V og 5V microcontrollere |
| Belastning | Kun til logiksignaler (få mA) – ikke til at skifte strøm direkte |
| Montering | Selvklæbende bagside, fleksibelt fladkabel |
📌 Pinout
Den almindelige rækkefølge, med tastaturet vendt mod dig og kablet nedad, fra venstre mod højre:
| Pin | Navn | Funktion | Forbindes til |
|---|---|---|---|
| 1 | R1 | Række 1 (1, 2, 3) | Digital pin |
| 2 | R2 | Række 2 (4, 5, 6) | Digital pin |
| 3 | R3 | Række 3 (7, 8, 9) | Digital pin |
| 4 | R4 | Række 4 (*, 0, #) | Digital pin |
| 5 | C1 | Kolonne 1 (1, 4, 7, *) | Digital pin |
| 6 | C2 | Kolonne 2 (2, 5, 8, 0) | Digital pin |
| 7 | C3 | Kolonne 3 (3, 6, 9, #) | Digital pin |
🔌 Sådan forbinder du den
| Keypad | Arduino UNO / Nano | ESP32 (DevKit) |
|---|---|---|
| 1 (R1) | D9 | GPIO 13 |
| 2 (R2) | D8 | GPIO 14 |
| 3 (R3) | D7 | GPIO 27 |
| 4 (R4) | D6 | GPIO 26 |
| 5 (C1) | D5 | GPIO 25 |
| 6 (C2) | D4 | GPIO 33 |
| 7 (C3) | D3 | GPIO 32 |
Der skal ingen strøm eller GND til tastaturet – biblioteket scanner selv rækker og kolonner.
💻 Eksempelkode
Installér "Keypad" (af Mark Stanley og Alexander Brevig). Sketchen skriver tasterne i Serial Monitor og tjekker en simpel kode: tast 1234 og afslut med #.
#include <Keypad.h>
const byte RAEKKER = 4;
const byte KOLONNER = 3;
char taster[RAEKKER][KOLONNER] = {
{'1', '2', '3'},
{'4', '5', '6'},
{'7', '8', '9'},
{'*', '0', '#'}
};
byte raekkePins[RAEKKER] = {9, 8, 7, 6}; // R1-R4
byte kolonnePins[KOLONNER] = {5, 4, 3}; // C1-C3
Keypad keypad = Keypad(makeKeymap(taster), raekkePins, kolonnePins, RAEKKER, KOLONNER);
String indtastet = "";
void setup() {
Serial.begin(9600);
Serial.println("Tast koden og afslut med #");
}
void loop() {
char tast = keypad.getKey();
if (!tast) return;
Serial.print(tast);
if (tast == '#') {
Serial.println();
Serial.println(indtastet == "1234" ? "Adgang givet!" : "Forkert kode");
indtastet = "";
} else if (tast == '*') {
indtastet = ""; // * = slet
Serial.println(" (slettet)");
} else {
indtastet += tast;
}
}
💡 KompoNemt-tip fra værkstedet
- Forkerte taster? Kommer der "4" når du trykker "2", er rækker og kolonner byttet. Byt om på de to arrays, eller ret rækkefølgen af pins.
- Brug ikke D0/D1 på UNO – det er serielporten, og så forstyrrer tastaturet både upload og Serial Monitor.
- Fladkablet er sart: Knæk det ikke skarpt ved stikket. Træk det gennem en slids i kassen og aflast det med lidt tape.
- Rigtig dørlås? Gem ikke koden i klar tekst, hvis det betyder noget, og lad Arduinoen styre låsen via et relæ eller en MOSFET – aldrig direkte fra tastaturet.
🔧 Fejlfinding
- Nogle taster virker ikke: En række eller kolonne mangler forbindelse – tjek stikket og pin-nummeret i koden.
- Taster dukker op flere gange: Løs forbindelse. Tryk stikket helt ned eller brug nye jumperledninger.
- Helt forkerte tegn: Pin-rækkefølgen på dit eksemplar afviger – mål efter med multimeter som beskrevet under Pinout.
- Board vises ikke i Arduino IDE? Se vores CH340-driver guide.
Sidder du fast? Skriv til os – vi hjælper gerne.