1x4 membrane keypad (4 keys) with ESP32
Supply 3.3 V
Bus GPIO
Pins and ESP32 wiring
| Pin | Role | ESP32 pin | Notes |
|---|---|---|---|
| COM | Ground | GND | Common line to GND. On some keypads the common is pin 2: check with a multimeter |
| K1 | Output (the part drives it) | D25 | Key 1: to a GPIO with INPUT_PULLUP, reads LOW when pressed |
| K2 | Output (the part drives it) | D26 | Key 2 |
| K3 | Output (the part drives it) | D27 | Key 3 |
| K4 | Output (the part drives it) | D32 | Key 4 |
Suggested wiring for the 30-pin ESP32 DevKit, avoiding flash, input-only and strapping pins. BoardPilot checks it for you as you wire.
Starter code (Arduino)
void setup() {
Serial.begin(115200);
pinMode(25, INPUT); // K1
}
void loop() {
Serial.println(digitalRead(25));
delay(100);
}
Sources
- Arduino reference, pinMode INPUT_PULLUP
- Common 1x4 membrane keypad, 5-pin ribbon: one common line and one line per key. Pin order varies
Try it in 3D in BoardPilot
Related parts
433 MHz receiver (XY-MK-5V)4x3 membrane keypad (12 keys)4x4 membrane keypad5-way navigation button module74HC165 input shift registerArcade button 30 mm with LED
Part data: CC BY 4.0, free to reuse with credit to BoardPilot.