Zoekopdracht
Sluit dit zoekvak.

De magie van 16×2 LCD-schermen onthullen: een uitgebreide handleiding met Arduino-interface

Inhoudsopgave

De 16×2 LCD-module, een hoeksteen van embedded systemen, is een fantastische tool voor het weergeven van tekstuele informatie. Dit artikel duikt diep in de werking van dit veelzijdige display, onderzoekt de pinconfiguratie, hoe u het koppelt aan een Arduino en zelfs hoe u aangepaste tekens maakt. Als u een duidelijk, leesbaar display aan uw Arduino-projecten wilt toevoegen, is deze gids een essentiële bron.

LCD-moduleweergave 1602

Een LCD, of liquid crystal display, is een flat panel display-technologie die veel wordt gebruikt in een breed scala aan apparaten, van horloges en rekenmachines tot computermonitoren en televisies. De 16×2 LCD-module is met name populair bij hobbyisten en ontwikkelaars van embedded systemen vanwege de eenvoud, lage kosten en de mogelijkheid om tekstuele informatie duidelijk weer te geven. In tegenstelling tot complexere grafische displays is het 16×2 lcd ontworpen voor op tekens gebaseerde uitvoer. De aanduiding "16×2" betekent dat het 2 regels heeft, die elk 16 tekens tegelijk kunnen weergeven. Dit maakt het ideaal voor het weergeven van sensormetingen, menuopties of elke vorm van tekstgegevens. Dit type display is een karakter-lcd die extreem veel wordt gebruikt in verschillende projecten. 16×2 lcd-module is een type displaymodule waarvoor geen complexe programmering nodig is. Het verbruikt ook heel weinig stroom, waardoor het geschikt is voor batterijgevoede toepassingen.

De brede beschikbaarheid en kosteneffectiviteit van de 16×2 displaymodule maken het een populaire keuze voor educatieve projecten en kleinschalige toepassingen. Het gemak van interfacen met microcontrollers zoals Arduino, gecombineerd met een breed scala aan beschikbare bibliotheken, maakt het een go-to keuze voor beginners en ervaren gebruikers. Dit type lcd-module wordt vaak gebruikt als een karakter-lcd en staat bekend om zijn betrouwbaarheid en eenvoudige bediening. Het display met dit type module is zeer helder. Het 16×2 karakter-lcd maakt het mogelijk om 16 karakters per regel weer te geven.

2. De pinbezetting van het 16×2 LCD-scherm begrijpen: wat doet elke pin?

De 16×2 lcd-module wordt doorgaans geleverd met 16 pinnen, die elk een specifiek doel dienen. Het begrijpen van de lcd-pinout is cruciaal voor succesvolle interfacing. Hier is een overzicht van elke pin:

  • Pinnen 1 en 2 (VSS en VDD): Deze zijn voor de stroomvoorziening. VSS is aarde (0V) en VDD is de positieve voedingsspanning (meestal +5V).
  • Pin 3 (V0 of VEE): Deze pin wordt gebruikt om het contrast van het lcd aan te passen. Door een potentiometer op deze pin aan te sluiten, kunt u het contrast handmatig aanpassen.
  • Pin 4 (RS – Registerselectie): Deze pin bepaalt of de data die naar het lcd wordt gestuurd, wordt geïnterpreteerd als een opdracht of data. Wanneer RS laag is, wordt de data behandeld als een opdracht. Wanneer RS hoog is, wordt de data behandeld als karakterdata.
  • Pin 5 (R/W – Lezen/Schrijven): Deze pin wordt gebruikt om te selecteren of data van het lcd wordt gelezen of naar het lcd wordt geschreven. In de meeste toepassingen is deze verbonden met de aarde om het lcd in de "schrijf"-modus te zetten.
  • Pin 6 (E – Inschakelen): Deze pin wordt gebruikt om de data te vergrendelen. Het lcd wordt ingeschakeld met een high-to-low puls op deze pin om data of commando's te registreren.
  • Pennen 7-14 (D0-D7): Dit zijn de 8 datapinnen die worden gebruikt voor het verzenden van data naar het lcd in 8-bitsmodus. Deze pinnen worden ook gebruikt in 4-bitsmodus, maar daar komen we later op terug. In de 4-bitsmodus worden alleen pinnen D4-D7 gebruikt.
  • Pennen 15 en 16 (A en K): Dit zijn respectievelijk de anode- en kathodepinnen voor de achtergrondverlichting. Deze pinnen worden gebruikt om de achtergrondverlichting van stroom te voorzien, meestal een led-achtergrondverlichting. Pin 15 is voor de positieve spanning en pin 16 is voor de aarde.

