Hopp til innhald
Nynorsk

Emne

Sensorer og aktuatorer

Fagstoff

Display 16 x 2

Ein Arduino kan skrive informasjon på ein skjerm slik at du kan få informasjon om kva du skal gjere, eller få informasjon om variablar Arduinoen har henta inn.

Beskriving

Eit 16 x 2 LCD-display er eit vanleg og enkelt display som kan gi deg informasjon på to linjer, med 16 teikn per linje.

Dette displayet har eit parallelt grensesnitt som krev åtte I/O-portar. Ein fordel med displayet er at teikna er store og godt synlege. Displayet blir òg levert med bakgrunnsbelysning.

På moderne elektronikk er no desse displaya bytte ut med nyare typar display med I2C-buss som kommunikasjon og betre oppløysing.

Bruksområde

Displayet eignar seg til å gi enkle beskjedar og måleresultat med, men bruken blir litt avgrensa sidan det berre viser to linjer på 16 teikn.

Likevel ser vi desse displaya på mykje elektronikk, og for vanleg bruk med Arduino der vi ønsker å få vist fram data, fungerer det veldig bra.

Kopling

Når du skal kople eit display som dette, treng du seks digitale utgangar.

I dette tilfellet blir desse kopla på pinnane D2 til D7. Displayet har 16 tilkoplingspunkt, men du bruker berre 12 pinnar. Du må òg nytte ein motstand mellom Arduinoens pluss og LED-porten til displayet for å fjerne eventuell støy i straumbanen.

Du finn ei oversikt over koplingane i emnet om programmering.

Koplingsskjema

Du må nytte heile åtte pinnar på Arduinoen for å kunne nytte displayet. Du må kople saman dei to einingane på følgande måte:

Koplingar

Arduino

LCD-display

Kommentar

5VVCC
5VLED+Via 220 ohm resistor
GNDGND
D2DB7
D3DB6
D4DB5
D5DB4
D6ENA
D7RS
GNDRW
GNDLED -

Eit elektrisk koplingsskjema av koplinga vil visast grafisk på denne måten:

Programmering

For å kunne bruke eit 16 x 2 LCD-display må du nytte biblioteket LiquidCrystal.h.

Du må òg fortelje Arduinoen kor stort displayet er ved å angi kor mange teikn det er plass til på kvar linje, og kor mange linjer det har. Her er talet 16 x 2, altså 16 teikn per linje, og to linjer.

Du må òg fortelje Arduinoen kvar på displayet du ønsker han skal begynne å skrive, ved å angi startposisjon. Då blir plassering angitt frå venstre først, så kva linje ovanfrå. OBS: Arduinoen begynner å telje frå 0, så å begynne å skrive på plass 4 frå venstre blir posisjon 3, og linje 1 blir 0.

/*

Koplingspunkt for LCD

* LCD RS pinne til digital Arduinoens pinne D7

* LCD Enable pinne til digital Arduinoens pinne D6

* LCD D4 pinne til digital Arduinoens pinne D5

* LCD D5 pinne til digital Arduinoens pinne D4

* LCD D6 pinne til digital Arduinoens pinne D3

* LCD D7 pinne til digital Arduinoens pinne D2

* LCD R/W pinne til Arduinoens jording, pinne GND

* LCD VSS pinne til Arduinoens jording, pinne GND

* LCD VCC pin til Arduinoens pluss, pinne 5V

* 10K resistor: Kopling mellom +5V og LCD VO pinne 3

*/

#include <LiquidCrystal.h> // Hent bibliotek LiquidCrystal.h

// Definer pinnane displayet skal kople seg til

LiquidCrystal lcd(7, 6, 5, 4, 3, 2);

const int paus3 = 1000; // Definer variabelen pause, og set denne til 1000

void setup() { // Setup og innstillingar

Serial.begin(9600); //Aktiver serial monitor

lcd.begin(16, 2);// Definer displayets rader og kolonnar, 16 bokstavar i 2 linjer.

}

void loop() // Program som skal køyrast om og om igjen

{

lcd.setCursor(3, 0); // Start skriving på posisjon 4 på linje 1 – hugs at vi alltid startar å telje med 0.

lcd.print("God morgon"); // Skriv teksten

lcd.setCursor(2, 1); //Start skriving på posisjon 3 på linje 2 – hugs at vi alltid startar å telje med 0.

lcd.print("Laga av NDLA"); // Skriv teksten

Serial.println("Laga av NDLA"); // Skriv teksten til serial monitor

delay(pause); // Ta pause i samsvar med variabelen pause

}

Utfordring

  • Kan du lage fleire linjer med tekst som skiftar?

    Tips: Du kan slette alt på displayet mellom kvar skriving ved å bruke kommandoen lcd.clear();.

  • Kan du få displayet til å vise om ein knapp er trykka inn?

  • Kan du få displayet til å vise ein variabel Arduinen har lese, til dømes ein temperatur?

    Tips: Du kan skrive både tekst og variablar.

Skrive av Roger Rosmo.
Sist oppdatert 16.08.2023