Ecran LCD: tot ce trebuie să știți

ecran LCD

o Ecranul LCD poate fi o soluție pentru acele proiecte în care trebuie să afișați informații fără a depinde de un computer conectat constant. Adică, într-un proiect Arduino / Raspberry Pi, puteți utiliza portul serial pentru a transmite informații care sunt afișate pe ecran pentru a obține citiri ale senzorilor, pentru a afișa un grafic, conturi etc. Dar dacă proiectul dvs. rulează constant sau este departe de locul în care puteți avea un computer, ecranul LCD este salvarea voastră.

De exemplu, imaginați-vă că instalați un sistem automat de irigare și ați dori să verificați citirile de umiditate și temperatură atunci când mergeți în grădina dvs. de legume sau grădină. A fi nevoie să duci computerul acolo pentru a conecta placa Arduino la computer nu este o soluție practică. În acest caz, puteți modifica codul astfel încât să spună informațiile sunt afișate pe ecranul LCD și chiar adăugați câteva taste sau butoane pentru a putea afișa informații diferite.

Ce este un panou LCD?

Un afișaj cu cristale lichide sau Ecran LCD (ecran cu cristale lichide) Este un fel de panou subțire, plat, care poate afișa imagini. Fiecare panou este alcătuit dintr-un anumit număr de culori sau pixeli monocromi care sunt așezați în fața unei surse de lumină. Consumul lor este redus, motiv pentru care sunt ideale pentru acest tip de proiecte de electronice DIY de mică putere.

Fiecare pixel de pe ecranul LCD este alcătuit dintr-un strat de molecule aliniat între doi electrozi transparenți și două filtre de polarizare. Între filtre de polarizare există un ecran cu cristale lichide, de aici și numele său și împiedică blocarea luminii care trece prin primul filtru de către cel de-al doilea.

De asemenea, dacă ați observat, când atingeți unul dintre aceste ecrane imaginea este deformată și apare un fel de pată neagră la apăsare, pentru că exercitați presiune asupra cristalului lichid și nu este recomandabil să faceți acest lucru ... Puteți ajunge la culori de ecran de calitate mai scăzută, distribuție neuniformă a iluminatului sau chiar pixeli morți (pete negre sau zone de pe ecran care nu dispar).

Ecrane LCD pentru Arduino și Raspberry Pi

Un ecran LCD, cum ar fi modulele care există pentru electronică sau pentru Arduino, are de obicei mai multe coloane pentru a afișa caractere alfanumerice sau simboluri și unul sau două rânduri pentru a afișa informații. Acest lucru le face mult mai interesante decât un afișaj cu șapte segmente, care ar trebui să conecteze mai mulți pini pentru a putea afișa doar un singur număr, simbol sau literă. Dacă doriți să afișați mai multe, ar trebui să plasați mai multe afișaje.

În schimb, cu un singur ecran LCD puteți afișa mult mai multe informații. Dar trebuie să cunoașteți bine pinout-ul acestui tip de module pentru a le conecta corect. Vă recomand să vedeți întotdeauna fisa tehnica a producatorului si modelul specific pe care le aveți, deoarece acestea pot varia.

De exemplu, O puteți cumpăra de la Adafruit de pe Amazon, care este unul dintre cele mai populare cu o tastatură și conține posibilitatea de a afișa până la 16 caractere în fiecare dintre cele două linii ale sale. Și există chiar și 20 × 4, sau ceva mai avansat șiColor multi-inch pentru a afișa imagini mai complexe.

Pentru ecran LCD de Adafruit 16 × 2 puteți vedea această fișă tehnică...

Pentru arduino poate unul mai simplu ca acesta este mai bun Ecran LCD 16x2 fără tastatură. Dacă vă uitați la această placă, are 16 pini pe spate. Dacă luați placa și o întoarceți cu susul în jos și vă uitați la pinii săi de la stânga la dreapta, aveți un pinout:

  • Pinul 16: GND pentru iluminarea din spate
  • Pinul 15: Vcc pentru iluminarea din spate
  • Pin 7-14: 8 biți (următorii 8 pini) pentru a transmite informațiile care vor fi afișate pe ecran
  • Pinul 6: sincronizare de citire și scriere
  • Pinul 5. R / W (scrieți și citiți pentru date și comenzi)
  • Pinul 4: RS (selector între comenzi și date)
  • Pinul 3: controlul contrastului
  • Pinul 2: Vcc de 5v pentru putere
  • Pinul 1: GND (0v) pentru putere

Amintiți-vă că, atunci când îl așezați în poziția corectă, pinii sunt inversați ...

Integrare cu Arduino

Schema de conexiune LCD 16x2 la Arduino Uno

la conectați-l la arduino Nu este prea complicat, trebuie doar să luați în considerare includerea unui rezistor de 220 ohm pentru a regla tensiunea de intrare pentru puterea ecranului și un potențiometru pentru a modula contrastul ecranului. Apoi conectați fiecare pin la placa Arduino în mod corespunzător și ați terminat. Puteți privi imaginea lui Fritzing ...

După cum puteți vedea, potențiometrul va fi prin care va fi alimentat ecranul LCD și contrastul vor fi, de asemenea, reglate. Prin urmare, va fi conectat atât la GND cât și la Vcc a afișajului, precum și la linia de control a luminii de fundal și controlul contrastului. Poate că acesta este cel mai complicat, atunci este vorba de conectarea pinilor rămași la intrările / ieșirile pe care le veți folosi în proiectul dvs.

Programare cu Arduino IDE

Pentru programare trebuie să țineți cont de unele particularități, Rețineți că nu trebuie doar să știți cum să trimiteți date, ci și să le mutați, să le așezați bine pe ecran etc. Și ar trebui să utilizați și o bibliotecă numită LiquidCrystal.h, atâta timp cât ecranul LCD are un chipset compatibil Hitachi HD44780. Aici aveți un exemplu de cod:

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

Mai multe informatii - Manual de programare Arduino (PDF gratuit)


Fii primul care comenteaza

Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.