LCD-skjerm: alt du trenger å vite

LCD skjerm

en LCD-skjerm kan være en løsning for de prosjektene der du trenger å vise informasjon uten å være avhengig av en datamaskin som er konstant tilkoblet. Det vil si at i et Arduino / Raspberry Pi-prosjekt kan du bruke den serielle porten til å overføre informasjon som vises på skjermen for å få sensoravlesninger, vise en graf, kontoer, etc. Men hvis prosjektet ditt stadig kjører eller langt fra der du kan ha en datamaskin, er LCD-skjermen din frelse.

Tenk deg for eksempel at du installerer et automatisk vanningsanlegg, og du vil sjekke fuktighets- og temperaturavlesning når du går til grønnsakshagen eller hagen din. Å måtte ta datamaskinen dit for å koble Arduino-kortet til PC-en er ikke en praktisk løsning. I dette tilfellet kan du endre koden slik at det er sagt informasjon vises på LCD-skjermen og til og med legge til noen taster eller knapper for å kunne vise annen informasjon.

Hva er et LCD-panel?

En flytende krystallskjerm eller LCD-skjerm (flytende krystallskjerm) Det er en slags tynn, flatskjerm som kan vise bilder. Hvert panel består av et visst antall farger eller monokrome piksler som er plassert foran en lyskilde. Forbruket deres er lavt, og det er derfor de er ideelle for denne typen DIY laveffekt elektronikkprosjekter.

Hver piksel på LCD-skjermen består av et lag med molekyler som er justert mellom to gjennomsiktige elektroder og to polarisasjonsfiltre. Mellom polariserende filtre er det et flytende krystall display, derav navnet, og forhindrer at lyset som passerer gjennom det første filteret blokkeres av det andre.

Hvis du har lagt merke til det, når du berører en av disse skjermene bildet er deformert og det vises en slags svart flekk når du trykker på, det er fordi du utøver press på den flytende krystallen, og det anbefales ikke å gjøre det ... Du kan ende opp med skjermfarger av lavere kvalitet, ujevn lysfordeling eller til og med døde piksler (svarte flekker eller områder på skjermen som ikke forsvinner).

LCD-skjermer for Arduino og Raspberry Pi

En LCD-skjerm, for eksempel modulene som finnes for elektronikk eller for Arduino, har vanligvis flere kolonner for å vise alfanumeriske tegn eller symboler og en eller to rader for å vise informasjon. Det gjør dem mye mer interessante enn en syv segmentskjerm, som må koble til flere pinner for bare å kunne vise et enkelt tall, symbol eller bokstav. Hvis du vil vise mer, bør du plassere flere skjermer.

I stedet for, med en enkelt LCD-skjerm, kan du vise mye mer informasjon. Men du må vite pinout av denne typen moduler for å koble dem riktig. Jeg anbefaler at du alltid ser databladet til produsenten og den spesifikke modellen som du har da de kan variere.

Eg Du kan kjøpe denne fra Adafruit på Amazon, som er en av de mest populære med et tastatur og inneholder muligheten til å vise opptil 16 tegn i hver av de to linjene. Og det er til og med 20 × 4, eller noe mer avansert ogMulti-tommers farge for å vise mer komplekse bilder.

For LCD-skjerm av Adafruit 16 × 2 kan du se dette databladet...

For arduino kanskje en enklere som den er bedre 16x2 LCD-skjerm uten tastatur. Hvis du ser på dette brettet, har det 16 pinner på baksiden. Hvis du tar brettet og snur det på hodet og ser på pinnene fra venstre til høyre, har du en pinout:

  • Pin 16: GND for bakgrunnsbelysning
  • Pin 15: Vcc for bakgrunnsbelysning
  • Pin 7-14: 8-bit (neste 8 pins) for å overføre informasjonen som skal vises på skjermen
  • Pin 6: les og skriv synkronisering
  • Pin 5. R / W (skriv og les for data og kommandoer)
  • Pin 4: RS (velger mellom kommandoer og data)
  • Pin 3: kontrastkontroll
  • Pin 2: Vcc på 5v for strømforsyning
  • Pin 1: GND (0v) for strøm

Husk at når du plasserer den i riktig posisjon, er pinnene omvendt ...

Integrasjon med Arduino

16x2 LCD tilkoblingsskjema til Arduino Uno

Til koble den til arduino Det er ikke så komplisert, du må bare vurdere å inkludere en 220 ohm motstand for å regulere inngangsspenningen for skjermeffekten, og et potensiometer for å modulere skjermkontrasten. Koble deretter hver av pinnene riktig til Arduino-kortet, så er du ferdig. Du kan se på bildet av Fritzing ...

Som du kan se, potensiometeret vil være det det vil bli matet gjennom LCD-skjermen og kontrasten blir også justert. Derfor vil den være koblet til både GND og Vcc på skjermen, samt kontrollampen for bakgrunnsbelysning og kontrastkontroll. Kanskje det er det mest kompliserte, så er det et spørsmål om å koble de resterende pinnene til inngangene / utgangene du skal bruke i prosjektet ditt.

Programmering med Arduino IDE

For programmering du må ta hensyn til noen særegenheter, Husk at du ikke bare må vite hvordan du sender data, men også flytte den, plassere den godt på skjermen osv. Og du bør også bruke et bibliotek som heter LiquidCrystal.h, så lenge LCD-skjermen har et kompatibelt Hitachi HD44780-brikkesett. 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);
  }
}

Mer informasjon - Programmeringshåndbok for Arduino (gratis PDF)


Bli den første til å kommentere

Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.