Deze gedetailleerde uitleg van de lcd-pinout is essentieel om de interface te begrijpen. Correcte pinverbindingen zijn essentieel voor een goede werking van het lcd-scherm. Raadpleeg Tabel 1 voor een illustratie van de pinout.

Tabel 1: 16×2 LCD-pinbezetting

PinnummerSymboolBeschrijving
1VSSAarde (0V)
2VDD+5V voeding
3V0/VEEContrastaanpassing
4R.S.Registreren Selecteer
5Rood/WitLezen/Schrijven Selecteren
6IkSignaal inschakelen
7D0Gegevensbit 0
8D1Gegevensbit 1
9D2Gegevensbit 2
10D3Gegevensbit 3
11D4Gegevensbit 4
12D5Gegevensbit 5
13D6Gegevensbit 6
14D7Gegevensbit 7
15ALED-achtergrondverlichtingsanode
16IkLED-achtergrondverlichting kathode

3. Hoe werkt de 16×2 LCD-module intern?

De 16×2 lcd-module gebruikt een liquid crystal display (LCD) technologie om tekens weer te geven. Elk teken op het lcd bestaat uit een raster van pixels. Deze pixels worden niet individueel aangestuurd door de gebruiker, maar worden aangestuurd door de lcd-chipcontroller. De module heeft een ingebouwde tekengenerator die vooraf gedefinieerde vormen opslaat voor de standaard ascii-tekenset. Wanneer u een tekencode naar het display stuurt, haalt de controller de pixelconfiguratie op van zijn tekengenerator en geeft het teken weer op het lcd-scherm.

De communicatie tussen de microcontroller en het lcd wordt bereikt door het verzenden van opdrachten en data. Opdrachten worden gebruikt om het gedrag van het display te regelen, zoals het wissen van het display, het verplaatsen van de cursor of het instellen van de weergavemodus. Data zijn de tekens die u wilt weergeven. De lcd-module gebruikt de eerder beschreven pinnen om gegevens en opdrachten te ontvangen. De lcd-chipcontroller is verantwoordelijk voor het interpreteren en uitvoeren van die instructies. De controller beheert ook de cursorpositie en de weergave van tekens op basis van het adres dat met de gegevens wordt verzonden. Hierdoor kan een microcontroller gegevens naar het lcd sturen en deze weergeven.

4. Wat zijn de belangrijkste verschillen tussen verschillende LCD-modules?

Hoewel de 16×2 lcd heel gebruikelijk is, bestaan er andere typen LCD-modules, elk met specifieke kenmerken. Hier zijn enkele verschillen om te overwegen:

  • Karakter-LCD's versus grafische LCD's: Karakter-LCD's, zoals het 16×2-display, zijn ontworpen om tekst en vooraf gedefinieerde tekens weer te geven. Grafische LCD's kunnen daarentegen willekeurige graphics en afbeeldingen weergeven, wat veel meer flexibiliteit biedt, maar complexer is om te bedienen.
  • Grootte en resolutie: LCD's zijn er in verschillende formaten en resoluties. Veelvoorkomende formaten zijn 16×2, 20×4 en veel grotere. Een 20×4 displaymodule kan 20 tekens op 4 regels weergeven.
  • Achtergrondverlichting: Sommige LCD-modules zijn voorzien van achtergrondverlichting, meestal een led-achtergrondverlichting voor een betere zichtbaarheid bij weinig licht. Andere modules hebben deze verlichting niet.
  • Interface: LCD's kunnen verschillende interfacetypen hebben. Sommige hebben een I2C-interface, waardoor de bedrading wordt vereenvoudigd door slechts twee draden te gebruiken voor datacommunicatie. Andere, zoals de 16×2 lcd die we bespreken, gebruiken parallelle communicatie.
  • Kleur: De meeste karakter-LCD's zijn monochroom, terwijl grafische LCD's monochroom of in kleur kunnen zijn.
  • Verantwoordelijke: Verschillende LCD's kunnen verschillende controllerchips gebruiken. Veel van hen gebruiken echter dezelfde hd44780 lcd-controller of compatibele variant.

