Ekran LCD: gjithçka që duhet të dini

Ekran LCD

një Ekrani LCD mund të jetë një zgjidhje për ato projekte në të cilat duhet të shfaqni informacione pa qenë e nevojshme të vareni nga një kompjuter i lidhur vazhdimisht. Kjo është, në një projekt Arduino / Raspberry Pi, ju mund të përdorni portin serik për të transmetuar informacion që shfaqet në ekran për të marrë lexime të sensorit, për të treguar një grafik, llogari, etj. Por nëse projekti juaj po funksionon vazhdimisht ose larg vendit ku mund të keni një kompjuter, ekrani LCD është shpëtimi juaj.

Për shembull, imagjinoni që instaloni një sistem të automatizuar të ujitjes dhe dëshironi të kontrolloni leximin e lagështisë dhe temperaturës kur shkoni në kopshtin ose kopshtin tuaj të perimeve. Duhet të marrësh kompjuterin atje për të lidhur bordin Arduino me PC nuk është një zgjidhje praktike. Në këtë rast, ju mund të modifikoni kodin tuaj në mënyrë që thuhet informacioni shfaqet në ekranin LCD dhe madje shtoni disa çelësa ose butona për të qenë në gjendje të tregoni informacione të ndryshme.

Çfarë është një panel LCD?

Një ekran me kristal të lëngët ose LCD (Ekran me Liquid Crystal) Shtë një lloj paneli i hollë dhe i sheshtë që mund të shfaqë imazhe. Secili panel përbëhet nga një numër i caktuar pikselësh me ngjyra ose pikturë njëngjyrëshe që vendosen përpara një burimi drite. Konsumi i tyre është i ulët, prandaj janë ideale për këtë lloj projekti elektronik DIY me fuqi të ulët.

Çdo piksel në ekranin LCD përbëhet nga një shtresë molekulash të rreshtuar midis dy elektrodave transparente dhe dy filtrave të polarizimit. Ndërmjet filtrat polarizues ka një ekran me kristal të lëngët, prandaj dhe emri i tij, dhe parandalon që drita që kalon përmes filtrit të parë të bllokohet nga e dyta.

Gjithashtu, nëse e keni vërejtur, kur prekni njërën nga këto ekrane imazhi është deformuar dhe shfaqet një lloj njolle e zezë kur shtypni, kjo është për shkak se po ushtroni presion mbi kristalin e lëngshëm dhe nuk këshillohet ta bëni këtë ... Ju mund të përfundoni me ngjyra të ekranit me cilësi më të ulët, shpërndarje të pabarabartë të ndriçimit apo edhe piksele të vdekura (njolla të zeza ose zona në ekran që nuk zhduken).

Ekranet LCD për Arduino dhe Raspberry Pi

Një ekran LCD, si p.sh. modulet që ekzistojnë për elektronikën ose për Arduino, zakonisht ka kolona të shumta për të shfaqur karaktere alfanumerike ose simbole dhe një ose dy rreshta për të shfaqur informacionin. Kjo i bën ata shumë më interesant sesa një ekran me shtatë segmente, i cili do të duhet të lidhë disa kunja për të qenë në gjendje të shfaqë vetëm një numër të vetëm, simbol ose shkronjë. Nëse dëshironi të tregoni më shumë, duhet të vendosni disa ekrane.

Në vend të kësaj, me një ekran të vetëm LCD mund të shfaqni shumë më tepër informacion. Por duhet ta dini mirë pinout-in e këtij lloji të moduleve për t'i lidhur ato siç duhet. Unë ju rekomandoj që gjithmonë të shihni fleta e të dhënave e prodhuesit dhe modeli specifik që keni pasi ato mund të ndryshojnë.

P.sh. Këtë mund ta blini nga Adafruit në Amazon, e cila është një nga më të njohurat me një tastierë dhe përmban mundësinë e shfaqjes së deri në 16 karaktere në secilën nga dy linjat e saj. Dhe ka edhe 20 × 4, ose diçka më të përparuar dheNgjyrë shumë inç për të shfaqur imazhe më komplekse.

Për ekran LCD të Adafruit 16 × 2 mund ta shihni këtë fletë të dhënash...

Për arduino mbase një më e thjeshtë si ajo është më e mirë Ekran LCD 16x2 pa tastierë. Nëse shikoni këtë tabelë, ajo ka 16 kunja në anën e pasme. Nëse e merrni tabelën dhe e ktheni me kokë poshtë dhe shikoni kunjat e saj nga e majta në të djathtë, keni një pinout:

  • Pin 16: GND për dritën e pasme
  • Pin 15: KQV për ndriçimin e pasëm
  • Pin 7-14: 8-bit (8 kunjat e ardhshëm) për të transmetuar informacionin që do të shfaqet në ekran
  • Pin 6: lexoni dhe shkruani sinkronizimin
  • Pin 5. R / W (shkruaj dhe lexo për të dhëna dhe komanda)
  • Pin 4: RS (përzgjedhësi midis komandave dhe të dhënave)
  • Pin 3: kontrolli i kontrastit
  • Pin 2: Vcc me 5v për energji
  • Pin 1: GND (0v) për energji

Mos harroni se kur e vendosni në pozicionin e saj të saktë kunjat kthehen mbrapsht ...

Integrimi me Arduino

Diagrami i lidhjes LCD 16x2 në Arduino Uno

lidheni atë me arduino Nuk është shumë e komplikuar, thjesht duhet të merrni në konsideratë përfshirjen e një rezistence 220 ohm për të rregulluar tensionin e hyrjes për fuqinë e ekranit dhe një potenciometër për të moduluar kontrastin e ekranit. Pastaj lidhni secilën nga kunjat në bordin Arduino në mënyrë të përshtatshme dhe keni mbaruar. Ju mund të shikoni në imazhin e Fritzing ...

Siç mund ta shihni, potenciometri do të jetë përmes të cilit do të ushqehet ekrani LCD dhe kontrasti gjithashtu do të rregullohen. Prandaj, ai do të lidhet si me GND dhe Vcc të ekranit, ashtu edhe me vijën e kontrollit të dritës së pasme dhe kontrollin e kontrastit. Ndoshta kjo është më e komplikuara, atëherë bëhet fjalë për lidhjen e këmbëve të mbetura me hyrjet / daljet që do të përdorni në projektin tuaj.

Programimi me Arduino IDE

Për programim ju duhet të merrni parasysh disa veçori, Mbani në mend se jo vetëm që duhet të dini të dërgoni të dhëna, por edhe t'i lëvizni ato, t'i vendosni mirë në ekran, etj. Dhe gjithashtu duhet të përdorni një bibliotekë të quajtur Kristali i Lëngshëm.h, për sa kohë që ekrani juaj LCD ka një chipset të përputhshëm Hitachi HD44780. Ju keni një shembull kodi këtu:

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

Më shumë informacion - Manuali i Programimit Arduino (PDF falas)


Bëhu i pari që komenton

Lini komentin tuaj

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar me *

*

*

  1. Përgjegjës për të dhënat: Miguel Ángel Gatón
  2. Qëllimi i të dhënave: Kontrolloni SPAM, menaxhimin e komenteve.
  3. Legjitimimi: Pëlqimi juaj
  4. Komunikimi i të dhënave: Të dhënat nuk do t'u komunikohen palëve të treta përveç me detyrim ligjor.
  5. Ruajtja e të dhënave: Baza e të dhënave e organizuar nga Occentus Networks (BE)
  6. Të drejtat: Në çdo kohë mund të kufizoni, rikuperoni dhe fshini informacionin tuaj.