LCD-skerm: alles wat u moet weet

LCD-skerm

'n LCD-skerm kan 'n oplossing wees vir die projekte waarin u inligting moet vertoon sonder om afhanklik te wees van 'n rekenaar wat konstant verbind is. Dit wil sê, in 'n Arduino / Raspberry Pi-projek kan u die seriële poort gebruik om inligting wat op die skerm vertoon word, uit te stuur om sensorlesings te kry, 'n grafiek, rekeninge, ens. Te toon. Maar as u projek voortdurend aan die gang is of ver van waar u 'n rekenaar kan hê, is die LCD-skerm u redding.

Stel u voor dat u 'n outomatiese besproeiingstelsel installeer en dat u die vogtigheids- en temperatuurmetings wil nagaan as u na u groentetuin of tuin gaan. Om die rekenaar daarheen te moet neem om die Arduino-bord aan die rekenaar te koppel, is nie 'n praktiese oplossing nie. In hierdie geval kan u u kode so verander inligting word op die LCD-skerm vertoon en voeg selfs 'n paar sleutels of knoppies by om verskillende inligting te kan vertoon.

Wat is 'n LCD-paneel?

N vloeibare kristal vertoon of LCD (Liquid Crystal Display) Dit is 'n soort dun, plat paneel wat beelde kan vertoon. Elke paneel bestaan ​​uit 'n sekere aantal kleur- of monochroompiksels wat voor 'n ligbron geplaas word. Die verbruik daarvan is laag, daarom is dit ideaal vir hierdie soort DIY-lae-krag elektroniese projekte.

Elke pixel op die LCD-skerm bestaan ​​uit 'n laag molekules wat in lyn is tussen twee deursigtige elektrode en twee polarisasiefilters. Tussen polariserende filters is daar 'n vloeibare kristal vertoon, vandaar sy naam, en voorkom dat die lig wat deur die eerste filter gaan, deur die tweede geblokkeer word.

As u dit opgemerk het, as u een van hierdie skerms raak die beeld is vervorm en 'n soort swart vlek verskyn wanneer u druk, dit is omdat u druk op die vloeibare kristal uitoefen en dit nie raadsaam is om dit te doen nie ... U kan uiteindelik skermkleure van 'n laer gehalte hê, ongelyke verspreiding van die beligting of selfs dooie pixels (swart kolle of dele op die skerm wat nie verdwyn nie).

LCD-skerms vir Arduino en Raspberry Pi

'N LCD-skerm, soos die modules wat bestaan ​​vir elektronika of vir Arduino, het meestal verskeie kolomme om alfanumeriese karakters of simbole te vertoon en een of twee rye om inligting te vertoon. Dit maak hulle baie interessanter as 'n sewe-segment-skerm, wat verskeie penne moet koppel om slegs een nommer, simbool of letter te kan vertoon. As u meer wil wys, moet u verskeie uitstallings plaas.

In plaas daarvan, met 'n enkele LCD-skerm, kan u baie meer inligting vertoon. Maar u moet die uitwerking van hierdie tipe modules goed ken om dit behoorlik aan te sluit. Ek beveel aan dat u altyd sien die datablad van die vervaardiger en spesifieke model wat u het, aangesien dit kan wissel.

Bv. U kan hierdie een by Adafruit op Amazon koop, wat een van die gewildste met 'n sleutelbord is en die moontlikheid bevat om tot 16 karakters in elk van sy twee reëls te vertoon. En daar is selfs 20 × 4, of iets meer gevorderd enMulti-inch kleur om meer komplekse beelde te vertoon.

Vir LCD skerm van Adafruit 16 × 2 kan u hierdie gegewensblad sien...

Vir arduino miskien is 'n eenvoudiger een soos die een beter 16x2 LCD-skerm sonder sleutelbord. As jy na hierdie bord kyk, het dit 16 penne aan die agterkant. As u die bord neem en dit onderstebo draai en van links na regs na sy penne kyk, het u 'n pinout:

  • Speld 16: GND vir agterlig
  • Speld 15: Vcc vir agterlig
  • Speld 7-14: 8-bis (volgende 8 penne) om die inligting wat op die skerm vertoon moet word, oor te dra
  • Speld 6: lees en skryf sinkronisasie
  • Speld 5. R / W (skryf en lees vir data en opdragte)
  • Speld 4: RS (kies tussen opdragte en data)
  • Speld 3: kontrasbeheer
  • Speld 2: Vcc van 5v vir krag
  • Speld 1: GND (0v) vir krag

Onthou dat die penne omgekeer word as u dit in die regte posisie plaas ...

Integrasie met Arduino

16x2 LCD koppelingsdiagram aan Arduino Uno

om koppel dit aan arduino Dit is nie te ingewikkeld nie; u moet slegs 'n weerstand van 220 ohm insluit om die insetspanning vir die skermkrag te reguleer, en 'n potensiometer om die skermkontras te moduleer. Verbind dan elkeen van die penne op die Arduino-bord op die regte manier en dan is u klaar. U kan na die beeld van Fritzing kyk ...

Soos jy kan sien, die potensiometer sal wees waardeur dit gevoer word die LCD-skerm en die kontras sal ook verstel word. Daarom sal dit gekoppel word aan beide GND en Vcc van die skerm, sowel as aan die kontrole-lyn en die kontrasbeheer. Miskien is dit die ingewikkeldste, dan is dit die kwessie om die oorblywende penne aan te sluit op die insette / uitsette wat u in u projek gaan gebruik.

Programmering met Arduino IDE

Vir programmering u moet 'n paar eienaardighede in ag neem, Hou in gedagte dat u nie net moet weet hoe om data te stuur nie, maar dit ook moet skuif, dit goed op die skerm moet plaas, ens. En gebruik ook 'n biblioteek genaamd LiquidCrystal.h, solank u LCD-skerm 'n versoenbare Hitachi HD44780-skyfiestel het. U het 'n kode-voorbeeld hier:

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

Meer inligting - Arduino-programmeerhandleiding (gratis PDF)


Die inhoud van die artikel voldoen aan ons beginsels van redaksionele etiek. Klik op om 'n fout te rapporteer hier.

Wees die eerste om te kommentaar lewer

Laat u kommentaar

Jou e-posadres sal nie gepubliseer word nie. Verpligte velde gemerk met *

*

*

  1. Verantwoordelik vir die data: Miguel Ángel Gatón
  2. Doel van die data: Beheer SPAM, bestuur van kommentaar.
  3. Wettiging: U toestemming
  4. Kommunikasie van die data: Die data sal nie aan derde partye oorgedra word nie, behalwe deur wettige verpligtinge.
  5. Datastoor: databasis aangebied deur Occentus Networks (EU)
  6. Regte: U kan u inligting te alle tye beperk, herstel en verwyder.