Bij het selecteren van een lcd-module moet u rekening houden met de complexiteit en het type informatie dat u wilt weergeven. Voor basistekstuitvoer blijft het 16×2-karakter lcd een betrouwbare en kosteneffectieve optie. Begrijpen welk type display en welk type interface vereist is, is essentieel bij het selecteren van de juiste displaymodule.

5. Hoe sluit ik een LCD 16×2 aan op Arduino voor een basisweergave?

Het koppelen van een 16×2 lcd aan een arduino is een eenvoudig proces, vooral met behulp van bibliotheken. Hier is een stapsgewijze handleiding voor het verbinden en weergeven van basistekst:

  1. Bedrading:

    • Verbind de VSS-pin van het LCD-scherm met de GND van de Arduino.
    • Verbind de VDD-pin van het LCD-scherm met de 5V-pin van de Arduino.
    • Verbind de V0 (contrast) pin van het LCD met de middelste pin van een 10K potentiometer. Verbind een van de andere pinnen van de potentiometer met de 5V en de resterende pin met GND.
    • Verbind de RS-pin van het LCD-scherm met een digitale pin van een Arduino (bijvoorbeeld pin 12).
    • Verbind de R/W-pin van het LCD-scherm met GND.
    • Verbind de E-pin van het LCD-scherm met een digitale pin van een Arduino (bijvoorbeeld pin 11).
    • Verbind de datapinnen van het LCD (D4-D7) met de digitale pinnen van de Arduino (bijv. pinnen 5, 4, 3 en 2). We configureren het LCD in 4-bitsmodus.
    • Sluit de achtergrondverlichtingspin (A) van het LCD-scherm aan op 5 V en de achtergrondverlichtingspin (K) op GND (optioneel als u achtergrondverlichting gebruikt en deze niet wilt bedienen; anders sluit u A via een weerstand aan op een digitale pin en K op GND).
  2. Arduino-code: Installeer de LiquidCrystal-bibliotheek in de Arduino IDE en gebruik vervolgens code die lijkt op de volgende:

#erbij betrekken 

constant int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
VloeibaarKristal lcd(rs, en, d4, d5, d6, d7);

leegte opstelling() { lcd.beginnen(16, 2); lcd-scherm.afdrukken("Hallo, wereld!");
}

leegte lus() {
  // Uw andere code kan hier worden opgenomen, LCD blijft het bericht weergeven
}

Dit simpele voorbeeld demonstreert de basis van het interfacing met Arduino en het weergeven van data op het lcd. Dit demonstreert ook hoe het lcd in 4-bits modus gebruikt kan worden om het aantal gebruikte pinnen te vereenvoudigen.

16x2 I2C LCD-schermmodule

6. Hoe stuur ik gegevens en opdrachten naar het LCD?

Het verzenden van data en commando's naar het lcd is essentieel om het gedrag en de weergave van informatie te regelen. Zoals eerder vermeld, wordt de RS-pin gebruikt om onderscheid te maken tussen data en commando's. Wanneer RS laag is, worden instructies die aan het lcd worden gegeven, beschouwd als commando's; wanneer RS hoog is, worden ze behandeld als data, wat doorgaans een teken is dat moet worden weergegeven.

Opdrachten verzenden: Om opdrachten te versturen, zet u eerst de RS-pin laag. De instructies kunnen acties omvatten zoals het wissen van het display, het instellen van de cursorpositie of het configureren van de displaymodus. De verzendopdrachten worden doorgaans gebruikt om het lcd te configureren voor gebruik. De bibliotheekmethoden die met Arduino worden gebruikt, kunnen dat allemaal afhandelen.

Gegevens verzenden: Om data te versturen, zet u de RS pin hoog. De verstuurde data wordt geïnterpreteerd als een ascii-code van het weer te geven karakter. Elk karakter heeft een bijbehorende code, die te vinden is in de standaard ascii-karakterset. Het lcd haalt vervolgens het corresponderende karakter op uit zijn karaktergenerator en toont het op het scherm. Het proces wordt afgehandeld door de bibliotheek, maar het is handig om de basisfunctionaliteit te kennen. Om de data naar het lcd te schrijven, moeten de datapinnen worden ingesteld.

De bibliotheekfuncties, zoals lcd.print() automatisch de complexiteit van het besturen van de RS- en E-pinnen afhandelen, en ook de juiste byte naar het lcd sturen. Dit vereenvoudigt het proces van het verzenden van gegevens naar het lcd aanzienlijk. Het is ook mogelijk om opdrachten te verzenden met behulp van de bibliotheekmethoden, bijvoorbeeld, lcd.duidelijk() wordt gebruikt om het display leeg te maken en lcd.setCursor() wordt gebruikt om de huidige cursorpositie op het scherm in te stellen.

7. Hoe kan ik de LCD-achtergrondverlichting effectief regelen?

De achtergrondverlichting van een 16×2 lcd is erg handig bij slechte lichtomstandigheden. De meeste 16×2 displaymodules bevatten een led-achtergrondverlichting. Om de achtergrondverlichting te regelen, moet u de anode- (pin 15) en kathode- (pin 16) pinnen van stroom voorzien, meestal via een weerstand. Er zijn een paar manieren waarop de achtergrondverlichting kan worden geregeld. U kunt de achtergrondverlichting eenvoudig rechtstreeks op de voeding en de aarde aansluiten. In dat geval blijft de achtergrondverlichting permanent ingeschakeld. Als u deze methode gebruikt, wordt het ten zeerste aanbevolen om een stroombegrenzende weerstand in serie met de anodepin op te nemen. Om de achtergrondverlichting met de microcontroller te regelen, moet u de anode (pin 15) op een van de pinnen van de Arduino aansluiten en de kathode (pin 16) op de aarde. Door de uitgang van de pin op hoog of laag in te stellen, kunt u de achtergrondverlichting in- of uitschakelen.

Door een pin van Arduino te gebruiken om de achtergrondverlichting te regelen, is het mogelijk om deze uit te schakelen als deze niet nodig is of andere functies te implementeren, zoals bijvoorbeeld: de achtergrondverlichting in- en uitschakelen. U moet altijd het gegevensblad controleren voor de maximale achtergrondverlichtingsstroom om de juiste weerstand te kiezen. Meestal werkt een weerstand van 220 Ohm prima. Wanneer de pin op hoog is ingesteld, is de led-achtergrondverlichting aan, anders is deze uit. Het regelen van de achtergrondverlichting in de code helpt om energie te besparen als de achtergrondverlichting niet nodig is.

8. Hoe pas ik het contrast van het LCD-scherm aan voor optimale zichtbaarheid?

Het aanpassen van het contrast is cruciaal voor het bereiken van optimale leesbaarheid van het lcd-scherm. Het contrast van het lcd wordt aangepast door de spanning te veranderen die wordt toegepast op de V0- of VEE-pin (pin 3). Deze spanning regelt het contrast van de pixels. Om het contrast van het scherm aan te passen, wordt er doorgaans een potentiometer op deze pin aangesloten. Wanneer u de potentiometer draait, verandert de spanning op deze pin. Als de spanning te hoog is, wordt het scherm zwart en als de spanning te laag is, is het scherm nauwelijks zichtbaar. Om het contrast aan te passen, moet u een punt vinden dat goed is voor het specifieke lcd.

Door een potentiometer aan te sluiten is het eenvoudig om handmatig het contrast van het display aan te passen. Dit is een veelvoorkomende methode. Het proces van het aanpassen van het contrast omvat het langzaam draaien van de potentiometer totdat de tekens duidelijk zichtbaar worden. Als uw display alleen zwarte blokken toont of erg zwak is, betekent dit dat het contrast niet correct is afgesteld. Het contrast van het display kan veranderen wanneer de temperatuur verandert. Een kleine aanpassing kan nodig zijn na enige tijd van gebruik. Deze methode is goedkoop en werkt effectief. Het aanpassen van het contrast van het lcd is nodig om optimale zichtbaarheid te bereiken.

9. Hoe genereer en toon ik aangepaste tekens op een 16×2 LCD?

De mogelijkheid om aangepaste tekens te definiëren en weer te geven, verbetert de veelzijdigheid van een 16×2 lcd aanzienlijk. De ingebouwde tekengenerator slaat al een vooraf gedefinieerde set standaard ascii-tekensets op, maar de gebruiker kan 8 locaties in het aangepaste tekengeheugen overschrijven. Aangepaste tekengeneratie op het display wordt bereikt door een bytepatroon te maken voor elk aangepast teken. Elk teken wordt gedefinieerd met behulp van een 5×8 pixelmatrix, wat betekent dat er 5 bits per rij en 8 rijen zijn. Dit betekent dat we 8 bytes aan gegevens nodig hebben om het aangepaste teken te definiëren.

Stappen om een aangepast karakter te genereren en weer te geven:

  1. Ontwerp je personage: Schets je gewenste personage op een raster van 5×8 pixels. Markeer de pixels die je wilt belichten.
  2. Converteren naar bytes: Elke rij pixels komt overeen met een enkele byte. Een verlichte pixel wordt weergegeven door een 1, en een onverlichte pixel is een 0. Converteer elke rij van uw 5 pixels naar binair en vervolgens naar decimaal. Dit geeft u 8 bytes die uw aangepaste karakter definiëren.
  3. Verzenden naar het LCD: Gebruik lcd.createChar() methode om de bytes op te slaan in het karaktergeneratorgeheugen van het lcd. De createChar De methode neemt twee parameters: de locatie in het geheugen van de tekengenerator (0-7) en de byte-array.
  4. Toon het karakter: Zodra het personage is gemaakt, kunt u het weergeven door lcd.write() met de karakterlocatie (0-7). Hier is een voorbeeld van het maken en weergeven van een aangepast karakter met Arduino: “`arduino #include LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

byte customChar[8] = { 0b00000, 0b01010, 0b01010, 0b10001, 0b01110, 0b00000, 0b00000, 0b00000 };

leeg setup() { lcd.begin(16, 2); lcd.createChar(0, customChar); lcd.write(0); }

void loop() {} “` Deze code maakt een aangepast karakter op locatie 0 en geeft het weer op de eerste positie op het lcd-scherm. Wanneer u uw aangepaste karakter maakt, moet u voorzichtig zijn en de karaktergeneratoradressen en afdrukopdrachten op de juiste manier gebruiken.

10. Wat zijn veelvoorkomende problemen bij het werken met LCD's en hoe kunt u deze oplossen?

Terwijl 16×2 lcd-modules over het algemeen betrouwbaar zijn, kunnen er bepaalde problemen ontstaan. Als u deze problemen begrijpt en weet hoe u ze moet aanpakken, kunt u veel tijd en moeite besparen:

  • Lege weergave: Dit is vaak het gevolg van onjuiste bedrading of contrastafstelling. Controleer eerst alle verbindingen, met name de stroom-, aarde- en datalijnen. Pas de potentiometer aan om het juiste contrast te garanderen.
  • Onzin weergeven: Dit kan duiden op problemen met datacommunicatie. Zorg ervoor dat de juiste pinnen worden gebruikt en dat de bibliotheek die u gebruikt compatibel is met het lcd. Controleer ook of de code die u gebruikt correct is en er geen fouten zijn.
  • Geen achtergrondverlichting: Als de achtergrondverlichting niet brandt, controleer dan de bedrading voor pinnen 15 en 16 en zorg ervoor dat u de juiste weerstand gebruikt voor de led-achtergrondverlichting.
  • "Vierkanten" weergegeven: Vaak betekent dit dat het LCD-scherm niet correct is geïnitialiseerd. Daarom is het van cruciaal belang dat het LCD-scherm wordt geïnitialiseerd en dat de juiste gegevensmodus (4-bits of 8-bits) wordt ingesteld.
  • Beeldscherm wordt niet bijgewerkt: Het lcd-scherm werkt mogelijk wel, maar de gegevens die naar het lcd-scherm worden verzonden, veranderen niet. Als u de weer te geven gegevens niet bijwerkt en de afdrukopdracht met dezelfde inhoud blijft aanroepen, wordt het lcd-scherm niet bijgewerkt. Probeer het scherm te wissen als u dit probleem ondervindt, met behulp van de duidelijk() commando.
  • Interferentie/ruis: Elektrische ruis kan de prestaties van het lcd beïnvloeden. Gebruik kortere draden en scherm de verbindingen indien nodig af. Soms moet u een condensator toevoegen tussen de voedingspinnen en de aarde als het lcd niet goed werkt.

Juiste debuggingtechnieken, zoals het stap voor stap controleren van elke verbinding, kunnen helpen bij het diagnosticeren van deze problemen. Zorg ervoor dat de juiste bibliotheken zijn geïnstalleerd en dat het Arduino-bord correct werkt. Het is erg belangrijk om de verbindingen met het LCD en de pinnen van de Arduino dubbel te controleren. Wanneer u met het LCD in 4-bitsmodus werkt, moet u ervoor zorgen dat u de juiste datapinnen (D4-D7) hebt gebruikt en dat de data correct door de bibliotheekfuncties wordt verzonden.

16x2 karakter LCD met LED-achtergrondverlichting

Samenvatting van de 10 belangrijkste dingen om te onthouden:

  • Het 16×2 lcd-scherm is een tekengebaseerde displaymodule die 16 tekens per regel op 2 regels kan weergeven.
  • De module heeft 16 pinnen, elk met een specifieke functie. Deze moeten correct worden aangesloten om de module te laten werken.
  • Correcte contrastaanpassing is cruciaal voor duidelijke leesbaarheid. U kunt het contrast aanpassen met een potentiometer die is aangesloten op de V0-pin.
  • De RS-pin bepaalt of u opdrachten of gegevens naar het lcd-scherm stuurt.
  • De enable-pin (E) wordt gebruikt om de gegevens of opdrachten te vergrendelen.
  • Het lcd-scherm kan in 4-bits of 8-bits modus worden gebruikt. In de 4-bits modus zijn minder microcontrollerpinnen nodig.
  • U kunt aangepaste tekens maken door byterepresentaties van de 5×8 pixelmatrix naar het geheugen van de tekengenerator te schrijven.
  • De achtergrondverlichting kan worden aangesloten via een stroombegrenzende weerstand, maar kan ook worden aangestuurd met de microcontroller.
  • Controleer altijd alle bedrading nogmaals om veelvoorkomende problemen, zoals een zwart scherm, te voorkomen.
  • Het LCD-scherm maakt gebruik van een controller, meestal een hd44780 lcd of een compatibele variant daarvan.

Wanneer u de werking van het 16×2 lcd-scherm begrijpt en deze richtlijnen volgt, kunt u dit veelzijdige scherm effectief integreren in uw Arduino-projecten.

Reacties

Neem contact met ons op

Grote dingen in het bedrijfsleven worden nooit door één persoon gedaan. Ze worden gedaan door een team van mensen. We hebben die dynamische groep mensen
Scroll naar boven

Online aanvraag

Vul onderstaand formulier in, dan nemen wij binnenkort contact met u op.