¡Oferta!

Teclado matricial 4×4 pushbutton (ref: 0127)

1,50 

Hay existencias

Cantidad Descuento
1 - 5 -
6 - 10 5%
11 - 15 10%
16 + 15%
SKU: 0127 Categoría: Etiquetas: , , ,

Descripción

Este teclado matricial de 16 teclas (4×4) está pensado para interfaces usuario-máquina sencillas, por ejemplo una aplicación de contraseña con pocos dígitos. Las teclas de este pulsador son los típicos pulsadores «pushbutton», lo que le da un aire DIY muy atractivo. Además, es fácil imprimir en 3D un frontal personalizado para el teclado.

El uso del teclado es muy sencillo: conecta la masa, activa los pull-ups de las entradas de Arduino y haz que tu código compruebe de manera continua el estado de las otras conexiones (o usa una interrupción). Cuando una de esas entradas marque un ‘0’, se detectará la pulsación de esa tecla. En este teclado es posible también detectar varias pulsaciones simultáneas.

  • Tipo: matricial
  • Conector: paso 2.54mm sobre PCB.

Código de ejemplo:

/* EJEMPLO Teclado 4x4
* Código proporcionado bajo licencia CC-BY
* Puedes distribuir, mezclar, adapatar y hacer tuyo este código.
* Sólo te pedimos que hagas referencia a nosotros como fuente original de la información.
* 
* Si tienes dudas sobre el uso de este ejemplo no dudes en contactarnos, estamos para echarte una mano.
* ----------------------------------
* www.electronperdido.com
* contacto@electronperdido.com
* ----------------------------------
*/

// Indicamos en qué pines hemos conectado las "filas" y "columnas" del teclado
// Esta manera de introducir valores se llama "vector"
const byte filas[4] = { 11, 10, 9, 8 };
const byte columnas[4] = { 5, 4, 3, 2 };

// Creamos una "matriz" que es un mapa de nuestras teclas
char teclas[4][4] = {
{ '1','2','3', 'A' },
{ '4','5','6', 'B' },
{ '7','8','9', 'C' },
{ '*','0','#', 'D' }
};

// El código dentro de SETUP se ejecuta una única vez, al inicio del programa
void setup (){
Serial.begin(9600); // Inicializa el puerto serie a 9600bps (para comunicar con el PC)

// Para que el tecldo funcione correctamente es necesario configurar las entradas como "alta impedancia"
// Lo hacemos con un bucle "for" para inicializar todas las entradas de manera compacta
for (byte i = 0; i < 4; i++)
{ pinMode(columnas[i], INPUT);
digitalWrite(columnas[i], HIGH); }

// Las filas deben configurarse como entrada con "pull-up", en este caso activamos el pull-up interno
for (byte i = 0; i < 4; i++)
{ pinMode(filas[i], INPUT_PULLUP); }

}

// El código dentro de LOOP se ejecuta de manera repetida hasta el fin de los tiempos...
void loop () {
int pulsada = 0, fila, columna; //Variables de pulsación detectada

for (byte i = 0; i < 4; i++) //Barrido de columnas
{ // Poner columna a '0' (configurándola momentáneamente como salida)
pinMode(columnas[i],OUTPUT);
digitalWrite(columnas[i], LOW);

// Revisar todas las filas comprobando teclas pulsadas
for (byte j = 0; j < 4; j++)
{ if (digitalRead(filas[j]) == LOW) {
// Tecla pulsada en fila 'i' y columna 'j'
fila = j; columna = i; pulsada = 1; 
} 
}
// Volver a alta impedancia
digitalWrite(columnas[i], HIGH);
pinMode(columnas[i], INPUT);
}

if (pulsada){ //Muestra por pantalla la tecla pulsada
Serial.println(teclas[fila][columna]);//Busca 'fila' y 'columna' en la matriz y lo envía a través del puerto serie
pulsada = 0; // Resetea el 'flag' de pulsación detectada
delay(400); // Espera, para no mostrar muchas veces la misma tecla pulsada
}

}

Valoraciones

No hay valoraciones aún.

Solo los usuarios registrados que hayan comprado este producto pueden hacer una valoración.

También te recomendamos…