Pantalla LCD
LCD = Liquid Crystal Display (pantalla de cristall líquid)
Ens interessa utilitzar-la en els nostres projectes per visualitzar informació.
N’hi ha de diferents mides, la nostra és de 16×2 (2 files de 16 caracters cadascuna).
Uns dels problemes de la LCD és que necessita connexió a 6 pins digitals,
a més dels d'alimentació:


Per solucionar aquest problema podem connectar-la a través d'un mòdul I2C
I2C és un bus de comunicació que transmet la informació (entre fins a 112 dispositius diferents) a través de només dues línies:
una per les dades (SDA) i l’altre pel senyal del rellotge (SDL).
A més, li cal alimentació a través dels pins GND i VCC.
Amb només 4 cables tenim la connexió solucionada!
Això sí, els pins del mòdul han d’estar connectats als de la LCD.

Connexió a Arduino UNO

SDA (dades): al pin analògic A4*
SCL (rellotge): al pin analògic A5*
VCC i GND (alimentació): als pins corresponents de la placa.
El contrast de la pantalla
es regula amb el potenciòmetre del mòdul I2C.
El bus I2C d'Arduino UNO utilitza els pins analògics A4 i A5.
Certs models de plaques Arduino UNO, a més de l’A4 i l’A5 tenen dos pins específics per la comunicació I2C. Es troben a l’extrem esquerre de la fila de pins digitals i estan indicats: SCL a l’esquerra i SDA a la dreta.
Pautes de programació
Les instruccions relatives es troben al menú

Per comunicar dispositius a través d'I2C cal especificar la seva adreça. L’adreça de LCD més comú sol ser 0x27 o 0x3F.

Per comprovar l'adreça podem executar en l'IDE Arduino l’sketch i2c_scanner.
Aquest sketch escombra tot el bus i si troba un dispositiu, mostra la seva adreça pel monitor sèrie.
Per mostrar missatges utilitzarem la instrucció

Cal indicar:
La posició inicial del cursor (el número d'ordre de les files i les columnes comença pel 0).
El missatge a mostrar (text, número, dada o valor de variable)

La instrucció
esborra la pantalla. Convé utilitzar-la cada cop que volem mostrar un nou missatge.
Podem definir els missatges a mostrar directament en el bucle d'execució contínua:
El missatge es mostrarà a partir de la columna definida de la 1a fila

El missatge es mostrarà a partir de la columna definida de la 2a fila
Cal esborrar la pantalla abans de mostrar nous missatges
Podem definir els missatges a mostrar com a elements d'una llista:


Una llista és un conjunt de dades (variables)
Les instruccions per crear i recuperar els seus elements es troben al menu

Si treballem amb llistes podem fer que el missatge a mostrar sigui un qualsevol de la llista:

La aleatorietat és una expressió matemàtica
2. Mostra dades de diferent naturalesa
Per combinar missatges de text amb variables o dades provinents de sensors tenim diverses opcions:


Opció 1. Definir la posició del cursor per a cada tipus de dada a mostrar.

Opció 2. Crear un bloc de text
El problema del temps

La instrucció delay ( ) bloqueja l'execució del programa durant el temps definit.
Per tant, les accions de control poden no funcionar perquè no s'actualitzarà l'estat dels sensors durant aquest temps.

La funció millis ( ) calcula el temps transcorregut entre dos esdeveniments a partir de la consulta del temps que la placa porta en funcionament.
No afecta a les accions de control perquè no implica cap bloqueig de l'execució del programa.
Ara us toca a vosaltres

S'us acudeix com podem encendre un LED en prèmer la tecla A a l'ordinador?
Com podem fer per que s'apagui?