Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Complete Arduino 16×2 LCD Handleiding: Aansluiten, Programmeren en Data Weergeven

In deze Arduino-handleiding leer je hoe je een LCD (Liquid Crystal Display) kunt aansluiten en gebruiken met Arduino. LCD-displays zoals deze zijn zeer populair en breed toegepast in elektronica-projecten omdat ze ideaal zijn voor het weergeven van eenvoudige informatie, zoals sensordata, tegen een lage prijs.

Ik heb ze al in verschillende van mijn Arduino-projecten gebruikt, die je hier kunt bekijken:

  • Arduino Beveiligings- en Alarmsysteem Project
  • DIY Automaat – Arduino-gebaseerd Mechatronica Project
  • Arduino Afstandsmeter en Digitale Waterpas Project

Je kunt de onderstaande video bekijken of de geschreven handleiding volgen. Deze behandelt alles wat je moet weten over het gebruik van een LCD-karaktermisplay met Arduino, waaronder pinout, aansluitschema en verschillende voorbeeldcodes.

Wat is een LCD-karaktermisplay?

Een LCD-karaktermisplay is een speciaal type display dat alleen individuele ASCII-karakters met vaste grootte kan weergeven. Door deze karakters te combineren vormen we tekst.

Als we het display nader bekijken, zien we kleine rechthoekige gebieden bestaande uit een 5×8 pixelraster. Elke pixel kan afzonderlijk oplichten, zodat we karakters binnen elk raster kunnen genereren.

Complete Arduino 16×2 LCD Handleiding: Aansluiten, Programmeren en Data Weergeven

Het aantal rechthoekige gebieden bepaalt de grootte van de LCD. De populairste is de 16×2 LCD, met twee rijen van 16 karakters. Er zijn ook andere formaten zoals 16×1, 16×4, 20×4, maar ze werken allemaal op hetzelfde principe. Daarnaast kunnen deze LCDs verschillende achtergrond- en tekstkleuren hebben.

16×2 LCD Pinout

De display heeft 16 pinnen. De eerste van links naar rechts is de Ground-pin. De tweede is VCC, die we verbinden met de 5V-pin van de Arduino. Vervolgens volgt de Vo-pin, waar we een potentiometer aan kunnen sluiten voor contrastregeling.

De RS-pin (Register Select) bepaalt of we commando's of data sturen. Als RS laag is (0V), sturen we commando's zoals cursor positioneren, display wissen uitschakelen. Als RS hoog is (5V), sturen we karakters.

Complete Arduino 16×2 LCD Handleiding: Aansluiten, Programmeren en Data Weergeven

De R/W-pin selecteert lees- of schrijfmodus. Schrijfmodus is voor commando's en data; leesmodus wordt intern door de LCD gebruikt en hoeven we niet te bespreken.

De E-pin (Enable) activeert het schrijven naar de registers, of de 8 datapinnen D0–D7. Hier sturen we 8-bits data, bijvoorbeeld 0100 0001 voor de letter 'A' volgens de ASCII-tabel. De laatste twee pinnen A en K (anode en kathode) zijn voor de LED-achtergrondverlichting.

We hoeven ons geen zorgen te maken over de interne werking, omdat de LiquidCrystal-bibliotheek bijna alles regelt. Op de officiële Arduino-website vind je de bibliotheekfuncties. We kunnen de bibliotheek in 4- of 8-bit modus gebruiken; in deze handleiding gebruiken we 4-bit modus (alleen D4–D7).

Arduino met LCD Verbinden – Aansluitschema

Hier is hoe je de 16×2 LCD aan een Arduino-board koppelt.

Complete Arduino 16×2 LCD Handleiding: Aansluiten, Programmeren en Data Weergeven

We gebruiken 6 digitale pinnen van de Arduino. De LCD-registers D4 tot D7 gaan naar Arduino-pinnen 4 tot 7. De Enable-pin gaat naar pin 2, de RS-pin naar pin 1. De R/W-pin wordt op Ground gezet en de Vo-pin naar de middenpin van de potentiometer.

Benodigde componenten:

  • 16×2 Karakter LCD
  • Potentiometer
  • Arduino Board
  • Breadboard en Jumper Draden

Contrast van de LCD Instellen

We regelen het contrast door de spanning op de Vo-pin aan te passen. Een potentiometer maakt fijnafstelling mogelijk (0–5V).

Complete Arduino 16×2 LCD Handleiding: Aansluiten, Programmeren en Data Weergeven

Kan ik de LCD zonder Potentiometer Gebruiken?

Ja, zonder potentiometer kun je een spanningsdeler van twee weerstanden gebruiken. Stel de spanning tussen 0–5V in voor goed contrast. Ik vond ~1V ideaal, bereikt met 1kΩ en 220Ω weerstanden.

Complete Arduino 16×2 LCD Handleiding: Aansluiten, Programmeren en Data Weergeven

Een derde optie is een PWM-signaal van de Arduino naar de Vo-pin. Sluit Vo aan op een PWM-pin (bijv. D11) en gebruik in setup():

analogWrite(11, 100); // PWM op pin D11, waarde 100 (van 255) ≈ 2V op Vo

LCD Arduino Code

Hier is een simpele code die de werking van de LiquidCrystal-bibliotheek demonstreert (eerste voorbeeld uit de video):

/* Arduino LCD Tutorial
 * Gemaakt door Dejan Nedelkovski, www.HowToMechatronics.com
 */
#include <LiquidCrystal.h>
LiquidCrystal lcd(1, 2, 4, 5, 6, 7); // Parameters: (rs, enable, d4, d5, d6, d7)

void setup() {
  lcd.begin(16, 2); // Initialiseert LCD, specificeert afmetingen (breedte, hoogte)
}

