Introducción al módulo adaptador LCD I2C

Introducción al módulo adaptador LCD I2C

En esta publicación vamos a echar un vistazo al módulo adaptador LCD basado en 'I2C' o 'IIC' o 'I cuadrado C', que reducirá las conexiones de cables entre Arduino y la pantalla LCD a solo 2 cables, lo que también ahorrará toneladas de pines GPIO para otros sensores / accionamientos, etc.



Antes de hablar sobre el módulo adaptador LCD I2C, es importante comprender qué es el bus I2C y cómo funciona.

Pero de todos modos no necesitas ser un experto con el protocolo I2C para trabajar con este mencionado adaptador LCD.





Ilustración de la conexión I2C:

Ilustración de la conexión I2C:

El I2C o IIC significa 'Inter-Integrated Circuit' es un bus de computadora en serie inventado por los semiconductores de Philips, hoy conocidos como semiconductores NXP. Este sistema de bus se inventó en 1982.

¿Qué es el autobús?

Bus es un grupo de cables / alambres que transportan datos de un chip a otro chip / de una placa de circuito a otra placa de circuito.



La principal ventaja del protocolo de bus I2C es que el microcontrolador o los sensores o chips compatibles se pueden interconectar con solo dos cables. La ventaja alucinante de este protocolo es que podemos interconectar 127 chips o sensores / controladores diferentes a un dispositivo maestro, que generalmente es un microcontrolador con solo 2 cables.

¿Cuáles son los dos cables I2C?

Los dos cables son SDA y SCL, que son datos en serie y reloj en serie, respectivamente.

El reloj serial o SCL se utiliza para sincronizar la comunicación de datos a través del bus I2C. SDA o Serial Data es la línea de datos en la que los datos reales se transmiten de maestro a esclavo y viceversa. El dispositivo maestro controla el reloj serial y decide con qué dispositivo esclavo necesita comunicarse. Ningún dispositivo esclavo puede iniciar una comunicación primero, solo el dispositivo maestro puede hacerlo.

La línea de datos en serie es bidireccional y robusta, después de que se envía cada conjunto de datos de 8 bits, el dispositivo receptor devuelve un bit de reconocimiento.

¿Qué tan rápido es el protocolo I2C?

La versión original del protocolo I2C desarrollada en 1982 admitía 100 Kbps. La siguiente versión se estandarizó en 1992 y admitió 400 Kbps (modo rápido) y admitió hasta 1008 dispositivos. La siguiente versión fue desarrollada en 1998 con 3.4 Mbps (modo de alta velocidad).

Varias otras versiones de I2C se desarrollaron en los años 2000, 2007, 2012 (con modo ultrarrápido de 5 Mbps) y la versión reciente de I2C se desarrolló en 2014.

¿Por qué resistencias pull-up en el bus I2C?

El SDA y el SCL son de 'drenaje abierto', lo que significa que ambas líneas pueden ir a BAJO pero no pueden conducir las líneas a ALTO, por lo que se conecta una resistencia pull-up en cada una de las líneas.

Pero con la mayoría de los módulos I2C, como LCD o RTC, se han incorporado resistencias pull up, por lo que no es necesario conectar una a menos que se especifique.

Resistencia pull-up / pull-down: La resistencia pull-up es una resistencia conectada a la línea + Ve del suministro para mantener el nivel lógico de una línea en ALTO si la línea no es ni alta ni baja.

Una resistencia pull-down es una resistencia conectada a la línea –Ve del suministro para mantener el nivel lógico de una línea en BAJO si la línea no es alta ni baja.

Esto también evita que el ruido entre en las líneas.

Esperamos haber rayado la superficie del protocolo I2C, si necesita más información sobre el protocolo I2C, navegue en

YouTube y Google.

Ahora echemos un vistazo al módulo LCD I2C:

Disposición de pines del módulo LCD I2C

Hay 16 pines de salida para la pantalla LCD que se pueden soldar directamente a la parte posterior del módulo LCD de 16 X 2.

Los pines de entrada son + 5V, GND, SDA y SCL. Los pines SDA y SCL en Arduino Uno son pines A4 y A5 respectivamente. Para Arduino mega SDA es el pin # 20 y SCL es el pin # 21.

Comparemos cómo se ve cuando conectamos la pantalla LCD a Arduino sin el adaptador I2C y con el adaptador.

Sin adaptador I2C:

Arduino sin adaptador I2C

Con adaptador I2C:

Arduino usando el adaptador I2C

El adaptador está soldado en la parte posterior de la pantalla LCD y, como podemos ver, guardamos un montón de pines GPIO para otras tareas y también podemos continuar agregando 126 dispositivos I2C más a los pines A4 y A5.

