LCD zaslon: sve što trebate znati

LCD zaslon

Una LCD zaslon može biti rješenje za one projekte u kojima trebate prikazati podatke, a da ne morate ovisiti o stalno povezanom računalu. Odnosno, u projektu Arduino / Raspberry Pi možete koristiti serijski port za prijenos podataka koji se prikazuju na zaslonu kako biste dobili očitanja senzora, prikazali grafikon, račune itd. Ali ako vaš projekt neprestano radi ili je daleko od mjesta gdje možete imati računalo, LCD zaslon je vaš spas.

Na primjer, zamislite da instalirate automatizirani sustav za navodnjavanje i željeli biste provjeriti očitanja vlage i temperature kad idete u svoj povrtnjak ili vrt. Morate odvesti računalo onamo kako biste Arduino ploču povezali s računalom nije praktično rješenje. U ovom slučaju, možete izmijeniti svoj kod tako da kaže informacije se prikazuju na LCD zaslonu pa čak i dodati neke tipke ili gumbe da biste mogli prikazati različite informacije.

Što je LCD ploča?

Zaslon s tekućim kristalima ili LCD (zaslon s tekućim kristalima) To je vrsta tanke, ravne ploče koja može prikazivati ​​slike. Svaka se ploča sastoji od određenog broja boja ili jednobojnih piksela koji se postavljaju ispred izvora svjetlosti. Njihova je potrošnja mala, zbog čega su idealni za ovu vrstu DIY elektroničkih projekata male snage.

Svaki piksel na LCD zaslonu sastoji se od sloja molekula poredanih između dvije prozirne elektrode i dva polarizacijska filtra. Između polarizacijski filtri nalazi se zaslon s tekućim kristalima, otuda i njegovo ime, te sprječava da svjetlost koja prolazi kroz prvi filtar blokira drugi.

Također, ako ste primijetili, kada dodirnete jedan od ovih zaslona slika se deformira i pri pritisku se pojavljuje neka vrsta crne mrlje, to jest zato što vršite pritisak na tekući kristal, a to nije preporučljivo ... Možda ćete završiti s nekvalitetnijim bojama zaslona, ​​neravnomjernom raspodjelom osvjetljenja ili čak mrtve piksele (crne mrlje ili područja na zaslonu koja ne nestaju).

LCD zasloni za Arduino i Raspberry Pi

LCD zaslon, kao što je moduli koji postoje za elektroniku ili za Arduino, obično ima više stupaca za prikaz alfanumeričkih znakova ili simbola i jedan ili dva retka za prikaz informacija. To ih čini mnogo zanimljivijima od sedmosegmentnog zaslona, ​​koji bi morao povezati nekoliko pinova da bi mogao prikazati samo jedan broj, simbol ili slovo. Ako želite prikazati više, trebali biste postaviti nekoliko zaslona.

Umjesto toga, s jednim LCD zaslonom možete prikazati puno više informacija. Ali morate dobro znati pinout ove vrste modula da biste ih pravilno povezali. Preporučujem da uvijek vidite tehnički list proizvođača i specifični model koje imate jer se mogu razlikovati.

Npr. Ovu možete kupiti od tvrtke Adafruit na Amazonu, koji je jedan od najpopularnijih s tipkovnicom i sadrži mogućnost prikazivanja do 16 znakova u svaka od svoja dva retka. A ima ih čak 20 × 4, ili nešto naprednije iViše inča u boji za prikaz složenijih slika.

Za LCD zaslon od Adafruit 16 × 2 možete vidjeti ovaj tehnički list...

Za arduino možda je jednostavniji poput ovog bolji LCD zaslon 16x2 bez tipkovnice. Ako pogledate ovu ploču, ona ima 16 igla na poleđini. Ako uzmete dasku i okrenete je naopako i pogledate njene igle slijeva udesno, dobit ćete pinout:

  • Pin 16: GND za pozadinsko osvjetljenje
  • Pin 15: Vcc za pozadinsko osvjetljenje
  • Pin 7-14: 8-bitni (sljedećih 8 pinova) za prijenos informacija koje će se prikazati na zaslonu
  • Pin 6: sinkronizacija čitanja i pisanja
  • Pin 5. R / W (pisanje i čitanje podataka i naredbi)
  • Pin 4: RS (birač između naredbi i podataka)
  • Pin 3: kontrola kontrasta
  • Pin 2: Vcc od 5v za napajanje
  • Pin 1: GND (0v) za napajanje

Imajte na umu da kada ga postavite u pravilan položaj igle su obrnute ...

Integracija s Arduinom

16x2 LCD dijagram spajanja na Arduino Uno

u spojite ga na arduino Nije previše komplicirano, samo trebate razmotriti uključivanje otpora od 220 ohma za regulaciju ulaznog napona snage zaslona i potenciometar za moduliranje kontrasta zaslona. Zatim spojite svaku pribadaču na ploču Arduino na odgovarajući način i gotovi ste. Možete pogledati sliku Fritzinga ...

Kao što vidiš, potenciometar će biti kroz koji će se napajati LCD zaslon i kontrast također će se prilagoditi. Stoga će biti povezan s GND i Vcc zaslona, ​​kao i s linijom upravljanja pozadinskim osvjetljenjem i kontrolom kontrasta. Možda je to najkompliciranije, onda je stvar povezivanja preostalih pinova s ​​ulazima / izlazima koje ćete koristiti u svom projektu.

Programiranje s Arduino IDE-om

Za programiranje morate uzeti u obzir neke osobitosti, Imajte na umu da podatke morate ne samo znati slati, već ih i premještati, dobro postavljati na zaslon itd. A također biste trebali koristiti knjižnicu tzv LiquidCrystal.h, sve dok vaš LCD zaslon ima kompatibilni Hitachi HD44780 čipset. Ovdje imate primjer koda:

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

Više informacija - Priručnik za programiranje Arduino (besplatni PDF)


Budite prvi koji će komentirati

Ostavite svoj komentar

Vaša email adresa neće biti objavljen. Obavezna polja su označena s *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obvezi.
  5. Pohrana podataka: Baza podataka koju hostira Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.