Arduino - Het 1602 LCD Display

From SPAD-it Wiki
Revision as of 08:40, 12 September 2017 by WikiAdmin (talk | contribs) (Created page with " ===De schakeling=== Extra benodigdheden: *1 1602 LCD display *1 weerstand van 4.7k Onderstaande schakeling bevat vrij veel verbindingen en het is belangrijk dat elk draadje...")

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

De schakeling

Extra benodigdheden:

  • 1 1602 LCD display
  • 1 weerstand van 4.7k

Onderstaande schakeling bevat vrij veel verbindingen en het is belangrijk dat elk draadje goed zit. Controleer de schakeling dus goed als er iets mis lijkt te gaan. De weerstand zorgt voor het juiste contrast in het display. Vaak wordt hier een 10k potmeter/instelweerstand gebruikt; als je dat zou doen zou je het contrast kunnen instellen.

LCD 1602.png
Verbindingen in het breadboard voor het LCD scherm

Het programma

// Dit programma is ontleend aan: Bestanden | Voorbeelden | LiquidCrystal | HelloWorld
#include <LiquidCrystal.h>  // dit is een standaard bibliotheek

// maak het lcd object en geef aan welke hoe verbindingen lopen
// LiquidCrystal lcd(RS-4, E-6, D4-11, D5-12, D6-13, D7-14);
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);

void setup() {
  // geef aan wat de maat is van de LCD (hier 16 karakters op twee regels)
  lcd.begin(16, 2);
  // plaats een boodschap
  lcd.print("Hoera het werkt!");  // 16 karakters - meer plek is er niet
}

void loop() {
  // plaats de cursor op de eerste positie van de tweede regel
  // dat is positie (0,1) omdat men met 0 begint te tellen
  lcd.setCursor(0, 1);
  // print de tijd sinds de start:
  lcd.print(0.001 * millis());
  lcd.print(" sec. bezig"); // na 100 seconden valt de laatste letter weg
  delay(150+random(300));
}

Uitleg van het programma

In tegenstelling tot de schakeling met al zijn verbindingen is het programma vrij kort en eenvoudig. Dit komt door het gebruik van een library. Het gaat hier om regel 2:

#include <LiquidCrystal.h>

Door deze regel wordt een ingewikkelder stuk software meegenomen en kunnen we ons deel van het programma eenvoudig houden. LET OP: zo'n #include regel wordt niet afgesloten met een punt-komma. In regel 6 wordt een variabele aangemaakt van het type LiquidCrystal. Het gaat hier om een object-variabele waarmee we allerlei taken kunnen uitvoeren door functies ervan aan te roepen. In de setup() geven we eerst nog aan hoe groot onze LCD is. Dat is 16 karakters op 2 regels. Hieruit blijkt dat de LiquidCrystal library ook voor andere LCD's gebruikt moet kunnen worden en dat is goed om te weten. Daarna zetten we een tekst op de eertse regel. dat gaat dus via de print functie van het lcd object. Ditzelfde doen we in de loop() functie. Voordat we gaan printen wordt de cursor ingesteld op het eerste karakter van de tweede regel. Elke lcd.print() opdracht zou anders gewoon verder gaan waar hij gebleven was, waarna de regels gaan "scrollen" (doorrollen). Let op dat de laatste lcd.print() een vrij lange tekst heeft die na 100 seconden te lang wordt. De laatste letter valt dan van het scherm. Tenslotte wachten we even om de tekst leesbaar te houden. Zonder deze delay veranderen de laatste twee decimalen van de tekst zo snel dat ze onleesbaar zouden zijn. De delay heeft een willekeurige wachttijd (de random() functie) om het interval wat onvoorspelbaar te maken.

Beetje spelen

Navigatie