Pantalla LCD: tot el que cal saber

pantalla LCD

Una pantalla LCD pot ser tota una solució per a aquells projectes en què necessitis mostrar informació sense necessitat de dependre d'un ordinador constantment connectat. És a dir, en un projecte d'Arduino / Raspberry Pi, pots utilitzar el port sèrie per transmetre informació que es mostri en pantalla per aconseguir lectures de sensors, mostrar algun gràfic, comptes, etc. Però si el teu projecte està constantment funcionant o allunyat d'on puguis tenir un ordinador, la pantalla LCD és la teva salvació.

Per exemple, imagina que instal un sistema de reg automatitzat i t'agradaria comprovar les lectures d'humitat i temperatura quan vagis al teu hort o jardí. Haver de portar-hi l'ordinador per connectar la placa Arduino a el PC no és una solució pràctica. En aquest cas, pots modificar la teva codi perquè aquesta informació es mostri a la pantalla LCD i fins i tot afegir unes tecles o botons per poder mostrar diferent informació.

Què és un panell LCD?

Una pantalla de cristall líquid o LCD (pantalla de cristall líquid) és un tipus de panell prim i pla que pot mostrar imatges. Cada panell està compost per un nombre determinat de píxels en color o monocroms que se situen davant d'una font de llum. El seu consum és reduït, per això són ideals per a aquest tipus de projectes DIY d'electrònica de baixa potència.

Cada píxel de la pantalla LCD està compost per una capa de molècules alineades entre dos elèctrodes transparents, i dos filtres de polarització. entre filtres polaritzants ha una pantalla de cristall líquid, D'aquí el seu nom, i evita que la llum que passa pel primer filtre es bloquegi pel segon.

A més, si t'has fixat, quan toques d'aquestes pantalles la imatge es deforma i apareix una mena de marxa negra a l'pressionar, això és perquè estàs exercint pressió sobre el cristall líquid i no és aconsellable fer-ho ... Pots acabar amb colors en pantalla de menor qualitat, repartiment irregular de la il·luminació o fins i tot amb píxels morts (punts o zones negres a la pantalla que no van).

Pantalles LCD per Arduino i Raspberry Pi

Una pantalla de plasma, com els mòduls que hi ha per electrònica o per Arduino, Sol tenir diverses columnes per mostrar caràcters alfanumèrics o símbols i una o dues files per mostrar informació. Això els fa molt més interessants que un display de set segments, que caldria connectar diversos pins per sol poder mostrar un sol número, símbol o lletra. Si vols mostrar més hauries posar diversos display.

En canvi, amb una sola pantalla LCD pots mostrar molta més informació. Però has de conèixer bé el pinout d'aquest tipus de mòduls per a connectar-los de forma adequada. Et recomano sempre veure el datasheet de l'fabricant i model concret que tens ja que poden variar.

Per exemple, aquesta de Adafruit la pots comprar a Amazon, Que és una de les més populars amb teclat i conté possibilitat de mostrar fins a 16 caràcters en cadascuna de les seves dues línies. I fins i tot n'hi ha de 20 × 4, o alguna cosa més avançades in color de de diverses polzades per mostrar imatges més complexes.

Per a la pantalla LCD de Adafruit 16 × 2 pots veure aquest datasheet...

per Arduino potser és millor una més simple com la pantalla LCD 16x2 sense teclat. Si et fixes en aquesta placa, té 16 pins a la part posterior. Si agafes la placa i la col·loques cap per avall i mires els seus pins d'esquerra a dreta tens un pinout:

  • Pin 16: GND per llum de fons
  • Pin 15: Vcc per llum de fons
  • Pin 7-14: 8-bit (8 pins següents) per transmetre la informació que es mostrarà a la pantalla
  • Pin 6: de sincronització de lectura i escriptura
  • Pin 5. R / W (escriptura i lectura per a dades i ordres)
  • Pin 4: RS (selector entre comandaments i dades)
  • Pin 3: de control de contrast
  • Pin 2: Vcc de 5v per a alimentació
  • Pin 1: GND (0V) per a alimentació

Recorda que quan la col·loquis en la seva posició correcta els pins s'inverteixen ...

Integració amb Arduino

Esquema de connexió de LCD 16x2 a Arduino Uno

Per a la connectar-lo a Arduino no és massa complicat, només has de considerar incloure una resistència de 220 ohms per regular el voltatge d'entrada per a l'alimentació de la pantalla, i un potenciòmetre per modular el contrast de la pantalla. Després connectar cada un dels pins a la placa Arduino de manera adequada i llest. Pots fixar-te en la imatge de Fritzing ...

Com pots comprovar, el potenciòmetre serà a través del que s'alimentarà la pantalla LCD i també es regularà el contrast. Per tant, anirà unit a ambdós GND i Vcc de la pantalla, així com a la línia de control de llum de fons i control contrast. Potser això és el més complicat, després és qüestió de connectar els pins restants a les entrades / sortides que vagis a utilitzar en el teu projecte.

Programació amb Arduino IDE

Per a la programació has de tenir en compte algunes peculiaritats, tingues en compte que has de no només saber com enviar dades, sinó desplaçar, col·locar-los bé en pantalla, etc. I també has de fer servir una biblioteca anomenada LiquidCrystal.h, Sempre que la pantalla LCD tingui un chipset d'Hitachi HD44780 compatible. Un exemple de codi el tens aquí:

#include <LiquidCrystal.h>

// Definimos las constantes
#define COLS 16 // Aqui va el num de columnas del LCD, 16 en nuestro caso
#define ROWS 2 // Aqui las filas x2
#define VELOCIDAD 200 // Velocidad a la que se movera el texto

// Indicamos los pines de la interfaz donde hayas conectado el LCD
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

// Para el texto que se muestra
String texto_fila = "Ejemplo LCD";

void setup() {
  // Configura el monitor serie
  Serial.begin(9600);

  // Configurde filas y columnas
  lcd.begin(COLS, ROWS);
}

void loop() {

  // Tamaño del texto a mostrar
  int tam_texto=texto_fila.length();

  // Indicamos que la entrada de texto se hace por la izquierda
  for(int i=tam_texto; i>0 ; i--)
  {
    String texto = texto_fila.substring(i-1);

    // Limpia la pantalla para poder mostrar informacion diferente
    lcd.clear();

    //Situar el cursor en el lugar adecuado, en este caso al inicio
    lcd.setCursor(0, 0);

    // Escribimos el texto "Ejemplo LCD"
    lcd.print(texto);

    // Esperara la cantidad de milisegundos especificada, en este caso 200
    delay(VELOCIDAD);
  }

  // Desplazar el texto a la izquierda en primera fila
  for(int i=1; i<=16;i++) { 
    lcd.clear();
    lcd.setCursor(i, 0); 
    lcd.print(texto_fila); 
    delay(VELOCIDAD); } 
  // Desplazar el texto a izquierda en la segunda fila 
    for(int i=16;i>=1;i--)
  {
    lcd.clear();
    lcd.setCursor(i, 1);
    lcd.print(texto_fila);
    delay(VELOCIDAD);
  }
  for(int i=1; i<=tam_texto ; i++)
  {
    String texto = texto_fila.substring(i-1);
    lcd.clear();
    lcd.setCursor(0, 1);
    lcd.print(texto);
    delay(VELOCIDAD);
  }
}

Més informació - Manual de programació d'Arduino (PDF gratuït)


Sigues el primer a comentar

Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.