Un LCD es un dispositivo que pemrite visualizar información de manera gráfica a través del fenómeno de polarización de la Luz la cual incide en la pantalla y permite la visualización de los carácteres mediante pixeles. La apariencia general de un display alfanúmerico se muestra a continuación:
El display disponible en el laboratorio remoto smartlabsuniminuto trabaja mediante un protocolo de comunicación sincrónico llamado I2C. En este protocolo existen dos señales denominadas reloj (SCL) y datos (SDA). Mediante estas dos señales la Raspberry Pi se puede comunicar con el módulo LCD para escribir la información que se desee enviar. Además, el LCD necesita una dirección de comunicación que en hexadecimal se escribe como 0x27. Con el LCD podemos escribir hasta 32 carácteres dividido en en 2 filas y 16 columnas. Las conexiones de la Raspberry Pi a este LCD se muestran a continuación:
En el laboratorio usamos la librería (RPLCD) en lenguaje Python para enviar los comandos y la información que deseamos al LCD. El enlace de esta librería se encuentra en a continuación: https://github.com/dbrgn/RPLCD
Para configurar y enviar texto al LCD se dispone de una serie de bloques los cuales se describen a continuación:
Bloque | Descripción |
---|---|
![]() | Permite establecer la comunicación mediante protocolo I2C con el LCD en la dirección seleccionada. En este caso la dirección es la 0x27. |
![]() | Permite escribir texto en el LCD. |
![]() | Permite posicionar el cursor para escribir en la fila y columna especificada. El LCD usando como se menciono dispone de 2 filas y 16 columnas desde donde se puede “comenzar” a escribir. |
![]() | Permite borrar el contenido del LCD |
Para comenzar a escribir en el LCD, realizaremos el siguiente algoritmo gráfico:
La explicación del algoritmo es la siguiente:
A continuación se muestra el video de configuración con el LCD con bloques gráficos:
Para trabajar con el LCD directamente en lenguaje Python usaremos las siguientes instrucciones:
Instrucción (Sentencia) | Descripción |
---|---|
from RPLCD.i2c import CharLCD | Permite importar el paquete RPLCD en Python para enviar la información al LCD. |
lcd=CharLCD('PCF8574',0x27) | Permite crear el objeto lcd para enviar datos al LCD. La comunicación se hace con el integrado PCF8574 que funciona mediante protocolo I2C y esta direcamente conectado el LCD en cada nodo del laboratorio remoto. Además, esta instrucción necesita una dirección del LCD que por defecto es la 0x27. |
lcd.write_string('Hola mundo') | Permite enviar el texto que deseemos al LCD. |
lcd.cursor_pos=(1,0) | Posiciona el cursor en la fila y columna seleccionadas para comenzar a escribir. En este ejemplo se posiciona el cursor en la fila (2), columna (1). El primer argumento es fila, el segundo columna pero restado en 1, es decir, la fila 2 del LCD seria '1' como argumento en la función. |
lcd.clear() | Borra el contenido del LCD. |
Para trabajar en lenguaje Python, usaremos el siguiente código base que permite enviar información con desplazamiento el display.
#Inserta tu codigo de Raspberry Pi aqui (Nota: comentarios sin tildes!) from RPLCD.i2c import CharLCD #Libreria para LCD lcd=CharLCD('PCF8574',0x27) #Direcccion de LCD por protocolo I2C lcd.write_string('Hola Mundo!') #Enviar mensaje a LCD en 2 filas
El código funciona del siguiente modo:
El video de explicación de este código se muestra a continuación:
Un código complementario para crear un contador y mostrar su valor en el LCD se muestra en el siguiente código:
from RPLCD.i2c import CharLCD #Libreria para LCD import time #libreria para retrasos a = None #Para conteo b = None #Para conversion de conteo a string lcd=CharLCD('PCF8574',0x27) #Iniciar LCD en direccion seleccionada a = 0 while True: a = a + 1 #incrementar a en 1 b = str(a) #Convertir a string lcd.cursor_pos=(0,0) #Posicionar cursos LCD en fila 1, columna 1 lcd.write_string(b) #Escribir string con el valor de conteo time.sleep(1) #Esperar 1 segundo
El código funciona del siguiente modo: