Les 7: LCD display

Met een eenvoudig 16x2 character-display kun je je Arduino-schakeling voor veel toepassingen "autonoom" maken: je kunt dit dan zonder computer laten werken, terwijl je toch de nodige informatie kunt laten zien.

  • Een nadeel van een display is dat je hiervoor zoveel Arduino-pinnen nodig hebt. Je kunt ook een I2C-display-aansturing gebruiken: door deze extra elektronica heb je dan maar een paar pinnen van de Arduino nodig voor het display. We hebben op school ook een paar van dit soort modules. Vraag je docent hiernaar als je liever dat gepriegel met draadjes wil ontwijken. We behandelen hier alleen de directe aansturing, zonder I2C.

Voor het aansturen van het display gebruik je een library: dit neemt je alle lastige programmeerwerk uit handen.

Opbouwen van de schakeling

Voor het aansluiten van een dergelijk display moet je veel verbindingen maken. Dit is niet moeilijk, maar wel een precies werkje.

Plaats de potmeter en sluit deze aan (loper aan display pin3; links aan 0V, rechts aan 5V).

  • voor het gebruik op een breadboard heb je een klein formaat instelpotmeter nodig. Deze is bij de meeste displays meegeleverd.

NB: als het display niet lijkt te werken, kan het helpen om het contrast van het display aan te passen, via de potmeter.

Programma

// include the library code:
#include <LiquidCrystal.h>

// initialize the library by associating any needed LCD interface pin
// with the arduino pin number it is connected to
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

void setup() {
  // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);
  // Print a message to the LCD.
  lcd.print("hello, world!");
}

void loop() {
  lcd.noDisplay();   // Display off
  delay(500);
  lcd.display();     // Display on
  delay(500);
}

Uitleg van het programma

Het eerste programma dat we voor het display gebruiken is een variant van "Hello World".

  1. #include <LiquidCrystal.h> - invoegen van de definities van de display-library

  2. LiquidCrystal lcd(rs, en, d4, d5, d6, d7); - maken van een LiquiCrystal (display)-object lcd, met de pinnummers van het interface

  3. lcd.begin(16, 2); - geef aantal kolommen en rijen op

  4. lcd.print("Hello World"); - stuur tekst naar display

  5. lcd.display(); - zet display aan

  6. lcd.nodisplay; - zet display uit

Voor het tonen van tekst op het display gebruik je dezelfde print-functie als voor het tonen van tekst in de seriële monitor.

Een beschrijving van de LiquidCrystal library vind je op https://www.arduino.cc/en/Reference/LiquidCrystal. Bestudeer die beschrijving als je meer wilt dan alleen deze eenvoudige vorm van gebruik.

Er zijn ook varianten van deze library waarmee je het display van I2C enz. kunt aansturen.

Opdracht 1

Sluit een LCD-display aan en upload de bovenstaande code naar je Arduino. Controleer of je echt Hello World op het scherm krijgt.

Opdracht 2

Sluit een LDR, temperatuur of een andere sensor aan op je Arduino. Toon de waardes van je sensor op de LCD-display. Zorg er wel voor dat ze steeds ververst worden!

Last updated