Tabla de contenido:
2025 Autor: John Day | [email protected]. Última modificación: 2025-01-13 06:57
2 formas de gestionar un teclado de 16 pulsadores con un mínimo de pines.
Paso 1: Introducción
Recientemente trabajé en una forma de administrar una matriz de teclado táctil 4x4 conectada a un clon de Arduino. Los puntos de ajuste fueron:
-para usar solo 4 + 1 pines en lugar de 8 pines en el atmega328p
-para agregar un enlace CHAR de pantalla LCD 4x20 a través de I2C (2 pines)
-Para controlar salidas digitales y analógicas.
Entonces, tener muchas cosas que controlar con una pequeña cantidad de E / S.
Paso 2: Cosas para usar:
Compré una pantalla LCD de 4x20 caracteres y un adaptador de módulo I2C para conectar la pantalla con pines SDA (A4) y SCL (A5) en mi clon de arduino.
Utilizo el famoso y ahora obsoleto MM74C922N: un convertidor de 8 a 4 vías que se adapta al teclado matricial 4x4.
Creé un clon del arduino basado en el atmega328p y lo programé a través de un conector HE10 (bus SPI) y un cable USBasp.
Paso 3: Esquema y tablero:
El tablero está hecho de:
-el teclado LCD solo se usa con Arduino IDE, no es posible con LDmicro (programación de escalera)
-la placa MM74C922N: 16 pulsadores codificados en 16 valores binarios en DCBA de 4 bits. Cuando se presiona un botón: el led azul se enciende y aparece un valor en DCBA (A es el LSB). Cuando se suelta un botón: el led azul se apaga y el valor se pone a cero en DCBA.
-la placa de clonación Arduino atmega238p.
Paso 4: Uso de LDmicro con programación de escalera:
El código para ingresar está compuesto por 4 valores entre 16 valores presionados por teclas, por lo que es una combinación de 16x16x16x16.
Una vez que dibuja el SFC, debe traducirlo a LADDER con el método dado en uno de mis
instructables:
www.instructables.com/id/Arduino-tomation-…
Una vez escrito, compílelo como xxxx.hex y luego descárguelo con el descargador de KHAZAMA.
La pantalla LCD no se puede programar en LDmicro.
Le doy LDmicro zip con el boceto SERRURE.id y el descargador KHAZAMA.
Paso 5: Uso de Arduino IDE 1.8.x con Mightycore y SMlib:
Traduzco el SFC a una máquina de estado. Luego usé Arduino IDE con la biblioteca Mightycore y SM dentro.
Muestro un mensaje como: ERROR, ESPERANDO, DESBLOQUEO, estado alcanzado, valor de la tecla presionada en el display LCD.
Te doy el boceto y la lib SM. Para Mightycore, mira esto:
www.instructables.com/id/Arduino-18x-Clone…
Paso 6: Para concluir:
Estas son dos formas de administrar el teclado 16 y me tomó varias horas encontrar la secuencia correcta, pero ahora funciona bien. Debes respetar estos pasos:
-1 detecta una tecla presionada en un flanco ascendente del pin DA
-2 leer el valor generado en DCBA y compararlo con el bueno
A menos que ciertamente no funcione.
Gracias a todos los interesantes tutoriales en la red.