Teclado matricial 4×4 en ESP32
En este tutorial vamos a ingresar datos desde un teclado matricial 4×4 en ESP32, pero primero analicemos que es un teclado matricial 4×4:
¿Que es un teclado matricial 4×4?
Un teclado matricial 4×4 es un dispositivo que contiene un conjunto de botones (pulsadores) ocultos en una membrana de plástico que permite ser presionados.
Un teclado matricial 4 x 4 internamente contiene un grupo de 4 filas y 4 columnas que se conectan internamente como se muestra en esta imagen:
Requerimientos:
- ESP32.
- Teclado matricial 4×4.
- Cables.
Conexiones:
Teclado | ESP32 |
C4 | D15 |
C3 | D2 |
C2 | D4 |
C1 | D16 |
R4 | D17 |
R3 | D5 |
R2 | D18 |
R1 | D19 |
Código:
// importa libreria Keypad #include <Keypad.h> // define numero de filas const uint8_t ROWS = 4; // define numero de columnas const uint8_t COLS = 4; // define la distribucion de teclas char keys[ROWS][COLS] = { { '1', '2', '3', 'A' }, { '4', '5', '6', 'B' }, { '7', '8', '9', 'C' }, { '*', '0', '#', 'D' } }; // pines correspondientes a las filas uint8_t colPins[COLS] = { 16, 4, 2, 15 }; // pines correspondientes a las columnas uint8_t rowPins[ROWS] = { 19, 18, 5, 17 }; // crea objeto con los prametros creados previamente Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS); void setup() { Serial.begin(115200); } void loop() { // obtiene tecla presionada y asigna a variable char key = keypad.getKey(); // comprueba que se haya presionado una tecla if (key) { // envia a monitor serial la tecla presionada Serial.println(key); } }
Código y diagrama: https://wokwi.com/projects/343680359630635604
Librerías del teclado: https://github.com/Chris–A/Keypad
🎦 Este curso: https://www.youtube.com/watch?v=VuJkqL2Ys3Y&list=PLCTD_CpMeEKTvjzabAvLGHakg-ql6t0q6&ab_channel=ProgramadorNovato
🎦 Curso de Arduino: https://www.youtube.com/watch?v=oGinJt9aALc&list=PLCTD_CpMeEKSqw3Nh7rA9aXUAzbPIPkdv&ab_channel=ProgramadorNovato
🎦 [CURSO] C++ DE 0 A HEROE: https://www.youtube.com/watch?v=APN8aCyPvww&list=PLCTD_CpMeEKTofxs7iottRxJ5YPM7BOcc
Ave que vuela, a la cazuela.