LCD-scherm: alles wat u moet weten

LCD scherm

een LCD-scherm kan een oplossing zijn voor die projecten waarin u informatie moet weergeven zonder afhankelijk te zijn van een constant verbonden computer. Dat wil zeggen, in een Arduino / Raspberry Pi-project kunt u de seriële poort gebruiken om informatie te verzenden die op het scherm wordt weergegeven om sensoruitlezingen te krijgen, een grafiek, accounts, enz. Maar als uw project constant loopt of ver verwijderd is van waar u een computer kunt hebben, is het LCD-scherm uw redding.

Stel je voor dat je een geautomatiseerd irrigatiesysteem installeert en je wilt graag de vochtigheids- en temperatuurmetingen controleren als je naar je moestuin of tuin gaat. De computer daarheen moeten brengen om het Arduino-bord op de pc aan te sluiten, is geen praktische oplossing. In dit geval kunt u uw code zo wijzigen informatie wordt weergegeven op het LCD-scherm en voeg zelfs enkele toetsen of knoppen toe om verschillende informatie weer te geven.

Wat is een LCD-paneel?

Een liquid crystal display of LCD (Liquid Crystal Display) Het is een soort dun, plat paneel dat afbeeldingen kan weergeven. Elk paneel bestaat uit een bepaald aantal kleur- of zwart-witpixels die voor een lichtbron worden geplaatst. Hun verbruik is laag, daarom zijn ze ideaal voor dit soort doe-het-zelf-elektronicaprojecten met laag vermogen.

Elke pixel op het LCD-scherm bestaat uit een laag moleculen die zijn uitgelijnd tussen twee transparante elektroden en twee polarisatiefilters. Tussen polarisatiefilters is er een liquid crystal display, vandaar de naam, en voorkomt dat het licht dat door het eerste filter gaat, wordt geblokkeerd door het tweede.

Als je het hebt gemerkt, wanneer u een van deze schermen aanraakt het beeld is vervormd en er verschijnt een soort zwarte vlek bij het persen, dat komt doordat je druk uitoefent op het vloeibaar kristal en het is niet aan te raden om dit te doen ... Je kan resulteren in schermkleuren van mindere kwaliteit, ongelijke lichtverdeling of zelfs dode pixels (zwarte vlekken of gebieden op het scherm die niet verdwijnen).

LCD-schermen voor Arduino en Raspberry Pi

Een lcd-scherm, zoals de modules die er zijn voor elektronica of voor Arduino, heeft meestal meerdere kolommen om alfanumerieke tekens of symbolen weer te geven en een of twee rijen om informatie weer te geven. Dat maakt ze veel interessanter dan een display met zeven segmenten, dat meerdere pinnen zou moeten verbinden om slechts één cijfer, symbool of letter te kunnen weergeven. Wil je meer laten zien, plaats dan meerdere displays.

In plaats daarvan kunt u met één LCD-scherm veel meer informatie weergeven. Maar je moet de pin-out van dit type modules goed kennen om ze goed te kunnen verbinden. Ik raad je aan om altijd te zien het gegevensblad van de specifieke fabrikant en het model die je hebt, aangezien ze kunnen variëren.

Bv Je kunt deze bij Adafruit op Amazon kopen, dat een van de meest populaire is met een toetsenbord en de mogelijkheid biedt om tot 16 tekens op elk van de twee regels weer te geven. En er zijn zelfs 20 × 4, of iets geavanceerder enMulti-inch kleur om complexere afbeeldingen weer te geven.

Voor LCD-scherm van Adafruit 16 × 2 kun je dit datasheet bekijken...

Voor Arduino misschien is een eenvoudigere zoals die beter 16x2 LCD-scherm zonder toetsenbord. Als je naar dit bord kijkt, heeft het 16 pinnen aan de achterkant. Als je het bord neemt en het ondersteboven draait en van links naar rechts naar de pinnen kijkt, heb je een pin-out:

  • Pin 16: GND voor achtergrondverlichting
  • Pin 15: Vcc voor achtergrondverlichting
  • Pin 7-14: 8-bit (volgende 8 pinnen) om de informatie te verzenden die op het scherm moet worden weergegeven
  • Pin 6: lees- en schrijfsynchronisatie
  • Pin 5. R / W (schrijven en lezen voor gegevens en opdrachten)
  • Pin 4: RS (selector tussen commando's en data)
  • Pin 3: contrastregeling
  • Pin 2: Vcc van 5v voor stroom
  • Pin 1: GND (0v) voor stroom

Onthoud dat wanneer u het in de juiste positie plaatst, de pinnen zijn omgekeerd ...

Integratie met Arduino

16x2 LCD-aansluitschema naar Arduino Uno

naar verbind het met arduino Het is niet al te ingewikkeld, je zou alleen moeten overwegen om een ​​weerstand van 220 ohm toe te voegen om de ingangsspanning voor het schermvermogen te regelen, en een potentiometer om het schermcontrast te moduleren. Verbind vervolgens elk van de pinnen op de juiste manier met het Arduino-bord en je bent klaar. Je kunt naar de afbeelding van Fritzing kijken ...

Zoals je kan zien, de potentiometer zal zijn waardoor het wordt gevoed het LCD-scherm en het contrast worden ook aangepast. Daarom wordt het gekoppeld aan zowel GND als Vcc van het display, evenals aan de regellijn voor achtergrondverlichting en contrastregeling. Misschien is dat het meest gecompliceerd, dan is het een kwestie van de overige pinnen aansluiten op de inputs / outputs die je in je project gaat gebruiken.

Programmeren met Arduino IDE

Voor programmeren u moet rekening houden met enkele eigenaardigheden, Houd er rekening mee dat u niet alleen moet weten hoe u gegevens moet verzenden, maar ook moet kunnen verplaatsen, goed op het scherm moet plaatsen, enz. En je moet ook een bibliotheek gebruiken met de naam LiquidCrystal.h, zolang uw LCD-scherm een ​​compatibele Hitachi HD44780-chipset heeft. Je hebt hier een codevoorbeeld:

#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 informatie - Arduino-programmeerhandleiding (gratis pdf)


Wees de eerste om te reageren

Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.