LCD-skærm: alt hvad du behøver at vide

LCD-skærm

en LCD-skærm kan være en løsning til de projekter, hvor du har brug for at få vist oplysninger uden at være afhængig af en konstant tilsluttet computer. I et Arduino / Raspberry Pi-projekt kan du bruge den serielle port til at overføre information, der vises på skærmen for at få sensoraflæsninger, vise en graf, konti osv. Men hvis dit projekt konstant kører eller langt fra hvor du kan have en computer, er LCD-skærmen din frelse.

Forestil dig for eksempel, at du installerer et automatiseret vandingssystem, og du vil gerne kontrollere fugtigheds- og temperaturmålingerne, når du går til din køkkenhave eller have. At skulle tage computeren derhen for at forbinde Arduino-kortet til pc'en er ikke en praktisk løsning. I dette tilfælde kan du ændre din kode, så det er sagt information vises på LCD-skærmen og tilføj endda nogle taster eller knapper for at kunne vise forskellige oplysninger.

Hvad er et LCD-panel?

Et display med flydende krystaller eller LCD (Liquid Crystal Display) Det er en slags tyndt, fladt panel, der kan vise billeder. Hvert panel består af et bestemt antal farver eller monokrome pixels, der er placeret foran en lyskilde. Deres forbrug er lavt, hvorfor de er ideelle til denne type DIY laveffekt elektronikprojekter.

Hver pixel på LCD-skærmen består af et lag af molekyler, der er justeret mellem to transparente elektroder og to polarisationsfiltre. Mellem polariserende filtre er der et flydende krystal display, deraf navnet, og forhindrer, at lyset, der passerer gennem det første filter, blokeres af det andet.

Også, hvis du har bemærket, når du berører en af ​​disse skærme billedet er deformeret, og der vises en slags sort plet, når du trykker på det, fordi du udøver pres på den flydende krystal, og det tilrådes ikke at gøre det ... Du kan ende med at få skærmfarver af lavere kvalitet, ujævn fordeling af belysning eller endda døde pixels (sorte pletter eller områder på skærmen, der ikke forsvinder).

LCD-skærme til Arduino og Raspberry Pi

En LCD-skærm, f.eks de moduler, der findes til elektronik eller til Arduinohar typisk flere kolonner for at vise alfanumeriske tegn eller symboler og en eller to rækker for at få vist oplysninger. Det gør dem meget mere interessante end et syv segment display, som skal forbinde flere ben for kun at kunne vise et enkelt nummer, symbol eller bogstav. Hvis du vil vise mere, skal du placere flere skærme.

I stedet for kan du med en enkelt LCD-skærm vise meget mere information. Men du skal kende pinout af denne type moduler godt for at forbinde dem ordentligt. Jeg anbefaler, at du altid ser databladet fra producenten og den specifikke model som du har, da de kan variere.

Fx Du kan købe denne fra Adafruit på Amazon, som er et af de mest populære med et tastatur og indeholder muligheden for at vise op til 16 tegn i hver af sine to linjer. Og der er endda 20 × 4, eller noget mere avanceret ogMulti-tommer farve for at vise mere komplekse billeder.

Til LCD-skærm af Adafruit 16 × 2 kan du se dette datablad...

Til arduino måske er en enklere som den bedre 16x2 LCD-skærm uden tastatur. Hvis du ser på dette bræt, har det 16 ben på bagsiden. Hvis du tager tavlen og vender den på hovedet og ser på dens ben fra venstre mod højre, har du en pinout:

  • Pin 16: GND til baggrundsbelysning
  • Pin 15: Vcc til baggrundslys
  • Pin 7-14: 8-bit (næste 8 pins) for at overføre de oplysninger, der skal vises på skærmen
  • Pin 6: læs og skriv synkronisering
  • Pin 5. R / W (skriv og læs for data og kommandoer)
  • Pin 4: RS (vælger mellem kommandoer og data)
  • Pin 3: Kontrastkontrol
  • Pin 2: Vcc på 5v til strøm
  • Pin 1: GND (0v) til strøm

Husk, at når du placerer den i sin korrekte position, vender stifterne om ...

Integration med Arduino

16x2 LCD tilslutningsdiagram til Arduino Uno

til tilslut det til arduino Det er ikke for kompliceret, du skal bare overveje at inkludere en 220 ohm modstand for at regulere indgangsspændingen til skærmens effekt og et potentiometer for at modulere skærmens kontrast. Forbind derefter hver af benene korrekt til Arduino-kortet, og du er færdig. Du kan se på billedet af Fritzing ...

Som du kan se, potentiometeret vil være gennem hvilket det tilføres LCD-skærmen og kontrasten justeres også. Derfor vil den være knyttet til både GND og Vcc på skærmen såvel som til baggrundsbelysningskontrollinjen og kontrastkontrol. Måske er det mest komplicerede, så er det et spørgsmål om at forbinde de resterende ben til de input / output, som du skal bruge i dit projekt.

Programmering med Arduino IDE

Til programmering du skal tage højde for nogle særegenheder, Husk, at du ikke kun skal vide, hvordan du sender data, men også flytte dem, placere dem godt på skærmen osv. Og du skal også bruge et bibliotek kaldet LiquidCrystal.h, så længe din LCD-skærm har et kompatibelt Hitachi HD44780-chipsæt. Du har et kodeeksempel her:

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

Mere information - Arduino programmeringsvejledning (gratis PDF)


Vær den første til at kommentere

Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.