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ó
![LCD01.png](https://static.wixstatic.com/media/82ee8a_0bd55ad5abe0436292a2626750d1a9af~mv2.png/v1/fill/w_400,h_237,al_c,q_85,usm_0.66_1.00_0.01,enc_auto/LCD01.png)
![LCD2.png](https://static.wixstatic.com/media/82ee8a_6763e0acbccd40919d4378a298bd08e0~mv2.png/v1/crop/x_22,y_0,w_1262,h_656/fill/w_688,h_358,al_c,q_85,usm_0.66_1.00_0.01,enc_auto/LCD2.png)
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)
![i2c.png](https://static.wixstatic.com/media/82ee8a_e317e5f933bd4a4eba78bd5390d6dc97~mv2.png/v1/fill/w_400,h_209,al_c,q_85,usm_0.66_1.00_0.01,enc_auto/i2c.png)
![pantalla-lcd-16x2-1602-azul-iic-i2c.jpg](https://static.wixstatic.com/media/82ee8a_f4d624f850314d6d88633d41b68685a2~mv2.jpg/v1/crop/x_220,y_437,w_412,h_187/fill/w_309,h_140,al_c,q_80,usm_0.66_1.00_0.01,enc_auto/pantalla-lcd-16x2-1602-azul-iic-i2c.jpg)
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)
![explicacic3b3n-coordenadas-cartesianas-pantalla-lcd-16x2.png](https://static.wixstatic.com/media/82ee8a_d02bdc5e5f7b415fbbb9c343cd1fedd1~mv2.png/v1/crop/x_70,y_176,w_1306,h_572/fill/w_356,h_156,al_c,q_85,usm_0.66_1.00_0.01,enc_auto/explicacic3b3n-coordenadas-cartesianas-pantalla-lcd-16x2.png)
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
![caracter-humano.png](https://static.wixstatic.com/media/82ee8a_8c76def94f79437c8d7bce14c3b66ce2~mv2.png/v1/crop/x_21,y_65,w_250,h_446/fill/w_150,h_268,al_c,q_85,usm_0.66_1.00_0.01,enc_auto/caracter-humano.png)
Estat de cada píxel en cada fila
![CustonGenerator2.png](https://static.wixstatic.com/media/82ee8a_227490996c494bf1b9c2ca7c707ee082~mv2.png/v1/fill/w_596,h_393,al_c,q_85,usm_0.66_1.00_0.01,enc_auto/CustonGenerator2.png)
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))