Tengo keyapd de 8 pines 4x4, y quiero conectarlo a mi microcontrolador, he buscado en la red pero no puedo ver su configuración de pines. Tengo un problema para conectarlo por eso alguien me puede ayudar. Tengo una imagen del teclado y la descripción del pin de mi controlador aquí.
Aquí hay una guía relevante
Keypad Pin Connects to Arduino Pin...
1 D9
2 D8
3 D7
4 D6
5 D5
6 D4
7 D3
8 D2
/*4x4 Matrix Keypad connected to Arduino
This code prints the key pressed on the keypad to the serial port*/
#include <Keypad.h>
const byte numRows= 4; //number of rows on the keypad
const byte numCols= 4; //number of columns on the keypad
//keymap defines the key pressed according to the row and columns just as appears on the keypad
char keymap[numRows][numCols]=
{
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};
//Code that shows the the keypad connections to the arduino terminals
byte rowPins[numRows] = {9,8,7,6}; //Rows 0 to 3
byte colPins[numCols]= {5,4,3,2}; //Columns 0 to 3
//initializes an instance of the Keypad class
Keypad myKeypad= Keypad(makeKeymap(keymap), rowPins, colPins, numRows, numCols);
void setup()
{
Serial.begin(9600);
}
//If key is pressed, this key is stored in 'keypressed' variable
//If key is not equal to 'NO_KEY', then this key is printed out
//if count=17, then count is reset back to 0 (this means no key is pressed during the whole keypad scan process
void loop()
{
char keypressed = myKeypad.getKey();
if (keypressed != NO_KEY)
{
Serial.print(keypressed);
}
}
keypressed
contiene el valor de lectura como un carácter, después de verificar que se ha presionado un botón ( if (keypressed != NO_KEY)
), puede usar el valor cuando lo desee, pero si necesita un número entero, debe convertirlo. Para que los caracteres "0"-"9" se conviertan en números enteros, solo necesita restar el decimal 48 (es decir, 0x30 como hexadecimal)keypressed
variable ya está en la memoria del arduino, no necesitas enviarla a ningún lado, solo procésala de la manera que quieras dependiendo de tu tarea.keypressed
sea igual a 'A' (es decir if(keypressed == 0x41
) o la alternativa if(keypressed == 'A')
)if(keypressed - 48)
más bien if(keypressed == 0x41
porque eso devolverá mostrar "0".if(keypressed == 0x41
es lo mismo que if(keypressed == 'A'
, será cierto cuando la tecla presionada sea igual al valor de carácter 'A'. El truco -48 solo tiene un propósito si la intención es convertir los caracteres '0'..'9' en números enteros 0..9Descubrir el cableado de la matriz del teclado 4x4 es muy simple con un ohmímetro. Conecte los cables del medidor a pares seleccionados de conductores en el cable de conexión. Luego presione los botones uno a la vez para ver qué interruptor cierra la conexión entre los conductores seleccionados. Si escribe los números de conexión del 1 al 8 y luego hace una tabla de los pares seleccionados en secuencia y qué interruptor cierra cada par. Algunos pares no harán que se registre ningún cierre. Cuando esto suceda, sabrá que el par de cables de conexión seleccionados son cables de fila en la matriz de interruptores o cables de columna.
He buscado en la red pero no puedo ver su configuración de pines.
Supongo que estoy viendo una cola de 8 cables.
Tal vez 9. Solo tal vez 7.
Es probable que el teclado tenga las conexiones mostradas en 4 filas y 4 columnas. Si hay un noveno cable, puede ser un blindaje.
Use un medidor de ohmios para decir algo así como un rango de 100k (o 199.9k o lo que sea). Esto le permite no perder contactos de muy alta resistencia. Un rango de 20k PUEDE estar bien, pero 200k es más seguro.
Haga contacto con el extremo conductor de la cola con las sondas del medidor. Intente colocar 2 sondas en la misma cola y asegúrese de que puede ver fácilmente la respuesta del medidor: la mayoría de las colas estarán aisladas hasta cerca del final y algunas pueden oxidarse en las superficies conductoras y necesitan un roce CUIDADOSO con la punta de la sonda del medidor para hacer contacto. Las colas se pueden hacer depositando tinta conductora, por lo que generalmente no serán muy fuertes, así que tenga un cuidado razonable al hacer contacto. Por lo general, no son súper delicados, solo sé sensato.
SI tiene un conector para el teclado, utilícelo. Asumiré 8 conductores numerados del 1 al 8 a continuación. Ajuste según sea necesario.
Tener un asistente no es esencial, pero ayuda.
Mantenga presionada una tecla y coloque una sonda en el contacto 1 (primer cable) y siga todos los demás cables 2-8 con la sonda para ver si se puede encontrar un contacto.
De lo contrario, coloque una sonda en el segundo cable (contacto 2) y continúe con 3-8. Entonces
3 + 4-8
4 + 5-8
5
+ 6-8 6 + 7-8
7 + 8
Si no obtiene un cierre de contacto en CUALQUIERA de los anteriores, entonces no está haciendo el contacto adecuado (lo más probable) o el teclado está inactivo (lo menos probable).
Registre el resultado y pruebe con otra clave.
Después de algunos intentos, aparecerá un patrón. Probablemente 4 x fila y 4 x columna como arriba.
Un método alternativo es elegir dos contactos para las sondas del medidor y presionar las teclas a su vez hasta que ocurra un cierre, por ejemplo, los contactos en 2 + 5 PUEDEN responder a la tecla 4. (2da fila, 5-4 = 1 = 1ra columna) pero puede que no.
Este método DEBE funcionar correctamente si la matriz solo tiene interruptores.
ALGUNOS teclados tienen diodos internos, pero esto es muy poco probable para su teclado. Para teclados con diodos, la polaridad del medidor importa.
Kayboards que se parecen mucho a los suyos se pueden encontrar en:
Aquí - ver abajo
Y aquí por $6.99 - mismo arreglo.
Fabricante: Parallax
Código de producto: Dev-4x4Key-01
Tal vez aquí por $ menos.
Ignacio Vázquez-Abrams
Butzke
NuevoEnTodo
PedroJ
Codebeat