Herramientas de usuario

Herramientas del sitio


lcd

Manejo de Display Cristal Líquido (LCD)

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:

61yeylahmzl._ac_sy450_.jpg

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


1. Configuración y envio de datos a LCD mediante bloques gráficos

Para configurar y enviar texto al LCD se dispone de una serie de bloques los cuales se describen a continuación:

BloqueDescripció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:

  1. Iniciamos la comunicación con el LCD en la dirección 0x27.
  2. Borramos el contenido del LCD.
  3. Escribimos el texto hola mundo en el lcd. Así lo escribiría desde la primera fila, primera columna.
  4. Posicionamos el cursos en la segunda fila para comenzar a escribir.
  5. Escribimos en la segunda fila el texto 'uniminuto'.

A continuación se muestra el video de configuración con el LCD con bloques gráficos:


2. Configuración y envio de datos al LCD mediante lenguaje Python

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:

  • Importamos la librería RPLCD para trabajar con el LCD
  • Creamos un objeto 'lcd' con el cual enviaremos la información de texto, posición del cursor, etc., al LCD. Se configura la dirección 0x27 como la dirección del LCD.
  • Escribimos el texto deseado en el LCD.

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:

  • Importamos la librería RPLCD para trabajar con el LCD.
  • Importamos la librería time para retrasos.
  • Creamos un objeto 'lcd' con el cual enviaremos la información de texto, posición del cursor, etc., al LCD. Se configura la dirección 0x27 como la dirección del LCD.
  • Creamos dos variables a y b. a será la variable de conteo y b la variable de conversión de número a texto para el LCD.
  • Creamos un bucle infinito (while True). En este bucle infinito se incrementa la variable de conteo y se convierte en texto mediante la funcion str.
  • Posicionamos el cursor en la fila 1, columna 1 para comenzar a escribir.
  • Escribimos el valor del contador.
  • Esperamos 1 segundo para incrementar de nuevo la variable.
lcd.txt · Última modificación: 2021/12/15 16:33 por admin