Tabla de contenido:

Uso de un teclado 4x4 con CircuitPython: 4 pasos
Uso de un teclado 4x4 con CircuitPython: 4 pasos

Video: Uso de un teclado 4x4 con CircuitPython: 4 pasos

Video: Uso de un teclado 4x4 con CircuitPython: 4 pasos
Video: Teclado Macro con 5 pulsadores y Raspberry Pi Pico con Circuitpython. Para Premiere, Discord, OBS 2024, Noviembre
Anonim
Usando un teclado 4x4 con CircuitPython
Usando un teclado 4x4 con CircuitPython

Este teclado económico ofrece un método simple de entrada numérica para sus proyectos de CircuitPython. Lo voy a usar con un Adafruit ItsyBitsy M0 express.

Necesitará:

  • Teclado - el mío es 4x4
  • Placa ItsyBitsy M0 Express o similar
  • Mu Editor instalado en su computadora
  • Cable USB para flashear el código

Paso 1: Cómo funciona el teclado

Cómo funciona el teclado
Cómo funciona el teclado

El Teclado tiene 16 interruptores de burbuja simples y de acción lenta dispuestos en una cuadrícula de 4 con 8 conexiones en la parte inferior. Si numeramos desde la izquierda de 0 a 7, las conexiones 0 a 3 están conectadas a cada una de las filas. Conexión 0 a la fila superior y conexión 3 a la fila inferior. Las conexiones 4 a 7 están conectadas a las columnas con la conexión 4 en la columna de la izquierda y la conexión 7 a la columna de la derecha. Cada uno de los 16 conmutadores hace una unión entre una combinación de fila / columna diferente. Si presionamos la tecla 7 se une la tercera fila a la columna de la izquierda. Podemos sentir si la tecla 5 está presionada si su fila se eleva a ALTO y podemos leer un ALTO en su columna. Para hacer esto SALIDA a las filas y ENTRADA de las columnas.

Necesitamos establecer cada fila en ALTO a su vez, mientras que las otras filas son BAJAS, lea cada columna a su vez hasta que obtengamos una entrada ALTA. Esto se gestiona fácilmente con bucles for anidados.

Debemos tener en cuenta el hecho de que estos interruptores de burbuja actúan bastante lentamente y es necesario presionarlos con fuerza para cerrarlos. El escaneo de los 16 interruptores de esta manera se puede hacer muy rápidamente, pero tenemos que escanear repetidamente para detectar una pulsación de tecla. También necesitamos 'antirrebote' con un breve retraso de tiempo para que no obtengamos teclas que se repitan cada vez que presionamos.

Como los interruptores son bastante `` blandos '', necesitamos algunos comentarios al usuario para indicar que se ha leído una pulsación de tecla. El LED incorporado parpadea cada vez que se detecta una pulsación de tecla.

Paso 2: Conexiones físicas

Conexiones físicas
Conexiones físicas

Conexiones de izquierda a derecha en el teclado 0 1 2 3 4 5 6 7

D7 D9 D10 D11 A5 A4 A3 A2 en ItsyBitsy

D7 a D11 se configuran como SALIDAS, mientras que A5 a A2 se configuran como ENTRADAS con PULLDOWN.

El código tiene muchos comentarios y debería ser bastante fácil de seguir.

Paso 3: Cómo funciona Getkey ()

Cómo funciona Getkey ()
Cómo funciona Getkey ()

Esta función escanea el teclado en busca de una sola pulsación de tecla. Comprueba rápidamente cada una de las llaves por turno un máximo de 10 veces para ver si un interruptor de llave está cerrado. Si se presiona una tecla, devuelve el valor de la tecla, contando de izquierda a derecha de arriba a abajo (0… 15) Tenga en cuenta los valores de la fila inferior: 14, 0, 15, 13 (Hex E, 0, F, D). Si no se presionó ninguna tecla, devuelve -999 como un código de error que se puede recoger fácilmente en el programa principal. El LED integrado parpadea si se detecta una pulsación de tecla como respuesta del usuario. Esto se ejecuta bastante rápido y la espera de rebote de 0.2 segundos solo se usa cuando se presiona una tecla.

Paso 4: obtener valor (dígitos)

Getvalue (dígitos)
Getvalue (dígitos)

Esta rutina proporciona un valor de n dígitos de las teclas numéricas. Ignora las teclas rojas.

Este código de Python se puede convertir fácilmente para ejecutarse en otro dispositivo, como una Raspberry Pi, probablemente solo necesite cambiar las líneas de configuración de pines en la parte superior del script.

Por favor, avíseme si encuentra útil el código.

¡Mantente seguro y diviértete!

Recomendado: