Code zoeken

Les 20/31: Tekst weergeven met LCD1602 en Arduino | Robojax

Les 20/31: Tekst weergeven met LCD1602 en Arduino | Robojax

Introductie

De LCD1602 is een van de populairste alfanumerieke displays voor Arduino-projecten, en in combinatie met een I2C-backpack wordt hij ongelooflijk eenvoudig te gebruiken. In deze tutorial leer je hoe je tekst, cijfers en aangepaste tekens kunt weergeven, en ook hoe je tekst over het scherm kunt laten scrollen. We laten je ook zien hoe je de LCD met andere sensoren kunt combineren om praktische monitoringtools te maken. Deze gids maakt deel uit van een bredere Arduino-cursus en is ontworpen om je te helpen nuttige apparaten te bouwen voor thuis, school of werkplaats.

screenshot-2

Hier zijn een paar praktische ideeën voor wat je met deze kennis kunt bouwen:

  • Een temperatuur- en vochtigheidsmonitor voor een kas of reptielenverblijf.
  • Een eenvoudige voltmeter voor het controleren van batterijniveaus in je projecten.
  • Een afstandssensor voor een parkeerassistent of een slimme vuilnisbak die aangeeft hoe vol hij is.

Hardware-overzicht

De LCD1602 is een display met 16 tekens en 2 regels. De module aan de achterkant is een I2C- (of I²C-)adapter, die het aantal benodigde draden van een standaard parallelle verbinding terugbrengt tot slechts vier: GND, VCC, SDA en SCL. Dit maakt de bedrading veel eenvoudiger en maakt veel digitale pinnen op je Arduino vrij.

Het display heeft een achtergrondverlichting die via software aan of uit kan worden gezet. Het heeft ook een kleine potentiometer op de I2C-module om het contrast aan te passen. Als je het display inschakelt en niets ziet, draai dan gewoon aan deze schroef totdat de tekst zichtbaar wordt (in video op 02:47).

Er zijn verschillende versies van dit display, zoals de LCD2004 die 20 tekens en 4 regels heeft. Het I2C-adres kan ook worden gewijzigd door de A0-, A1- en A2-jumpers op de module te solderen (in video op 03:51). Het standaardadres is vaak 0x27, maar dit kan variëren, dus het is altijd een goed idee om een I2C-scanner uit te voeren om het juiste adres voor jouw specifieke module te vinden.

Hardwarecomponenten

Om de hoofddemonstratie in deze video te volgen, heb je de volgende componenten nodig:

  • Arduino Uno (of een compatibel bord)
  • LCD1602 met I2C-module
  • Breadboard en jumperdraden

Voor de latere secties heb je ook een DHT11-sensor, een potentiometer of een ultrasone sensor nodig, afhankelijk van welk project je wilt bouwen.

Bedradingsgids

lcd1602_I2C_wiring_sunfounder

Het aansluiten van de LCD is eenvoudig. Het bedradingsschema toont de verbindingen duidelijk.

Verbind de pinnen op de I2C-module als volgt met je Arduino:

  • GND naar Arduino GND
  • VCC naar Arduino 5V
  • SDA naar Arduino A4
  • SCL naar Arduino A5

Als je Arduino-bord speciale SDA- en SCL-pinnen heeft, kun je daar ook op aansluiten (in video op 05:47).

De bibliotheek installeren

Deze module vereist de "Arduino Liquid Crystal I2C"-bibliotheek. Je kunt deze downloaden via de link in de videobeschrijving of van de Robojax-website. Zodra deze is gedownload, installeer je deze in je Arduino IDE door naar Sketch > Include Library > Add .ZIP Library te gaan en het gedownloade bestand te selecteren (in video op 06:41).

Code-uitleg

Omdat er geen codefragmenten zijn verstrekt, leggen we de algemene structuur van de code in de video uit.

De code begint met het opnemen van de benodigde bibliotheken: Wire.h voor I2C-communicatie en de LiquidCrystal_I2C.h-bibliotheek voor het display. Het belangrijkste onderdeel is het maken van een object voor de LCD. Je moet het juiste I2C-adres en de afmetingen van je display instellen:

// Stel het LCD-adres in op 0x27 voor een display van 16 tekens en 2 regels
LiquidCrystal_I2C lcd(0x27, 16, 2);

Als je display niets toont, moet je mogelijk 0x27 wijzigen in 0x3F of een ander adres dat door je I2C-scanner is gevonden. De 16 en 2 vertegenwoordigen het aantal kolommen en rijen op je display.

In de setup()-functie initialiseer je de LCD en zet je de achtergrondverlichting aan:

void setup() {
  lcd.init();
  lcd.backlight();
}

Om tekst af te drukken, gebruik je de functie lcd.setCursor(kolom, rij) om de cursor te positioneren, gevolgd door lcd.print() om je gegevens weer te geven. Om bijvoorbeeld op de tweede regel af te drukken, gebruik je lcd.setCursor(0, 1). De video legt ook uit hoe je speciale tekens zoals het graadsymbool kunt afdrukken door lcd.write(223) te gebruiken (in video op 31:42).

Demonstratie

De video demonstreert verschillende belangrijke functies van de LCD. Eerst toont het de basis "Hello World"-tekst en hoe je de functie lcd.scrollDisplayLeft() gebruikt om tekst over het scherm te bewegen. Later combineert het de LCD met een DHT11-sensor om temperatuur en vochtigheid weer te geven, met een potentiometer om spanning weer te geven, en met een ultrasone sensor om afstand weer te geven.

Voor de temperatuurweergave leest de code de sensor en drukt de waarde af. Om een heel getal zonder decimalen te tonen, kun je de float-waarde naar een geheel getal casten, zoals in de video wordt getoond (in video op 32:21).

Voor de voltmeter leest de code de analoge waarde van de potentiometer, schaalt deze naar een spanningsbereik van 0-5V en geeft deze weer op het scherm (in video op 34:31).

De laatste demonstratie combineert de LCD met een ultrasone sensor om de gemeten afstand in centimeters weer te geven (in video op 37:55).

Gerelateerde projecten uit deze video

Deze video bevat ook andere projecthandleidingen. Je kunt ze hier vinden:

Hoofdstukken

  • [00:00] Introductie tot LCD1602 en cursusoverzicht
  • [01:30] Hardware-overzicht van de LCD1602 en I2C-module
  • [02:47] Contrast en achtergrondverlichting van het display aanpassen
  • [03:14] Pinverbindingen en I2C-adresselectie
  • [05:28] Bedradingsschema voor de LCD
  • [06:16] De benodigde bibliotheek installeren
  • [07:24] Basiscode voor het afdrukken van tekst
  • [11:10] Voorbeeld van een knipperende cursor
  • [13:46] Aangepaste tekens en speciale symbolen afdrukken
  • [18:51] Voorbeeld van seriële weergave
  • [23:16] Scrollende tekst op de LCD
  • [36:51] LCD combineren met een ultrasone sensor

Afbeeldingen

LCD1602_wiring_DHT11_bb
LCD1602_wiring_DHT11_bb
LCD1602_wiring_DHT11_nopcb_bb
LCD1602_wiring_DHT11_nopcb_bb
LCD1602 displaying voltage and title
LCD1602 displaying voltage and title
screenshot-2
screenshot-2
lcd1602_I2C_wiring_sunfounder
lcd1602_I2C_wiring_sunfounder
910-Lesson 20/31: Displaying simple text on LCD1602
Taal: C++
This code has not been parsed yet. Please return to the admin panel to parse it.

Hulpmiddelen en referenties

Bestanden📁

Arduino-bibliotheken (zip)