Tabla de contenido:
- Paso 1: Descripción de las piezas - Módulo de protección del teclado LCD
- Paso 2: Descripción de las piezas - Módulo serie I2C
- Paso 3: Conexiones
- Paso 4: Hacer que la tecla RST se pueda utilizar de forma similar a las otras 5 teclas
- Paso 5: software
- Paso 6: revisión y discusión
Video: Módulo de protección de teclado LCD 1602 con mochila I2C: 6 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:42
Como parte de un proyecto más grande, quería tener una pantalla LCD y un teclado para navegar por algunos menús sencillos. Usaré muchos de los puertos de E / S en el Arduino para otros trabajos, así que quería una interfaz I2C para la pantalla LCD. Así que compré algo de hardware, que consiste en un módulo protector de teclado LCD 1602 de DFRobot y un módulo serial I2C anónimo para LCD. Quiero usarlos con un Arduino Nano. Luego descubrí que existen algunos desafíos para hacer que estos componentes funcionen juntos, pero es posible. Así que quiero compartir mi experiencia y quizás ayudar a otros.
Esta foto es de la placa de pruebas en funcionamiento, que puede mostrar mensajes en la pantalla LCD e identificar las pulsaciones de teclas. La pantalla LCD se controla a través de la interfaz I2C, incluida la luz de fondo de la pantalla LCD. Las pulsaciones de teclas son recibidas por Arduino en el pin A0 (puede ser cualquiera de los pines analógicos, excepto A4 y A5 que están vinculados a la interfaz I2C).
Paso 1: Descripción de las piezas - Módulo de protección del teclado LCD
El módulo de protección del teclado LCD consiste en un LCD 1602 de uso común montado en la parte superior de una placa de circuito que contiene las teclas y que toma un subconjunto de las conexiones de la pantalla LCD y las pone a disposición de los pines del cabezal en la parte inferior de la placa de circuito. Entiendo que esta placa está diseñada para montarse en la parte superior de un Arduino Uno o similar y proporciona el diseño de pines correcto para que funcione en ese entorno. Compré este módulo en Ebay a un proveedor en China. Los pines del cabezal en el lado inferior (teclado) de la placa están en su mayoría etiquetados, pero los pines en el lado superior, que es la interfaz LCD, no están etiquetados. Sin embargo, los pines de la pantalla LCD están etiquetados.
Paso 2: Descripción de las piezas - Módulo serie I2C
El módulo en serie tiene el encabezado habitual de 4 pines para I2C y un conjunto de pines de encabezado sin etiquetar que, según tengo entendido, están destinados a conectarse directamente a la parte inferior del módulo LCD. Al estudiar las etiquetas en la pantalla LCD, pude identificar las funciones de los pines en el módulo serial.
Este módulo se basa en el IC PCF8574T que termina el protocolo I2C, tiene 3 pines para control de dirección (20 a 27) y tiene 8 pines de entrada / salida digital P0 a P7. De acuerdo con la hoja de datos del PCF8574T, cada pin de E / S tiene un FET para tirar de él a tierra para el estado BAJO, y puede hundirse al menos 20ma. En el estado Alto, tiene un pull-up activo transitorio y luego una corriente de pull-up continua de aproximadamente 0,1 mA.
En este módulo, todos los pines de E / S digitales, excepto el P3, simplemente se llevan a los pines del cabezal (a la derecha en la foto). En el caso de P3, está conectado a la base de un transistor (visible en la foto en el área superior derecha justo debajo de la etiqueta "LED"). El emisor de ese transistor está conectado a Vss (tierra) y el colector está conectado al pin 16 del encabezado, donde se puede usar para controlar la luz de fondo de la pantalla LCD. Debido al transistor, el estado lógico se invierte en relación con el supuesto en la biblioteca de software. Es decir, la luz de fondo de la pantalla LCD se enciende cuando el pin P3 es bajo y se apaga cuando el pin P3 es alto.
La etiqueta del transistor dice L6, que según mi investigación probablemente lo convierte en un MMBC1623L6 que tiene una ganancia de corriente mínima de 200. Con 0.1 mA de corriente base, debería poder mantener una condición BAJA en su colector (módulo Pin 16) con una corriente de colector de al menos 20 mA.
Además este módulo tiene un potenciómetro de 10K conectado entre +5 y Tierra, cuyo cable variable sale al pin 3 (tercero desde abajo en la foto). Cuando se conecta directamente a la pantalla LCD, este potenciómetro controlará el contraste de la pantalla LCD. Sin embargo, esa función es proporcionada por un potenciómetro similar separado en el protector LCD, por lo que este potenciómetro en el módulo serial no tiene ninguna función.
No pude encontrar ninguna conexión con el pin INT del PCF8574T.
ACTUALIZACIÓN 22 de agosto de 2019
Como se mencionó anteriormente, el PCF8574 tiene 3 pines de control de dirección. Estos parecen aparecer en las almohadillas del tablero de la mochila donde están etiquetados como A0, A1 y A2. Se pueden ver en la foto. No he probado esto, pero parece casi seguro que al conectar uno o más de estos pines a los pads adyacentes, la dirección I2C se puede controlar en el rango de 20 a 27. Además, hay un segundo dispositivo casi idéntico, el PCF8574A que tiene una funcionalidad idéntica a la PCF8574 pero cubre el rango de direcciones de 0x38 a 0x3F.
La dirección que realmente usa su dispositivo se puede verificar con un I2CScanner. Hay varios escáneres I2C simples disponibles de varias fuentes. Este en https://github.com/farmerkeith/I2CScanner también identifica algunos de los dispositivos encontrados.
Paso 3: Conexiones
Gracias a ChaitanyaM17 que proporcionó el diagrama de Fritzing que muestra las conexiones, que se describen a continuación.
Poder:
El módulo LCD tiene un pin en la parte inferior con la etiqueta "5.0V". A la derecha, junto a eso, hay dos pines sin etiquetar que están conectados a tierra.
Sosteniendo el módulo serial con la interfaz I2C en el extremo izquierdo, hay 16 pines en el borde inferior. El primero de ellos es tierra y el segundo es + 5v. Otra opción es usar los dos pines inferiores en la interfaz I2C para la alimentación, pero me pareció más conveniente usar los pines como se describe arriba.
Interfaz I2C. En el módulo serial, el pin superior es SCL (reloj) y va al Arduino A5. El segundo pin abajo es SDA (datos) y va al Arduino A4.
Interfaz de impresión LCD. Hay 6 conexiones entre el módulo serial y el blindaje del teclado LCD, todas entre pines sin etiquetas. Los identificaré en el módulo LCD contando de derecha a izquierda, con el primer pin como 1. Hay 2 bloques de 8, por lo que van del 1 al 16. Los identifico en el módulo serie I2C contando de izquierda a Bien, también hay 16 de estos. Además le doy a cada cable una etiqueta, que es el pin equivalente en el Arduino que normalmente está asociado con esa función, en el caso de una conexión directa sin el módulo serial.
Entonces las 6 conexiones de datos son:
Equivalente de Arduino // Pin del módulo serial // Pin del módulo del teclado LCD
D4 // 11 // 5 D5 // 12 // 6 D6 // 13 // 7 D7 // 14 // 8 D8 // 4 // 9D9 // 6 // 10
Control de luz de fondo de la pantalla LCD: utiliza una conexión más:
Equivalente de Arduino // Pin del módulo serial // Pin del módulo del teclado LCD
D10 // 16 // 11
Interfaz del teclado: utiliza un solo cable desde el pin del módulo LCD en el lado inferior etiquetado "A0", al pin A0 en el Arduino. ¡Al menos eso fue bastante fácil!
Paso 4: Hacer que la tecla RST se pueda utilizar de forma similar a las otras 5 teclas
El RST se puede conectar directamente a la entrada RESTART del Arduino Nano.
Sin embargo, si desea que la tecla RST se pueda utilizar en el software para otras cosas, puede hacerlo conectando una resistencia de 15K entre el pin RST y el pin A0 en el lado inferior del protector del teclado LCD.
Esto funciona de la siguiente manera: Hay una resistencia de 2K entre + 5V y la tecla Derecha. Luego, una cadena de resistencias progresivamente más grandes para cada una de las otras teclas (330R a la tecla ARRIBA, 620R a la tecla ABAJO, 1K a la tecla IZQUIERDA y 3K3 a la tecla SELECT. Todas las teclas (incluida la tecla RST) se conectan a Cuando se conectan a un convertidor A / D de 10 bits (como para Arduino Nano A0), entregan aproximadamente los siguientes valores:
Derecha = 0; Arriba = 100; Abajo = 260; Izquierda = 410; Seleccionar = 640.
Con la resistencia de 15 k a RST, entrega alrededor de 850.
El software usará valores alrededor de los puntos medios entre estos valores para decidir qué tecla se ha presionado.
Paso 5: software
El software útil es, por supuesto, un ejercicio para el lector. Sin embargo, para comenzar, puede echar un vistazo a mi software de prueba. Usé la biblioteca NewLiquidCrystal, que contiene soporte para la interfaz I2C. Todo simplemente funcionó, una vez que tenga las bibliotecas instaladas correctamente.
El punto principal fue invertir la polaridad de los comandos de apagado y encendido de la luz de fondo (debido al transistor en el módulo I2C, como se explica en la sección Descripción de piezas).
ACTUALIZACIÓN 22 de agosto de 2019
Si tiene problemas con la pantalla LCD que no funciona, verifique la dirección I2C de su mochila serial usando un escáner I2C. Se adjunta un escáner adecuado. Luego, si es necesario, ajuste el primer parámetro en la declaración.
LiquidCrystal_I2C lcd (0x27, 2, 1, 0, 4, 5, 6, 7);
Paso 6: revisión y discusión
Como puede ver, tengo las funciones principales funcionando.
Mi próxima intención es poner esto en una caja de proyecto como parte de otro proyecto. Sin embargo, tras emprender este camino me enteré de que existe otra dificultad que no me había anticipado.
La dificultad es que este módulo de teclado LCD no está configurado para instalarse en una caja. Cualquier tipo de caja. Los botones de las 6 teclas están muy por debajo del nivel de la pantalla LCD, de modo que si el módulo está montado en una caja (por ejemplo, en la tapa) con la parte superior de la placa de circuito LCD al ras con la parte inferior de la tapa, la parte superior de las teclas están a unos 7 mm por debajo de la parte superior de la tapa.
Las posibles soluciones son:
a) Aguantarlo. Taladre agujeros de acceso en la tapa y use una herramienta (por ejemplo, una aguja de tejer cortada de diámetro adecuado) para presionar los botones.
b) Retire la pantalla LCD de la placa de circuito del módulo y realice una operación en el teclado para que los dos componentes se puedan fijar a la tapa de la caja del proyecto de forma independiente (creo que todavía puede haber un problema con los botones demasiado cortos)
c) quite los botones existentes y reemplácelos con botones más altos. Los nuevos botones deben tener unos 13 mm de altura para que se puedan operar a través de la tapa de la caja del proyecto). Los interruptores de botón de repuesto están disponibles en una variedad de alturas, incluido 13 mm.
d) deseche el módulo de protección del teclado LCD y utilice unidades de teclado y LCD separadas (es decir, comience de nuevo). Hay una amplia gama de unidades de teclado disponibles, sin embargo, no he visto ninguna con el mismo diseño de 6 teclas que en este módulo (es decir, Seleccionar, Izquierda, Arriba, Abajo, Derecha, Reiniciar). Puede que no sea un gran problema, pero una de las razones por las que comencé con este módulo fue que pensé que este diseño de teclas era lo que quería.
Estoy planeando ir con la solución c) anterior y ver cómo voy.
Otro fragmento de información que puede resultar de interés:
Con la luz de fondo encendida, el consumo actual de este proyecto es: Arduino Nano 21.5 ma; Módulo serial 3.6 ma; Módulo LCD 27,5 mA; Total 52 mA.
Con la retroiluminación apagada, el consumo actual de este proyecto es: Arduino Nano 21.5 ma; Módulo de serie 4.6 ma; Módulo LCD 9,8 mA; Total 36 mA.
Recomendado:
Calculadora Arduino DIY con 1602 LCD y teclado 4x4: 4 pasos
Calculadora de bricolaje Arduino usando 1602 LCD y teclado 4x4: Hola chicos, en este instructables haremos una calculadora usando Arduino que puede hacer cálculos básicos. Básicamente, tomaremos la entrada del teclado 4x4 e imprimiremos los datos en una pantalla lcd de 16x2 y arduino hará los cálculos
Pantalla LCD I2C / IIC - Use una pantalla LCD SPI para la pantalla LCD I2C usando el módulo SPI a IIC con Arduino: 5 pasos
Pantalla LCD I2C / IIC | Use una pantalla LCD SPI para la pantalla LCD I2C usando el módulo SPI a IIC con Arduino: Hola a todos, ya que una pantalla LCD SPI 1602 normal tiene demasiados cables para conectar, por lo que es muy difícil conectarlo con arduino, pero hay un módulo disponible en el mercado que puede Convierta la pantalla SPI en la pantalla IIC, por lo que solo necesita conectar 4 cables
Uso del protector de teclado LCD 1602 con Arduino [+ proyectos prácticos]: 7 pasos
Usando 1602 LCD Keypad Shield W / Arduino [+ Proyectos prácticos]: Puede leer este y otros increíbles tutoriales en el sitio web oficial de ElectroPeak. Cómo configurar el escudo e identificar las llaves Ho
Configuración del módulo DS1302 RTC con teclado + Arduino + LCD: 3 pasos
Configuración del módulo DS1302 RTC con teclado + Arduino + LCD: Hola, acabo de hacer este pequeño proyecto, espero que les guste, ya que el título dice que se trata de cómo usar un teclado para configurar el DS1302, es uno de los proyectos básicos que puede agréguelo a su propio proyecto si desea agregar otros módulos o funciones … Es v
Mochila LCD en red con Smartie LCD: 6 pasos
Mochila LCD en red con Smartie LCD: Las pantallas LCD de caracteres que desplazan la información son un mod de estuche popular. Por lo general, se controlan a través de un puerto paralelo, una mochila de puerto serie o una mochila USB (más). Este Instructable demuestra nuestra mochila LCD de red ethernet de código abierto. LC