Approved Reseller
Approved Reseller
En este pequeño tutorial veremos cómo conectar una pantalla / display LCD 16×02 con controlador I2C a una tarjeta Raspberry Pi, también encontrarás un código de programación para tus primeras pruebas.
Las pantallas LCD son dispositivos digitales de salida, es decir su funcionamiento consiste en recibir instrucciones correspondientes al texto que se desea mostrar y mostrarlo. Al utilizar un controlador I2C reducimos el número de conexiones y de pines de la Raspberry Pi a usar ya que la comunicación entre la anterior y la Pantalla LCD se realiza a través de 2 GPIO. En este ejemplo utilizaremos el paquete de python Adafruit_CircuitPython_CharLCD para controlar la pantalla con pocas líneas de código.
En este código hacemos uso del paquete de Python3 Adafruit_CircuitPython_CharLCD. Para instalarlo ejecuta el siguiente comando en la terminal:
pi@raspberrypi:~$ sudo pip3 install adafruit-circuitpython-charlcd
Para que podamos ejecutar un programa que intercambie información por I2C en nuestra Raspberry Pi, debemos habilitar el hardware correspondiente en dicha tarjeta. Esto lo podemos hacer de manera sencilla con ayuda de la herramienta de configuración raspi-config, si no has utilizado esta herramienta antes da click aquí para ver el paso a paso. Una vez que termines regresa para ejecutar el código.
Copiamos el siguiente código de ejemplo de Adafruit a un script de Python y lo ejecutamos con Python3 y observamos el texto desplegado en la pantalla LDC 16×02.
"""Simple test for I2C RGB character LCD shield kit""" import time import board import busio import adafruit_character_lcd.character_lcd_rgb_i2c as character_lcd # Modify this if you have a different sized Character LCD lcd_columns = 16 lcd_rows = 2 # Initialise I2C bus. i2c = busio.I2C(board.SCL, board.SDA) # Initialise the LCD class lcd = character_lcd.Character_LCD_RGB_I2C(i2c, lcd_columns, lcd_rows) lcd.clear() # Set LCD color to red lcd.color = [100, 0, 0] time.sleep(1) # Print two line message lcd.message = "Hello\nCircuitPython" # Wait 5s time.sleep(5) # Set LCD color to blue lcd.color = [0, 100, 0] time.sleep(1) # Set LCD color to green lcd.color = [0, 0, 100] time.sleep(1) # Set LCD color to purple lcd.color = [50, 0, 50] time.sleep(1) lcd.clear() # Print two line message right to left lcd.text_direction = lcd.RIGHT_TO_LEFT lcd.message = "Hello\nCircuitPython" # Wait 5s time.sleep(5) # Return text direction to left to right lcd.text_direction = lcd.LEFT_TO_RIGHT # Display cursor lcd.clear() lcd.cursor = True lcd.message = "Cursor! " # Wait 5s time.sleep(5) # Display blinking cursor lcd.clear() lcd.blink = True lcd.message = "Blinky Cursor!" # Wait 5s time.sleep(5) lcd.blink = False lcd.clear() # Create message to scroll scroll_msg = "<-- Scroll" lcd.message = scroll_msg # Scroll to the left for i in range(len(scroll_msg)): time.sleep(0.5) lcd.move_left() lcd.clear() time.sleep(1) lcd.message = "Going to sleep\nCya later!" time.sleep(5) # Turn off LCD backlights and clear text lcd.color = [0, 0, 0] lcd.clear()