3x4 Matrix Array 12 Key Membrane Switch Keypad Keyboard Control Panel Microprocessor Keyboard

https://hifisac.com/web/image/product.template/1566/image_1920?unique=621f8cd
(0 review)
SKU: KEY-3X4

S/ 3.00 3.0 PEN S/ 3.00 VAT Included

S/ 3.00 VAT Included

Not Available For Sale

    This combination does not exist.

    Sin existencias.
    Correo electrónico inválido
    Te avisaremos cuando el producto vuelva a estar disponible.
    Agregado a su lista de deseos

    Términos y Condiciones
    Sobre Garantía y Devoluciones

    ¿Qué es un teclado matricial 3×4?

    Un teclado matricial 3×4 es un dispositivo de entrada compuesto por 12 teclas organizadas en 3 columnas y 4 filas. Se utiliza ampliamente en proyectos con Arduino, ESP32, Raspberry Pi y otros sistemas embebidos. Su diseño matricial permite reducir el número de pines necesarios a solo 7.

    Cómo funciona internamente

    El teclado está formado por una matriz de interruptores. Cada tecla conecta una fila con una columna cuando se presiona. No contiene electrónica activa; solo contactos momentáneos.

    Distribución típica de teclas:

    Fila/Columna C1 C2 C3
    R1 1 2 3
    R2 4 5 6
    R3 7 8 9
    R4 * 0 #

    Distribución del conector de 2.54 mm

    Los teclados de membrana 3×4 suelen traer un conector de 7 pines con paso de 2.54 mm.

    La distribución más común es:

    1. R1
    2. R2
    3. R3
    4. R4
    5. C1
    6. C2
    7. C3

    Puede variar según el fabricante, pero esta es la más usada en módulos comerciales.

    Materiales de construcción

    Los teclados matriciales de membrana están hechos de:

    • Capa frontal de PET (polietileno tereftalato), flexible y resistente.
    • Pistas internas de tinta conductiva (carbono o plata).
    • Capa adhesiva posterior para montaje.
    • En modelos rígidos, las teclas suelen ser de plástico ABS.

    Uso con Arduino

    Para usarlo con Arduino se conectan las 4 filas y 3 columnas a pines digitales. Arduino escanea las líneas para detectar qué tecla se presiona.

    La librería más utilizada es Keypad.h, que facilita:

    • Definir la matriz de teclas.
    • Leer teclas presionadas.
    • Manejar rebotes.

    Uso en otras plataformas

    • ESP32 / ESP8266: Compatible con la misma librería Keypad.
    • Raspberry Pi: Se usa mediante GPIO y librerías como pad4pi en Python.
    • Microcontroladores PIC, AVR, STM32: Se implementa un escaneo por software.

    Aquí tienes un programa completo para Arduino que:

    1. Lee un teclado matricial 3×4
    2. Va almacenando los números presionados en una variable tipo String
    3. Los muestra en un LCD I2C en tiempo real

    Todo está listo para copiar y pegar.

    Código Arduino: Teclado 3×4 + LCD I2C

    #include <Keypad.h>
    #include <Wire.h>
    #include <LiquidCrystal_I2C.h>
    
    // Configuración del LCD I2C (dirección típica 0x27)
    LiquidCrystal_I2C lcd(0x27, 16, 2);
    
    // Definición del teclado 3x4
    const byte FILAS = 4;
    const byte COLUMNAS = 3;
    
    char teclas[FILAS][COLUMNAS] = {
      {'1','2','3'},
      {'4','5','6'},
      {'7','8','9'},
      {'*','0','#'}
    };
    
    byte pinesFilas[FILAS] = {9, 8, 7, 6};     // Ajusta según tu conexión
    byte pinesColumnas[COLUMNAS] = {5, 4, 3}; // Ajusta según tu conexión
    
    Keypad teclado = Keypad(makeKeymap(teclas), pinesFilas, pinesColumnas, FILAS, COLUMNAS);
    
    // Variable donde se guardan los números
    String bufferNumeros = "";
    
    void setup() {
      lcd.init();
      lcd.backlight();
      lcd.clear();
      lcd.setCursor(0,0);
      lcd.print("Teclado 3x4");
      lcd.setCursor(0,1);
      lcd.print("Listo...");
      delay(1500);
      lcd.clear();
    }
    
    void loop() {
      char tecla = teclado.getKey();
    
      if (tecla) {
        // Si la tecla es un número, lo agregamos al buffer
        if (isDigit(tecla)) {
          bufferNumeros += tecla;
        }
    
        // Si se presiona #, se limpia la variable
        if (tecla == '#') {
          bufferNumeros = "";
        }
    
        // Mostrar en LCD
        lcd.clear();
        lcd.setCursor(0,0);
        lcd.print("Entrada:");
        lcd.setCursor(0,1);
        lcd.print(bufferNumeros);
      }
    }
    

    Cómo funciona

    • Cada vez que presionas un número, se agrega a la variable bufferNumeros.
    • El LCD muestra el contenido actualizado.
    • Si presionas #, se borra todo.
    • El * no hace nada en este ejemplo, pero puedes asignarle funciones.