Las pantallas LCD son útiles y se encuentran en muchas partes de nuestra vida. En la estación de tren, parquímetro, máquinas expendedoras que comunican breves mensajes sobre cómo interactuamos con la máquina a la que están conectados. Las pantallas LCD son una forma divertida de comunicar información en Raspberry Pi Proyectos Pico y otros Proyectos Raspberry Pi . Tienen una gran pantalla brillante que puede mostrar texto, números y caracteres en una pantalla de 16 x 2. El 16 se refiere a 16 caracteres en la pantalla y el 2 representa el número de filas que tenemos. Podemos conseguir pantallas LCD con 20×2, 20×4 y muchas otras configuraciones, pero 16×2 es la más común.
En este tutorial aprenderemos cómo conectar una pantalla LCD, una HD44780, a una Raspberry Pi Pico a través de la interfaz I2C usando la mochila I2C adjunta, luego instalaremos una biblioteca MicroPython a través del editor Thonny y aprenderemos a usarla para escribir texto en la pantalla, controlar el cursor y la luz de fondo.
La pantalla LCD utiliza el protocolo I2C para interactuar con la Raspberry Pi Pico. Lo que significa que solo requerimos.
Cómo conectar una pantalla LCD I2C a Raspberry Pi Pico
1. Conecte el GND de la pantalla a cualquier GND en el Pico (cable negro).
2. Conecte VDD/VCC a VBUS en el Pico (cable rojo). Advertencia: este es un pin de 5V.
3. Conecte SDA a I2C0 SDA (GP0, pin físico 1, cable naranja).
4. Conecte SCK/SCL a I2C0 SCL (GP1, pin físico 2, cable amarillo).
5. Conecta tu Raspberry Pi Pico a tu computadora y abre la aplicación Thonny.
6. Haga clic en DETENER para confirmar que su Pico está conectado.
7. Abra este enlace y copia el texto de la página.
8. Crea un archivo en blanco en Thonny y pega el texto en él. Guarde el archivo en Raspberry Pi Pico como lcd_api.py
9. Abra esto <×link y copia el texto de la página .
10. Crea un archivo en blanco en Thonny y pega el texto en él. Guarde el archivo en la Raspberry Pi Pico como pico_i2c_lcd.py
Programando una pantalla LCD I2C Pantalla con Raspberry Pi Pico
Con las bibliotecas instaladas, ahora podemos comenzar a escribir un script de prueba para demostrar las funciones de la biblioteca.
1. Cree un nuevo archivo en blanco en Thonny.
2. Importa cuatro bibliotecas de código escrito previamente. Los dos primeros son de la biblioteca Machine y nos permiten usar pines I2C y GPIO. A continuación, importamos la función de suspensión de Time que nos permite pausar el código. Finalmente importamos la biblioteca I2C para interactuar con la pantalla LCD.
from machine import I2C, Pin
desde el momento de importar el sueño
desde machine_i2c_lcd importar I2cLcd
3. Crea un objeto <×i2c” para comunicarse con la pantalla LCD a través del protocolo I2C. Aquí estamos usando el canal 0 I2C, que mapea SDA a GP0 y SCL a GP1.
i2c=I2C (0, sda=Pin (0), scl=Pin (1), freq=400000)
4. Cree una variable <×I2C_ADDR” , que almacenará la primera dirección I2C encontrada cuando escaneamos el bus. Como solo tenemos un dispositivo I2C conectado, solo necesitamos ver la primera dirección [0] devuelta en el escaneo.
I2C_ADDR=i2c.scan () [0]
5. Crea un objeto <×lcd” para configurar la conexión I2C para la biblioteca. Le dice a la biblioteca qué pines I2C estamos usando, configura a través del objeto i2c , la dirección de nuestra pantalla, configura a través de I2C_ADDR y finalmente establece que tenemos una pantalla con dos filas y 16 columnas.
lcd=I2cLcd (i2c, I2C_ADDR, 2, 16)
6. Crear un ciclo para ejecutar continuamente el código, la primera línea del ciclo imprimirá la dirección I2C de nuestra pantalla en Python Shell de Thonny.
while True: imprimir (I2C_ADDR)
7. Configure el cursor de la pantalla LCD para que parpadee (parpadee) de forma similar a la interfaz de un terminal de la vieja escuela.
lcd.blink_cursor_on ()
8. Escribe dos líneas de texto en la pantalla. El primero imprimirá “Dirección I2C:” seguida de la dirección almacenada dentro del objeto I2C_ADDR. Luego inserte un carácter de nueva línea “\ n” y luego escriba otra línea que diga"Tom's Hardware"(o lo que quiera que diga). Haga una pausa de dos segundos para dar tiempo a leer el texto.
lcd.putstr ("Dirección I2C:"+ str (I2C_ADDR) +"\ n") lcd.putstr ("Hardware de Tom") dormir (2)
9. Limpia la pantalla antes de repetir la sección anterior de código, pero esta vez mostramos la dirección I2C de la pantalla LCD usando su valor hexadecimal. El chip PCF8574T usado en la mochila I2C tiene dos direcciones, 0x20 y 0x27 y es útil saber cuál está usando, especialmente si estamos usando múltiples dispositivos I2C ya que pueden causar un choque en el bus.
lcd.clear () lcd.putstr ("Dirección I2C:"+ str (hex (I2C_ADDR)) +"\ n") lcd.putstr ("Hardware de Tom")
10. Apague el cursor parpadeante , luego borre la pantalla y esté lista para imprimir otro mensaje,"Prueba de luz de fondo"en la pantalla.
lcd.blink_cursor_off () lcd.clear () lcd.putstr ("Prueba de luz de fondo")
11. Para hacer parpadear la luz de fondo LED, use un bucle for que se repetirá diez veces. Encenderá la luz de fondo durante 0,2 segundos y luego la apagará al mismo tiempo. El texto"Prueba de luz de fondo"permanecerá en la pantalla incluso con la luz de fondo apagada.
para i en el rango (10): lcd.backlight_on () dormir (0,2) lcd.backlight_off () dormir (0,2)
12. Vuelve a encender la luz de fondo y luego oculta el cursor . A veces, un cursor parpadeante puede restar valor a la información que estamos tratando de comunicar.
lcd.backlight_on () lcd.hide_cursor ()
13. Cree un bucle for que imprimirá el número del 0 al 19 en la pantalla LCD. Tenga en cuenta que hay un retraso de 0,4 segundos antes de eliminar el valor y reemplazarlo con el siguiente. Tenemos que eliminar el texto ya que sobrescribirlo hará que parezca confuso.
for i in range (20): lcd.putstr (str (i)) dormir (0.4) lcd.clear ()
Listado de código completo
de la máquina importar I2C, Pin
desde el momento de importar el sueño
de machine_i2c_lcd importar I2cLcd
i2c=I2C (0, sda=Pin (0), scl=Pin (1), frecuencia=400000) I2C_ADDR=i2c.scan () [0]
lcd=I2cLcd (i2c, I2C_ADDR, 2, 16)
mientras que es verdadero: imprimir (I2C_ADDR) lcd.blink_cursor_on () lcd.putstr ("Dirección I2C:"+ str (I2C_ADDR) +"\ n") lcd.putstr ("Hardware de Tom") dormir (2) lcd.clear () lcd.putstr ("Dirección I2C:"+ str (hex (I2C_ADDR)) +"\ n") lcd.putstr ("Hardware de Tom") dormir (2) lcd.blink_cursor_off () lcd.clear () lcd.putstr ("Prueba de luz de fondo") para i en el rango (10): lcd.backlight_on () dormir (0,2) lcd.backlight_off () dormir (0,2) lcd.backlight_on () lcd.hide_cursor () para i en el rango (20): lcd.putstr (str (i)) dormir (0.4) lcd.clear ()
Guarde y ejecute su código. Al igual que con cualquier script de Python en Thonny, Haga clic en Archivo >> Guardar y guarde el archivo en su Raspberry Pi Pico. Recomendamos llamarlo i2c_lcd_test.py . Cuando esté listo, haga clic en el botón de reproducción verde para iniciar el código y observe cómo se ejecuta la prueba en la pantalla.