LCD-skärm: allt du behöver veta

LCD skärm

en LCD-skärm kan vara en lösning för de projekt där du behöver visa information utan att behöva vara beroende av en ständigt ansluten dator. I ett Arduino / Raspberry Pi-projekt kan du använda den seriella porten för att överföra information som visas på skärmen för att få sensoravläsningar, visa en graf, konton etc. Men om ditt projekt ständigt körs eller långt ifrån där du kan ha en dator är LCD-skärmen din räddning.

Tänk dig till exempel att du installerar ett automatiserat bevattningssystem och att du vill kontrollera luftfuktigheten och temperaturavläsningarna när du går till din grönsaks trädgård eller trädgård. Att behöva ta datorn dit för att ansluta Arduino-kortet till datorn är ingen praktisk lösning. I det här fallet kan du ändra din kod så som sagt information visas på LCD-skärmen och till och med lägga till några tangenter eller knappar för att kunna visa annan information.

Vad är en LCD-panel?

En flytande kristallskärm eller LCD-skärm (Liquid Crystal Display) Det är en slags tunn, platt panel som kan visa bilder. Varje panel består av ett visst antal färg- eller svartvita pixlar som placeras framför en ljuskälla. Deras konsumtion är låg, varför de är idealiska för denna typ av DIY-lågeffektelektronikprojekt.

Varje pixel på LCD-skärmen består av ett lager av molekyler inriktade mellan två genomskinliga elektroder och två polarisationsfilter. Mellan polariserande filter finns en flytande kristallskärm, därav dess namn, och förhindrar att ljuset som passerar genom det första filtret blockeras av det andra.

Om du har märkt, när du pekar på en av dessa skärmar bilden är deformerad och en sorts svart fläck dyker upp vid tryckning, det beror på att du utövar tryck på den flytande kristallen och det är inte tillrådligt att göra det ... Du kan sluta med skärmfärger av lägre kvalitet, ojämn fördelning av belysning eller till och med döda pixlar (svarta fläckar eller områden på skärmen som inte försvinner).

LCD-skärmar för Arduino och Raspberry Pi

En LCD-skärm, t.ex. de moduler som finns för elektronik eller för Arduinohar vanligtvis flera kolumner för att visa alfanumeriska tecken eller symboler och en eller två rader för att visa information. Det gör dem mycket mer intressanta än en sju-segment skärm, som måste ansluta flera stift för att bara kunna visa ett enda nummer, symbol eller bokstav. Om du vill visa mer bör du placera flera skärmar.

Istället med en enda LCD-skärm kan du visa mycket mer information. Men du måste känna till pinout för denna typ av moduler för att ansluta dem ordentligt. Jag rekommenderar att du alltid ser databladet för den specifika tillverkaren och modellen som du har eftersom de kan variera.

T.ex. Du kan köpa den här från Adafruit på Amazon, som är en av de mest populära med ett tangentbord och innehåller möjligheten att visa upp till 16 tecken i var och en av dess två rader. Och det finns till och med 20 × 4, eller något mer avancerat ochMulti-tums färg för att visa mer komplexa bilder.

För LCD-skärm av Adafruit 16 × 2 kan du se detta datablad.

För arduino kanske en enklare som den är bättre 16x2 LCD-skärm utan tangentbord. Om du tittar på denna bräda har den 16 stift på baksidan. Om du tar brädet och vänder det upp och ner och tittar på stiften från vänster till höger, har du en pinout:

  • Stift 16: GND för bakgrundsbelysning
  • Stift 15: Vcc för bakgrundsbelysning
  • Stift 7-14: 8-bitars (nästa 8 stift) för att överföra informationen som ska visas på skärmen
  • Pin 6: läs och skriv synkronisering
  • Stift 5. R / W (skriv och läs för data och kommandon)
  • Stift 4: RS (väljare mellan kommandon och data)
  • Stift 3: kontrastkontroll
  • Stift 2: Vcc på 5v för ström
  • Stift 1: GND (0v) för ström

Kom ihåg att när du placerar den i rätt läge är stiften omvända ...

Integration med Arduino

16x2 LCD anslutningsdiagram till Arduino Uno

till anslut den till arduino Det är inte så komplicerat, du bör bara överväga att inkludera ett 220 ohm motstånd för att reglera ingångsspänningen för skärmens effekt och en potentiometer för att modulera skärmkontrasten. Anslut sedan var och en av stiften till Arduino-kortet så att du är klar. Du kan titta på bilden av Fritzing ...

Som du kan se, potentiometern kommer att vara genom vilken den matas LCD-skärmen och kontrasten justeras också. Därför kommer den att länkas till både GND och Vcc på skärmen, samt till bakgrundsbelysningens kontrollinje och kontrastkontroll. Det kanske är det mest komplicerade, då handlar det om att ansluta de återstående stiften till de ingångar / utgångar som du ska använda i ditt projekt.

Programmering med Arduino IDE

För programmering du måste ta hänsyn till vissa särdrag, Tänk på att du inte bara måste veta hur du skickar data utan också flytta den, placera den väl på skärmen etc. Och du bör också använda ett bibliotek som heter LiquidCrystal.h, så länge som din LCD-skärm har en kompatibel Hitachi HD44780-chipset. Du har ett kodexempel här:

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

Mer information - Programmeringshandbok för Arduino (gratis PDF)


Bli först att kommentera

Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.