LCD zaslon: vse, kar morate vedeti

LCD zaslon

A Rešitev je lahko LCD zaslon za tiste projekte, pri katerih morate prikazati informacije, ne da bi morali biti odvisni od nenehno povezanega računalnika. To pomeni, da lahko v projektu Arduino / Raspberry Pi serijska vrata uporabite za prenos informacij, ki so prikazane na zaslonu, da dobite odčitke senzorjev, prikažete graf, račune itd. Če pa vaš projekt nenehno teče ali je daleč od mesta, kjer bi lahko imeli računalnik, je zaslon LCD vaša rešitev.

Predstavljajte si na primer, da namestite avtomatiziran namakalni sistem in bi radi preverjali odčitke vlage in temperature, ko greste na svoj zelenjavni vrt ali vrt. Če bi radi računalnik Arduino priključili na osebni računalnik, računalnik ni praktična rešitev. V tem primeru lahko kodo spremenite tako informacije se prikažejo na LCD zaslonu in celo dodajte nekaj tipk ali gumbov, da lahko prikažete različne informacije.

Kaj je LCD-plošča?

Zaslon s tekočimi kristali oz LCD (zaslon s tekočimi kristali) Gre za nekakšno tanko, ravno ploščo, ki lahko prikazuje slike. Vsaka plošča je sestavljena iz določenega števila barvnih ali enobarvnih pik, ki so nameščene pred svetlobnim virom. Njihova poraba je nizka, zato so idealni za tovrstne elektronske projekte z majhno močjo.

Vsak piksel na LCD zaslonu je sestavljen iz plasti molekul, poravnanih med dvema prozornima elektrodama in dvema polarizacijskima filtroma. Med polarizacijski filtri je zaslon s tekočimi kristali, od tod tudi njegovo ime, in preprečuje, da bi svetloba, ki prehaja skozi prvi filter, blokirala drugi.

Če ste opazili, ko se dotaknete enega od teh zaslonov slika se deformira in ob pritisku se pojavi nekakšen črn madež, to je zato, ker pritiskate na tekoči kristal in ni priporočljivo ... Na koncu lahko dobite manj kakovostne barve zaslona, ​​neenakomerno razporeditev osvetlitve ali celo mrtve slikovne pike (črne lise ali območja na zaslonu, ki ne izginejo).

LCD zasloni za Arduino in Raspberry Pi

LCD zaslon, kot npr moduli, ki obstajajo za elektroniko ali za Arduino, ponavadi ima več stolpcev za prikaz alfanumeričnih znakov ali simbolov in eno ali dve vrstici za prikaz informacij. Zaradi tega so veliko bolj zanimivi kot sedemsegmentni zaslon, ki bi moral povezati več nožic, da bi lahko prikazal samo eno številko, simbol ali črko. Če želite prikazati več, postavite več zaslonov.

Namesto tega lahko z enim samim LCD zaslonom prikažete veliko več informacij. Za pravilno povezavo pa morate dobro poznati pinout te vrste modulov. Priporočam, da vedno vidite podatkovni list proizvajalca in posebnega modela ki jih imate, saj se lahko razlikujejo.

Npr Tega lahko kupite pri Adafruit na Amazonu, ki je ena najbolj priljubljenih s tipkovnico in vsebuje možnost prikaza do 16 znakov v vsaki od svojih dveh vrstic. In obstajajo celo 20 × 4 ali kaj bolj naprednega inVečpalčna barva za prikaz bolj zapletenih slik.

Za LCD zaslon z Adafruit 16 × 2 si lahko ogledate ta podatkovni list...

Za arduino morda je bolj preprost, kot je ta, boljši LCD zaslon 16x2 brez tipkovnice. Če pogledate to ploščo, ima na zadnji strani 16 nožic. Če vzamete desko in jo obrnete na glavo ter si ogledate nožice od leve proti desni, imate pinout:

  • Zatič 16: GND za osvetlitev ozadja
  • Pin 15: Vcc za osvetlitev ozadja
  • Pin 7-14: 8-bitni (naslednjih 8 nožic) za prenos informacij, ki bodo prikazane na zaslonu
  • Zatič 6: sinhronizacija branja in pisanja
  • Pin 5. R / W (pisanje in branje za podatke in ukaze)
  • Pin 4: RS (izbirnik med ukazi in podatki)
  • Pin 3: nadzor kontrasta
  • Pin 2: Vcc 5v za napajanje
  • Pin 1: GND (0v) za napajanje

Ne pozabite, da se zatiči, ko ga postavite v pravi položaj, obrnejo ...

Integracija z Arduinom

Shema povezave LCD 16x2 do Arduino Uno

za ga priključite na arduino Ni preveč zapleteno, razmislite le o vključitvi 220 ohmskega upora za regulacijo vhodne napetosti za moč zaslona in potenciometra za moduliranje kontrasta zaslona. Nato vsak zatič ustrezno priključite na ploščo Arduino in končali ste. Lahko si ogledate podobo Fritzinga ...

Kot lahko vidite, potenciometer bo skozi katerega se bo napajal nastavljen bo tudi LCD zaslon in kontrast. Zato bo povezan z GND in Vcc zaslona, ​​pa tudi z linijo za nadzor osvetlitve ozadja in kontrolo kontrasta. Morda je to najbolj zapleteno, potem gre za povezovanje preostalih zatičev z vhodi / izhodi, ki jih boste uporabili v svojem projektu.

Programiranje z Arduino IDE

Za programiranje upoštevati morate nekatere posebnosti, Upoštevajte, da morate ne samo vedeti, kako poslati podatke, temveč jih tudi premakniti, dobro postaviti na zaslon itd. Uporabiti morate tudi knjižnico z imenom LiquidCrystal.h, če ima vaš LCD zaslon združljiv nabor čipov Hitachi HD44780. Tu imate primer kode:

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

Več informacij - Priročnik za programiranje Arduino (brezplačen PDF)


Bodite prvi komentar

Pustite svoj komentar

Vaš e-naslov ne bo objavljen. Obvezna polja so označena z *

*

*

  1. Za podatke odgovoren: Miguel Ángel Gatón
  2. Namen podatkov: Nadzor neželene pošte, upravljanje komentarjev.
  3. Legitimacija: Vaše soglasje
  4. Sporočanje podatkov: Podatki se ne bodo posredovali tretjim osebam, razen po zakonski obveznosti.
  5. Shranjevanje podatkov: Zbirka podatkov, ki jo gosti Occentus Networks (EU)
  6. Pravice: Kadar koli lahko omejite, obnovite in izbrišete svoje podatke.