void loop() {
  lcd.print("Arduino");
  delay(3000);
  lcd.setCursor(2, 1);
  lcd.print("LCD Tutorial");
  delay(3000);
  lcd.clear();
  lcd.blink();
  delay(4000);
  lcd.setCursor(7, 1);
  delay(3000);
  lcd.noBlink();
  lcd.cursor();
  delay(4000);
  lcd.noCursor();
  lcd.clear();
}

Code Uitleg:

Eerst voegen we de LiquidCrystal-bibliotheek toe: Sketch > Include Library > LiquidCrystal. Vervolgens maken we een LCD-object aan met de pinnen (RS, Enable, D4, D5, D6, D7). In setup() initialiseren we de LCD met begin() en geven de afmetingen door.

In loop() schrijven we het hoofdprogramma. Met print() tonen we tekst.

lcd.print("Arduino"); // Print "Arduino" op de LCD

setCursor() bepaalt waar de volgende tekst verschijnt.

lcd.setCursor(2, 1); // Kolom 2, rij 1 (0-geïndexeerd)

blink() toont een knipperende cursor, noBlink() schakelt hem uit. cursor() toont een underscore-cursor, noCursor() verbergt hem. clear() wist het scherm.

lcd.clear(); // Wis LCD scherm

Scrollende Tekst op 16×2 LCD met Arduino

Als tekst langer is dan 16 karakters, kun je scrollen met scrollDisplayLeft() of scrollDisplayRight().

Voorbeeldcode:

#include <LiquidCrystal.h>
LiquidCrystal lcd(1, 2, 4, 5, 6, 7);

void setup() {
  lcd.begin(16, 2);
  lcd.print("Scrolling Text Example");
}

void loop() {
  lcd.scrollDisplayLeft();
  delay(500);
}

Met delay() regel je de scrollsnelheid. Voor meer controle kun je een for-lus gebruiken:

#include <LiquidCrystal.h>
LiquidCrystal lcd(1, 2, 4, 5, 6, 7);

void setup() {
  lcd.begin(16, 2);
}

void loop() {
  // Scroll naar rechts
  for (int i = 0; i <= 13; i++) {
    lcd.setCursor(i, 0);
    lcd.print("LCD");
    delay(500);
    lcd.clear();
  }
  // Scroll naar links
  for (int i = 12; i >= 1; i--) {
    lcd.setCursor(i, 0);
    lcd.print("LCD");
    delay(500);
    lcd.clear();
  }
}

Aangepaste Karakters Genereren en Weergeven op de LCD

Naast ASCII-karakters kun je met de LiquidCrystal-bibliotheek ook eigen karakters maken.

Complete Arduino 16×2 LCD Handleiding: Aansluiten, Programmeren en Data Weergeven

Elk karakter definieer je met een array van 8 bytes (5×8 pixels). Voorbeeld:

#include <LiquidCrystal.h>

byte heart[8] = {
  B00000, B01010, B11111, B11111,
  B01110, B00100, B00000, B00000
};
byte smile[8] = {
  B00000, B00000, B01010, B00000,
  B10001, B01110, B00000, B00000
};
byte lock[8] = {
  B01110, B10001, B10001, B11111,
  B11011, B11011, B11111, B00000
};
byte character[8] = {
  B11111, B10101, B11111, B01010,
  B01110, B11111, B01110, B01110
};

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

void setup() {
  lcd.begin(16, 2);
  lcd.createChar(0, heart);
  lcd.createChar(1, smile);
  lcd.createChar(2, lock);
  lcd.createChar(3, character);
  lcd.clear();
  lcd.print("Custom Character");
}

void loop() {
  lcd.setCursor(1, 1);  lcd.write(byte(0));
  lcd.setCursor(5, 1);  lcd.write(byte(1));
  lcd.setCursor(9, 1);  lcd.write(byte(2));
  lcd.setCursor(13, 1); lcd.write(byte(3));
}

In setup() maak je het karakters aan met createChar():

lcd.createChar(0, heart); // Maak aangepast karakter 0 (hart)

De eerste parameter (0–7) reserveert een van de 8 ondersteunde custom karakters. De tweede is de byte-array.

Je toont het karakter met write() en het karakternummer:

lcd.write(byte(0)); // Toon custom karakter 0 (hart)

Zie ook: Arduino Touch Screen Handleiding | TFT LCD

Conclusie

We hebben nu vrijwel alles behandeld over het gebruik van een LCD met Arduino. Deze karakterdisplays zijn handig voor veel projecten. De voorbeelden gebruikten een 16×2 LCD, maar hetzelfde principe geldt voor andere formaten.

Ik hoop dat je deze handleiding nuttig vond. Stel gerust vragen in de reacties en bekijk mijn verzameling van 30+ Arduino-projecten.

Productieproces

  1. Plunge EDM Beheersen: De Ultieme Gids voor Precisie Elektrische Ontladingsbewerking
  2. Gietijzer 101: Samenstelling, toepassingen, voor- en nadelen uitgelegd
  3. Uitgebreide gids voor hoogovens: Definitie, componenten en onderhoud
  4. Boormachine (boorpers) beheersen: complete gids
  5. Bladmetaal Essentiële: Types, Toepassingen en Productie-inzichten
  6. Uitgebreide Gids voor Freesmachines: Functies, Operaties en Toepassingen
  7. De Complete Gids voor Plandermachines: Functie, Gebruik en Voordelen
  8. De Complete Gids voor Schaafmachines: Kenmerken, Gebruik en Voordelen
  9. Metaalbewerking: van wetenschap tot vakmanschap – een complete gids
  10. Complete gids CNC-machines: kenmerken, voordelen en toepassingen
  11. De Ultieme Gids voor Machinepressen: Typen, Functies & Operators