Asest

Asociación Española de Storytelling
  • Eventos
  • Áreas de especialización
    • Emprendimiento
    • Salud
    • Deporte
    • Nuevas tecnologías
    • Turismo
    • Diseño y moda
  • Comunicación
    • Artículos
    • Prensa
    • Testimonios
  • Story
  • Galería
  • Contacto
  • Acerca de
Inicio
|
Comunicación

Guía Completa sobre Teclados Matriciales en Electrónica

by Admin on 18/05/2026

Los teclados matriciales son componentes esenciales en el ámbito de la electrónica y la informática, diseñados para una interacción eficiente con diversos sistemas digitales y microcontroladores.

¿Qué es un Teclado Matricial?

Un teclado matricial es un dispositivo que agrupa varios pulsadores y permite controlarlos empleando un número de conductores inferior al que necesitaríamos al usarlos de forma individual.

Estos dispositivos agrupan los pulsadores en filas y columnas formando una matriz, disposición que da lugar a su nombre.

Es frecuente una disposición rectangular pura de NxM columnas, aunque otras disposiciones son igualmente posibles.

Podemos emplear estos teclados como un controlador para un autómata o un procesador como Arduino.

Los teclados matriciales son frecuentes en electrónica e informática. De hecho, los teclados de ordenador normales son teclados matriciales, siendo un buen ejemplo de teclado matricial con disposición no rectangular.

Aplicaciones Comunes

Podemos emplear teclados matriciales en nuestros proyectos de electrónica y robótica, por ejemplo, para cambiar el modo de funcionamiento de un montaje, para solicitar un password, como teclas de dirección para controlar un brazo robótico o un vehículo, o proporcionar instrucciones a un robot.

Ventajas y Desventajas

Para detectar NxM pulsadores necesitamos sólo N+M conductores, lo que representa un ahorro significativo en el cableado.

El ahorro de conductores es superior cuanto más grandes sean N y M, y más parecidos entre sí. Por ejemplo, 16 pulsadores en una configuración 2x8 necesitan 10 conductores, mientras que en una 4x4 solo requieren 8 conductores.

En consecuencia, los teclados de 1xM, Nx1 y 2x2 no suponen ningún ahorro en conductores, aunque, independientemente, pueden resultar de utilidad únicamente por agrupar en un mismo dispositivo la disposición que se desea.

Una de las desventajas de usar un teclado matricial es que pueden causar problemas cuando se pulsa más de una tecla simultáneamente.

Este es uno de los motivos por el que los teclados de ordenador usan una disposición no rectangular, agrupando ciertas teclas en circuitos diferentes (Ctrl, Alt, Shift…), para evitar conflictos.

Como hemos comentado, la mayor desventaja de la disposición matricial es que pueden dar problemas al detectar la pulsación de múltiples teclas de forma simultánea.

Tipos y Disponibilidad Comercial

En el mercado podemos encontrar teclados matriciales de diferentes tamaños, como el teclado matricial 4×4, 3×3, 4×3, entre otros.

En el campo de la electrónica casera y Arduino, se venden múltiples modelos de teclados matriciales en distintos soportes (rígidos o flexibles) y con distinto número de teclas, siendo habituales configuraciones de 3x3, 3x4, y 4x4.

Un teclado de membrana matricial para Arduino es un dispositivo que se utiliza para la entrada de datos en proyectos de electrónica y robótica basados en placas de desarrollo Arduino.

Este tipo de teclado consiste en una lámina delgada de material flexible con una serie de botones o "teclas" impresos en su superficie.

El Teclado Matricial ZRX-543 es un periférico de entrada confiable para la captura de números y comandos en proyectos electrónicos.

Imagen: Ejemplo de un teclado matricial de membrana flexible, ideal para proyectos compactos.

Costo

Los teclados matriciales son dispositivos baratos. Podemos encontrar teclados matriciales de 3x4 y 4x4 pulsadores por 0,45€ en vendedores internacionales de AliExpress o eBay.

¿Cómo Funciona un Teclado Matricial?

Como hemos dicho, un teclado matricial agrupa los pulsadores en filas y columnas formando una matriz, lo que permite emplear un número menor de conductores para determinar las pulsaciones de las teclas.

Internamente, la disposición de los pulsadores es muy similar a la disposición que vimos al tratar sobre displays LED matriciales.

Para detectar la pulsación de una tecla actuaremos de forma similar a la lectura simple de un pulsador.

En resumen, ponemos a tierra un extremo del pulsador, y el otro lo conectamos a una entrada digital con una resistencia de pull-up.

El Proceso de Escaneo (Barrido)

La siguiente imagen muestra, a modo de ejemplo, una disposición rectangular de 4x4, aunque el funcionamiento es análogo en otras disposiciones.

Para leer todas las teclas tendremos que hacer un barrido por filas.

En primer lugar ponemos todas las filas a 5V, y definimos todas las columnas como entradas con resistencia de pull-up.

Progresivamente ponemos una fila a 0V, y leemos las entradas de la columna.

Una vez realizada la lectura volvemos a ponerla a 5V, pasamos a la siguiente fila, y volvemos a realizar el progreso hasta recorrer todas las filas.

El papel de filas y columnas en la explicación es intercambiable, pudiendo realizar un barrido por las columnas, y lectura en las filas.

Al detectar la pulsación en la columna X y la fila Y, sabremos que se ha pulsado la tecla (X,Y).

Imagen: Esquema básico del funcionamiento de un teclado matricial, mostrando la intersección de filas y columnas.

Dicho de otra forma, estamos haciendo un "escaneado" del teclado columna a columna.

Una vez obtenido un valor, hay que asignarlo a la tecla correspondiente pulsada.