Tenga en cuenta que la biblioteca de cristal líquido estándar no funcionará con este adaptador LCD I2C, hay una biblioteca especial para esto, que se tratará pronto y le mostraremos cómo usar este módulo con un ejemplo de codificación.

Cómo conectar el adaptador I2C a una pantalla de 16 x 2

En las secciones anteriores del artículo, aprendimos los conceptos básicos del protocolo I2C y tomamos una descripción general básica del módulo adaptador LCD I2C. En este post vamos a aprender cómo conectar el módulo adaptador LCD I2C a una pantalla LCD de 16 x 2 y veremos cómo se programa con un ejemplo.

La principal ventaja del protocolo I2C es que podemos cablear los sensores / dispositivos de entrada / salida compatibles en solo dos líneas y es útil con Arduino ya que tiene pines GPIO limitados.

Ahora veamos cómo conectar el módulo a la pantalla LCD.

El módulo tiene 16 pines de salida y 4 pines de entrada. Podemos simplemente soldar el adaptador a la parte posterior de la pantalla LCD de 16 x 2. De los 4 pines de entrada, los dos son + 5V y GND, el resto de los dos son SDA y SCL.

Podemos ver que guardamos muchos pines en Arduino para otras tareas de entrada / salida.

Podemos ajustar el contraste de la pantalla ajustando el potenciómetro con un pequeño destornillador (resaltado en el cuadro rojo).

La retroiluminación ahora se puede controlar en el propio código del programa:

LCD luz de fondo()

Esto encenderá la luz de fondo en la pantalla LCD.

lcd.noBacklight ()

Esto apagará la luz de fondo en la pantalla LCD.

Podemos ver que hay un puente conectado, que está resaltado en el cuadro rojo, si se quita el puente, la luz de fondo permanece apagada independientemente del comando del programa.

Ahora que la configuración del hardware está lista, veamos cómo codificar. Recuerde que el módulo LCD I2C necesita especial

biblioteca y la biblioteca 'Liquidcrystal' preinstalada no funcionará.

Puede descargar la biblioteca LCD I2C desde aquí y agregarla a Arduino IDE:

github.com/marcoschwartz/LiquidCrystal_I2C

De la publicación anterior aprendimos que los dispositivos I2C tienen una dirección por la cual el maestro o el microcontrolador pueden identificar el dispositivo y comunicarse.

En la mayoría de los casos, para el módulo LCD I2C, la dirección sería '0x27'. Pero una fabricación diferente puede tener una dirección diferente. Tenemos que ingresar la dirección correcta en el programa solo entonces su pantalla LCD funcionará.

Para encontrar la dirección, simplemente conecte 5V a Vcc y GND a GND de Arduino y el pin SCL del módulo I2C a A5 y SDA a A4 y cargue el siguiente código.

Esto escaneará los dispositivos I2C conectados y mostrará su dirección.

|_+_|

Sube el código y abre el monitor de serie.

Como podemos ver, se detectaron dos dispositivos y se muestran sus direcciones, pero si desea encontrar solo la dirección del módulo LCD I2C, no debe conectar ningún otro dispositivo I2C mientras escanea.
Entonces, en conclusión, obtuvimos la dirección '0x27'.

Ahora vamos a hacer un reloj digital como ejemplo porque hay dos dispositivos I2C, el módulo LCD y el módulo RTC o reloj en tiempo real. Ambos módulos estarán conectados con dos cables.

Descarga la siguiente biblioteca:
Biblioteca RTC: github.com/PaulStoffregen/DS1307RTC
TimeLib.h: github.com/PaulStoffregen/Time

Cómo configurar el tiempo en RTC

• Abra Arduino IDE y vaya a Archivo> Ejemplo> DS1307RTC> establecer la hora.
• Cargue el código con el hardware completo y abra el monitor serial y listo.

Diagrama de circuito:

Programa:

|_+_|

Nota:

LiquidCrystal_I2C pantalla LCD (0x27, 16, 2)

El '0x27' es la dirección que encontramos al escanear y 16 y 2 son el número de filas y columnas en la pantalla LCD.

Para RTC no necesitamos encontrar la dirección, pero la encontramos al escanear “0x68”, pero de todos modos la biblioteca RTC lo manejará.

Ahora veamos cuánto redujimos la congestión de cables y salvamos pines GPIO en Arduino.

Solo 4 cables están conectados a la pantalla LCD, resaltados en el cuadro rojo.

Además, solo 4 cables están conectados desde Arduino y el módulo RTC comparte las mismas líneas.

A estas alturas ya ha adquirido conocimientos básicos sobre I2C y cómo utilizar el módulo adaptador LCD I2C.
¿Te gusta esta publicación? ¿Tiene usted alguna pregunta? Exprese en la sección de comentarios, puede obtener una respuesta rápida.




Artículo anterior: Circuito probador de diodo de transistor simple Siguiente: Haga este circuito extensor de rango de control remoto IR