LCD zaslon: sve što trebate znati

LCD ekran

Una LCD zaslon može biti rješenje za one projekte u kojima trebate prikazati informacije, a da ne morate ovisiti o stalno povezanom računaru. Odnosno, u projektu Arduino / Raspberry Pi možete koristiti serijski port za prijenos informacija koje se prikazuju na ekranu da 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čunar, LCD zaslon je vaš spas.

Na primjer, zamislite da instalirate automatizirani sistem za navodnjavanje i željeli biste provjeriti očitanje vlažnosti i temperature kada idete u svoj povrtnjak ili vrt. Morati odvesti računalo tamo da biste Arduino ploču povezali sa računarom nije praktično rješenje. U ovom slučaju, možete izmijeniti svoj kod tako da kaže informacije se prikazuju na LCD ekranu pa čak i dodati neke tipke ili tipke da biste mogli prikazati različite informacije.

Šta je LCD panel?

Ekran sa tečnim kristalima ili LCD (Liquid Crystal Display) To je vrsta tankog, ravnog panela koji može prikazivati ​​slike. Svaka ploča sastoji se 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 ekranu sastoji se od sloja molekula poredanih između dvije prozirne elektrode i dva polarizaciona filtra. Između polarizacijski filtri postoji zaslon sa tečnim kristalima, otuda i njegovo ime, i sprečava da svjetlost koja prolazi kroz prvi filtar blokira drugi.

Takođe, ako ste primijetili, kada dodirnete jedan od ovih ekrana slika se deformira i pri pritisku se pojavljuje neka vrsta crne mrlje, to jest zato što vršite pritisak na tečni kristal i nije preporučljivo to učiniti ... Možda ćete na kraju dobiti niže boje ekrana, neravnomjernu raspodjelu osvjetljenja ili čak mrtve piksele (crne mrlje ili područja na ekranu koja ne nestaju).

LCD ekrani za Arduino i Raspberry Pi

LCD ekran, 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 reda 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 ekrana.

Umjesto toga, s jednim LCD zaslonom možete prikazati mnogo 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 oni mogu razlikovati.

Na primjer, Ovu možete kupiti od kompanije Adafruit na Amazonu, koja je jedna od najpopularnijih kod tastature i sadrži mogućnost prikazivanja do 16 znakova u svakoj od svoje dve linije. A postoje čak i 20 × 4, ili nešto naprednije iViše inča u boji za prikaz složenijih slika.

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

Za arduino možda je jednostavniji poput ovog bolji LCD ekran od 16x2 bez tastature. Ako pogledate ovu ploču, ona ima 16 igla na poleđini. Ako uzmete ploču 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 ekranu
  • Pin 6: sinhronizacija č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 povezivanja na Arduino Uno

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

Kao što možete vidjeti, potenciometar će biti kroz koji će se napajati LCD zaslon i kontrast će se također prilagoditi. Zbog toga će biti povezan i sa GND i Vcc zaslona, ​​kao i sa linijom upravljanja pozadinskim osvjetljenjem i kontrolom kontrasta. Možda je to najkompliciranije, onda je stvar povezivanja preostalih pinova na ulaze / izlaze koje ćete koristiti u svom projektu.

Programiranje sa Arduino IDE

Za programiranje morate uzeti u obzir neke posebnosti, Imajte na umu da podatke morate ne samo znati slati, već ih i premještati, dobro postavljati na ekran itd. A trebali biste koristiti i biblioteku 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 komentarišete

Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  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 obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.