Cuando se pulsa un botón del teclado, lo que se hace en realidad es unir dos cables, funcionando como un interruptor entre ellos. Localizando este interruptor, se sabrá el botón pulsado.

Decodificación Avanzada

Para decodificar un teclado matricial, el método convencional es realizar un barrido de las columnas del teclado por medio de la rotación de ‘0’ lógico a una frecuencia adecuada que depende de qué tan ‘sensible’ se necesite la operación del teclado, utilizando para esto una combinación de contador y decodificador.

Las filas del teclado son conectadas a un codificador que tiene sus entradas a VCC por medio de resistencias de pull up; de esta manera se asegura un ‘1’ lógico en cada una de las entradas.

Esta práctica tiene como objetivo entender las conexiones internas del teclado matricial para poder interpretar las pulsaciones como datos lógicos, para realizar un decodificador a binario, es decir, al oprimir cualquier tecla obtendremos su salida en binario.

Cabe recordar que para este diseño se usa la implementación de un arreglo de flip flops tipo D para almacenar el dato de la tecla decodificada.

Por medio del LUT se realiza la conversión, además de ser su tabla de verdad; como parte del laboratorio también se procedió a hacer el conversor por medio de compuertas lógicas.

Práctica 4.3 Uso de un teclado matricial 4x4 con LCD I2C y arduino

Conexión y Programación con Arduino

El esquema de conexión de un teclado matricial es sencillo.

Simplemente conectamos todos los pines a entradas digitales de Arduino.

Para utilizar un teclado de membrana matricial con un Arduino, generalmente se conecta a través de pines digitales.

Cada fila y cada columna del teclado están conectadas a pines específicos del Arduino.

Por ejemplo, en el caso de un teclado de 4x4, el esquema de conexión visualizado desde Arduino quedaría de la siguiente forma:

Imagen: Conexión de un teclado matricial 4x4 a los pines digitales de una placa Arduino.

Programación sin Librerías

En el primer ejemplo, realizaremos la lectura sin emplear ninguna librería, implementando el proceso de barrido manualmente.

Para ello, se realiza un bucle poniendo a LOW secuencialmente las distintas filas, y realizando la lectura por columnas.

Si se detecta la pulsación de una tecla, el valor se muestra por el puerto serie.

Este código se imprimirá en el monitor serie Arduino qué tecla se presionó.

Programación con Librerías (Keypad Library)

Existen varias librerías diseñadas para facilitar la lectura de teclados matriciales en Arduino, simplificando considerablemente el código necesario.

Por ejemplo, la librería Keypad es una opción popular y está disponible para su descarga.

Puede utilizar la biblioteca de teclado para que su teclado sea más fácil de leer y gestionar.

La librería proporciona ejemplos de código, que resulta aconsejable revisar para comprender su funcionamiento.

Ejemplo de Código: Caja Fuerte con Teclado Matricial y Servo

El siguiente ejemplo es una modificación a partir de los disponibles en la librería Keypad, mostrando cómo controlar un servo para una caja fuerte.

#include <Keypad.h> // Incluimos la librería Keypad.#include <Servo.h> // Incluimos la librería Servo.const byte FILAS = 4; // Número de filas del keypad.const byte COLUMNAS = 4; // Número de columnas del keypad./* Mediante un array de 2 dimensiones definimos los símbolos que corresponden a cada posición de las teclas. */char teclado[FILAS][COLUMNAS] = { {'1','2','3','A'}, {'4','5','6','B'}, {'7','8','9','C'}, {'*','0','#','D'}};byte pinFilas[FILAS] = {9, 8, 7, 6}; // Array de una dimensión para definir los pines en los que estan conectadas las filas.byte pinColumnas[COLUMNAS] = {5, 4, 3, 2}; // Array de una dimensión para definir los pines en los que estan conectadas las columnas./* A continuación creamos una instancia de tipo Keypad que llamamos keypad1 y le asignamos las teclas del array teclado. Le indicamos que hemos conectado las FILAS del keypad a los números de los pines que hemos indicado en el array pinFilas y las COLUMNAS del keypad a los números de los pines que hemos indicado en el array pinColumnas. */Keypad keypad1 = Keypad( makeKeymap(teclado), pinFilas, pinColumnas, FILAS, COLUMNAS );// Creamos el servomotor con el nombre servo1.Servo servo1;// Variable para guardar la posición del servo.int posicion = 0;void setup() { // Asignamos el pin 10 al servomotor. servo1.attach(10); // Posicionamos el servo al conectar la placa a su posición 0 (puerta cerrada). servo1.write(0);}void loop() { // Leemos la tecla pulsada de keypad. char key = keypad1.getKey(); if (key == '1'){ // Si pulsamos la tecla '1', buscamos la confirmación A. do{ key = keypad1.getKey(); } while(key != 'A'); // Si la posición es 0 (puerta cerrada) entonces abrimos la puerta. // ... (El resto del código para controlar el servo y la lógica de la caja fuerte) }}

Todo el código de esta entrada está disponible para su descarga en Github.

Teclados Matriciales y Pantallas Táctiles

Todo esto que acabamos de explicar puede ser la base de una pantalla táctil.

El principio de funcionamiento es el mismo. Lo que cambia es la construcción física del dispositivo.

Esa capa de film tiene un pequeñísimo agujero justo en cada una de las intersecciones de los cables.

En reposo no se tocan (siempre que el film sea suficientemente grueso y el agujero pequeño).

tags: #teclado #matriz #comercial #electronica #informacion

Publicaciones populares:

  • Empresa e iniciativa emprendedora
  • Ejemplos de Ambush Marketing
  • Descubre los códigos CNAE e IAE para la venta de cigarrillos electrónicos
  • Ideas de negocio con tejidos
  • Emprendedor vs. Emprendimiento
Asest © 2025. Privacy Policy