PANTALLA LCD
LCD = Liquid Crystal Display (pantalla de cristall líquid).
La que utilitzem nosaltres té un format 16x2 (16 caracters i 2 files), i es connecta al microcontrolador a través del bus I2C.
Pautes de connexió
Cal tenir present que la pantalla LCD necessita alimentació de 5V
(l'ESP32 només proporciona 3.3V)
Cal alimentar-la des del pin Vin 5V de l'ESP32 o mitjançant alimentació externa 👀
Els pins I2C de l'ESP32:
GPIO 22 (SCL, rellotge)
GPIO 21 (SDA, dades)
El potenciòmetre de la part posterior permet regular la brillantor de la pantalla.
Pautes de programació
Llibreries
Necessitarem dues libreries: lcd_api.py i i2c_lcd.py
Copieu el codi d'aquests dos programes i deseu-los a la carpeta lib del vostre dispositiu MicroPython amb els noms lcd_api.py i i2c_lcd.py
Adreça I2C
Necessitarem conèixer l'adreça I2C de la pantalla.
Fem-ho executant el programa I2C scan
Mostra text, nombres i valors de variables
Només podem mostrar text, amb la instrucció: lcd.putstr ("text a mostrar")
Si volem mostrar un nombre l'hen de definir com a caracter: lcd.putstr ("5")
Si volem mostrar el valor d'una variable, primer l'haurem de convertir a string: variable = str (variable) per poder mostrar el seu valor: lcd.putstr (variable), o bé directament lcd.putstr (str (variable))
La instrucció lcd.clear( ) neteja la pantalla
Ubicació del cursor
Per defecte la posició d'inici del cursor és (0,0) o a continuació de la dada mostrada anteriorment si no hem netejat la pantalla.
Podem definir la posició d'inici amb la instrucció lcd.move_to (columna, fila)
Visualitzem les dades del nostre sensor ambiental (BME280) 👀 👇
En la nostra pantalla LCD, cada caracter ocupa una matriu de 5 × 8 píxels. Es poden mostrar caràcters
personalitzats establint l'estat de cada píxel dins d'aquesta matriu.
Fem-ho utilitzant aquest generador de caràcters personalitzats LCD
Estat de cada píxel en cada fila
A nosaltres ens interessa el codi hexadecimal.
Per aconseguir-lo, marcar la casella Hex
En el programa només cal crear una llista:
monigote = bytearray ([0x0E, 0x0A, 0x0E, 0x04, 0x1F, 0x04, 0x0A, 0x11])
lcd.custom_char (0, monigote)
i fer que es mostri:
lcd.putstr (chr(0))