Schermo LCD: tutto ciò che devi sapere

Schermo a cristalli liquidi

Un Lo schermo LCD può essere una soluzione per quei progetti in cui è necessario visualizzare le informazioni senza dover dipendere da un computer costantemente connesso. Cioè, in un progetto Arduino / Raspberry Pi, puoi utilizzare la porta seriale per trasmettere le informazioni che vengono visualizzate sullo schermo per ottenere letture del sensore, mostrare un grafico, account, ecc. Ma se il tuo progetto è costantemente in esecuzione o lontano da dove puoi avere un computer, lo schermo LCD è la tua salvezza.

Ad esempio, immagina di installare un sistema di irrigazione automatizzato e di voler controllare le letture di umidità e temperatura quando vai nel tuo orto o giardino. Dover portare lì il computer per collegare la scheda Arduino al PC non è una soluzione pratica. In questo caso, puoi modificare il tuo codice così detto le informazioni vengono visualizzate sullo schermo LCD e anche aggiungere alcuni tasti o pulsanti per poter mostrare informazioni diverse.

Cos'è un pannello LCD?

Un display a cristalli liquidi o LCD (display a cristalli liquidi) È una sorta di schermo piatto sottile in grado di visualizzare immagini. Ogni pannello è composto da un certo numero di pixel colorati o monocromatici che vengono posti davanti a una sorgente luminosa. Il loro consumo è basso, motivo per cui sono ideali per questo tipo di progetti di elettronica a basso consumo fai-da-te.

Ogni pixel sullo schermo LCD è costituito da uno strato di molecole allineate tra due elettrodi trasparenti e due filtri di polarizzazione. Fra filtri polarizzatori c'è un display a cristalli liquidi, da cui il suo nome, e impedisce che la luce che passa attraverso il primo filtro venga bloccata dal secondo.

Inoltre, se hai notato, quando tocchi uno di questi schermi l'immagine è deformata e quando si preme appare una specie di macchia nera, questo perché stai esercitando una pressione sui cristalli liquidi e non è consigliabile farlo ... Potresti ritrovarti con colori dello schermo di qualità inferiore, distribuzione non uniforme dell'illuminazione o anche pixel morti (punti neri o aree sullo schermo che non scompaiono).

Schermi LCD per Arduino e Raspberry Pi

Uno schermo LCD, come i moduli che esistono per l'elettronica o per Arduino, in genere ha più colonne per visualizzare caratteri alfanumerici o simboli e una o due righe per visualizzare le informazioni. Ciò li rende molto più interessanti di un display a sette segmenti, che dovrebbe collegare diversi pin per poter mostrare solo un singolo numero, simbolo o lettera. Se vuoi mostrare di più dovresti posizionare diversi display.

Invece, con un unico schermo LCD è possibile visualizzare molte più informazioni. Ma devi conoscere bene il pinout di questo tipo di moduli per collegarli correttamente. Ti consiglio di vedere sempre la scheda tecnica del produttore e il modello specifico che hai in quanto possono variare.

Ad esempio, Puoi acquistarlo da Adafruit su Amazon, che è uno dei più apprezzati con una tastiera e contiene la possibilità di visualizzare fino a 16 caratteri in ciascuna delle sue due righe. E ci sono anche 20 × 4, o qualcosa di più avanzato eColore multi-pollice per visualizzare immagini più complesse.

Per lo schermo LCD di Adafruit 16 × 2 potete vedere questa scheda tecnica...

Per arduino forse uno più semplice come quello è migliore Schermo LCD 16x2 senza tastiera. Se guardi questa scheda, ha 16 pin sul retro. Se prendi la scheda e la capovolgi e guardi i suoi pin da sinistra a destra, hai un pinout:

  • Pin 16: GND per retroilluminazione
  • Pin 15: Vcc per retroilluminazione
  • Pin 7-14: 8 bit (successivi 8 pin) per trasmettere le informazioni da visualizzare sullo schermo
  • Pin 6: lettura e scrittura di sincronizzazione
  • Pin 5. R / W (scrittura e lettura di dati e comandi)
  • Pin 4: RS (selettore tra comandi e dati)
  • Pin 3: controllo del contrasto
  • Pin 2: Vcc di 5v per l'alimentazione
  • Pin 1: GND (0v) per l'alimentazione

Ricorda che quando lo metti nella sua posizione corretta i perni sono invertiti ...

Integrazione con Arduino

Schema di collegamento LCD 16x2 a Arduino Uno

a collegalo ad arduino Non è troppo complicato, devi solo considerare di includere una resistenza da 220 ohm per regolare la tensione di ingresso per la potenza dello schermo e un potenziometro per modulare il contrasto dello schermo. Quindi collega ciascuno dei pin alla scheda Arduino in modo appropriato e il gioco è fatto. Puoi guardare l'immagine di Fritzing ...

Come potete vedere, il potenziometro sarà attraverso il quale verrà alimentato anche lo schermo LCD e il contrasto verranno regolati. Pertanto, sarà collegato sia a GND che a Vcc del display, nonché alla linea di controllo della retroilluminazione e al controllo del contrasto. Forse questo è il più complicato, quindi si tratta di collegare i pin rimanenti agli ingressi / uscite che utilizzerai nel tuo progetto.

Programmazione con Arduino IDE

Per la programmazione devi tener conto di alcune peculiarità, Tieni presente che non devi solo sapere come inviare i dati, ma anche spostarli, posizionarli bene sullo schermo, ecc. E dovresti anche usare una libreria chiamata Liquidcrystal.h, purché lo schermo LCD disponga di un chipset Hitachi HD44780 compatibile. Hai un esempio di codice qui:

#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);
  }
}

Maggiori informazioni - Manuale di programmazione Arduino (PDF gratuito)


Puoi essere il primo a lasciare un commento

Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.