Conecte el teclado 4x4 a esp8266 I2C

Quiero conectar un teclado 4x4 a nodemcu, pero algunos de los pines de la placa ya están en uso. Para LCD, he usado una mochila I2C y tengo una extra por ahí. ¿Se puede usar para conectar el teclado a la placa nodemcu?

Por lo que he leído, se puede usar un extensor gpio I2C de 8 pines para el teclado. ¿Pero la mochila LCD no es lo mismo que el extensor de 8 pines? (Solo teniendo más número de pines).

Respuestas (2)

El teclado 4 x 4 necesita 8 pines y la mochila I2C que tiene también tiene solo "8 pines de puerto" que puede usar.

Los 8 pines restantes son pines de alimentación, dirección I2C e interrupción.

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

En la imagen, el color naranja va a la matriz del teclado, los violetas son estáticos (alimentación, configuración de dirección), lo conectas una vez y lo dejas y los verdes son las líneas que se conectarán al Nodo MCU.

Como mencionó @Michael, puede usar las mismas líneas I2C para la mochila con teclado y LCD. Solo asegúrese de que las direcciones I2C sean únicas.

A0, A1, A2 se pueden utilizar para cambiar la dirección I2C. Lea la hoja de datos de PCF8574. Pregunte de nuevo si aún no está seguro.

Si por "mochila" el OP se refiere a los módulos comunes disponibles en ebay/aliexpress/etc, generalmente tienen las líneas A0, A1 y A2 conectadas a un conjunto de almohadillas de soldadura justo al lado del conector del bus. Simplemente coloque un poco de soldadura entre uno o más de los pares de pads para cambiar la dirección.

Una mochila I2C para una interfaz LCD típica de tipo de caracteres puede ser un expansor de puerto ancho de 16 bits o un expansor de puerto de 8 bits. Si se utiliza un expansor de 8 bits, la interfaz de bus de datos LCD funciona en el modo de 4 bits en las entradas D4 a D7. Los otros 4 bits de puerto del expansor se utilizan para las líneas de control de la interfaz LCD. Un expansor de 16 bits puede permitir que la interfaz LCD funcione en modo de 8 bits utilizando la interfaz de datos de byte completo. Esto puede conducir a una gran mejora en la velocidad de actualización de LCD.

Para su teclado 4x4 necesitará al menos un expansor de puertos de 8 bits. No debería haber ninguna razón para que pueda agregar el segundo expansor al diseño en el mismo bus I2C que la mochila LCD, siempre y cuando se asegure de que la dirección esclava I2C del dispositivo de mochila y los dispositivos de teclado sean diferentes. La dirección esclava a menudo se selecciona sujetando pines en la parte del expansor de puertos.

Entiendo. La mochila I2C que tengo es un expansor de puerto ancho de 8 bits (PCF8574T). Pero dado que tiene 16 pines y el teclado tiene 8 pines, ¿cómo se deben conectar los pines del teclado a la mochila?
Si la mochila ya está conectada a la pantalla LCD, debe usar un expansor de puerto de 8 bits separado para conectarse al teclado. No recomiendo tratar de compartir las conexiones de la pantalla LCD con el teclado. Puede obtener PCF8574 adicionales premontados en pequeñas placas de conexión de Amazon o eBay por solo un par de dólares estadounidenses.
Tengo una mochila más aparte de la conectada a LCD. Pero incapaz de averiguar cómo deben encajar 8 pines en los 16 pines de la mochila.
@kryptxy: los pines están diseñados para adaptarse a las almohadillas en una placa LCD1602, por lo que no todos se conectan al PCF8574. Algunos de ellos se conectan a la entrada de alimentación, a la resistencia preestablecida que controla el contraste, y algunos no están conectados en absoluto (estas placas usan la conexión HD44780 de 8 bits en modo de 4 bits, por lo que los 4 pines de datos de bajo orden no se usan ). Busque datos en el módulo LCD1602 para encontrar el pinout: habrá conexiones desde el expansor IO a los pines RS, R/W, E, DB4-DB7 y a uno de los dos pines de retroiluminación (este último probablemente pasará por un transistor para que pueda proporcionar suficiente energía).