in deze handleiding zal ik uitleggen hoe je een LCD op een Arduino kunt instellen en je alle verschillende manieren laten zien waarop je het kunt programmeren. Ik zal u laten zien hoe u tekst af te drukken, scroll tekst, Maak aangepaste tekens, knipper tekst, en positie tekst. Ze zijn geweldig voor elk project dat gegevens uitbrengt, en ze kunnen uw project veel interessanter en interactiever maken.

het scherm dat ik gebruik is een 16×2 LCD-scherm dat ik kocht voor ongeveer $5. Je vraagt je misschien af waarom het een 16×2 LCD heet., Het deel 16×2 betekent dat het LCD 2 regels heeft en 16 tekens per regel kan weergeven. Daarom kan een 16×2 LCD-scherm tot 32 tekens tegelijk weergeven. Het is mogelijk om meer dan 32 tekens weer te geven met scrollen.

de code in dit artikel is geschreven voor LCD ‘ s die gebruik maken van de standaard Hitachi HD44780 driver. Als uw LCD 16 pinnen heeft, dan heeft het waarschijnlijk de Hitachi HD44780 driver. Deze displays kunnen worden bedraad in 4-bit modus of 8-bit modus. Bedrading van het LCD-scherm in 4-bits modus heeft meestal de voorkeur omdat het vier minder draden dan 8-bits modus gebruikt., In de praktijk is er geen merkbaar verschil in prestaties tussen de twee modi. In deze tutorial zal ik het LCD-scherm aansluiten in 4-bits modus.

BONUS: Ik heb een snelstartgids gemaakt voor deze tutorial die je kunt downloaden en later terug kunt gaan als je dit nu niet kunt instellen. Het omvat alle stappen, diagrammen en code die u nodig hebt om aan de slag te gaan.

het LCD verbinden met de Arduino

Hier is een diagram van de pinnen op het LCD dat ik gebruik. De verbindingen van elke pin naar de Arduino zullen hetzelfde zijn, maar uw pinnen kunnen anders op het LCD worden gerangschikt., Controleer het datasheet of zoek naar labels op uw specifieke LCD:

ook moet u mogelijk een 16-pins header solderen op uw LCD voordat u deze aansluit op een breadboard. Volg het onderstaande diagram om het LCD aan uw Arduino te verbinden:

De weerstand in het diagram hierboven stelt de helderheid van de achtergrondverlichting in. Een typische waarde is 220 ohm, maar andere waarden zullen ook werken., Kleinere weerstanden maken de achtergrondverlichting helderder.

de potentiometer wordt gebruikt om het schermcontrast aan te passen. Ik gebruik meestal een 10K Ohm potentiometer, maar andere waarden zullen ook werken.

Hier is het datasheet voor het 16×2 LCD Met alle technische informatie over het display:

16×2 LCD Datasheet

programmeren van de Arduino

alle onderstaande code gebruikt de liquidcrystal Library die vooraf is geïnstalleerd met de Arduino IDE., Een bibliotheek is een set van functies die gemakkelijk kunnen worden toegevoegd aan een programma in een verkort formaat.

om een bibliotheek te kunnen gebruiken, moet deze in het programma worden opgenomen. Regel 1 in de onderstaande code doet dit met het commando #include <LiquidCrystal.h>. Wanneer u een bibliotheek in een programma, alle code in de bibliotheek wordt geüpload naar de Arduino samen met de code voor uw programma.

nu zijn we klaar om in het programmeren te komen! Ik zal meer interessante dingen die je kunt doen in een moment bespreken, maar voor nu laten we gewoon een eenvoudig testprogramma uitvoeren. Dit programma zal afdrukken “Hallo, wereld!,”naar het scherm. Voer deze code in de Arduino IDE en upload het naar de raad:

#include <LiquidCrystal.h>LiquidCrystal lcd(12, 11, 5, 4, 3, 2);void setup() { lcd.begin(16, 2); lcd.print("hello, world!");}void loop() {}

Uw LCD-scherm ziet er als volgt uit:

LCD-Display-Opties

Er zijn 19 verschillende functies in de LiquidCrystal-bibliotheek beschikbaar voor ons. Deze functies doen dingen zoals de positie van de tekst wijzigen, tekst over het scherm verplaatsen of het scherm in-of uitschakelen. Wat volgt is een korte beschrijving van elke functie, en hoe het te gebruiken in een programma.,

LiquidCrystal()

de functie LiquidCrystal()stelt de pinnen in die de Arduino gebruikt om verbinding te maken met het LCD-scherm. U kunt om het even welke digitale pinnen van Arduino gebruiken om het LCD te controleren. Zet de Arduino pin nummers tussen de haakjes in deze volgorde:

LiquidCrystal(RS, E, D4, D5, D6, D7)

RS, E, D4, D5, D6, D7 zijn de LCD pinnen.

bijvoorbeeld, stel dat je LCD pin D7 wilt verbinden met Arduino pin 12., Zet gewoon “12”in plaats van D7 in de functie als volgt:

LiquidCrystal(RS, E, D4, D5, D6, 12)

Deze functie moet worden geplaatst voor de void setup() sectie van het programma.

lcd.begin()

Deze functie stelt de afmetingen van het LCD-scherm in. Het moet vóór enige andere LiquidCrystal functie geplaatst worden in de void setup() sectie van het programma. Het aantal rijen en kolommen wordt opgegeven als lcd.begin(columns, rows)., Voor een 16×2 LCD zou je lcd.begin(16, 2) gebruiken, en voor een 20×4 LCD zou je lcd.begin(20, 4)gebruiken.

lcd.clear()

Deze functie wist alle tekst of gegevens die al op het LCD-scherm worden weergegeven., Als u gebruik lcd.clear() met lcd.print() en de delay() functie in de void loop() sectie, kun je een eenvoudige knipperende tekst programma:

lcd.home()

Deze functie plaatst u de cursor in de linkerbovenhoek van het scherm en drukt eventuele latere tekst van die positie. Bijvoorbeeld, deze code vervangt de eerste drie letters van ” hello world!,”met X’ s:

lcd.setCursor()

Lijkt, maar nuttiger dan lcd.home() lcd.setCursor(). Deze functie plaatst de cursor (en eventuele afgedrukte tekst) op elke positie op het scherm. Het kan gebruikt worden in de void setup() of void loop() sectie van uw programma.

de cursorpositie is gedefinieerd met lcd.setCursor(column, row). De kolom-en rijcoördinaten beginnen bij nul (respectievelijk 0-15 en 0-1)., Bijvoorbeeld, met behulp van lcd.setCursor(2, 1) in de void setup() sectie van de ” Hallo, wereld!”programma boven afdrukken” Hallo, wereld!”to the lower line and shifts it to the right two spaces:

lcd.write()

u kunt deze functie gebruiken om verschillende soorten gegevens naar het LCD-scherm te schrijven, bijvoorbeeld het uitlezen van een temperatuursensor of de coördinaten van een gps-module., U kunt het ook gebruiken om aangepaste tekens af te drukken die u zelf maakt (meer hierover hieronder). Gebruik lcd.write() in de void setup() of void loop() sectie van uw programma.

lcd.print()

Deze functie wordt gebruikt om tekst naar het LCD-scherm af te drukken. Het kan gebruikt worden in de void setup() sectie of de void loop() sectie van het programma.

om getallen af te drukken zijn geen aanhalingstekens nodig. Om bijvoorbeeld 123456789 af te drukken, gebruikt u lcd.print(123456789).,

lcd.print() kan getallen afdrukken in decimale, binaire, hexadecimale en octale basen. Bijvoorbeeld:

lcd.cursor()

Deze functie maakt een zichtbare cursor aan. De cursor is een horizontale lijn die onder het volgende teken wordt geplaatst dat op het LCD-scherm moet worden afgedrukt.

De functie lcd.noCursor() schakelt de cursor uit., lcd.cursor() en lcd.noCursor() kunnen samen worden gebruikt in de void loop() om een knipperende cursor te maken die vergelijkbaar is met wat u ziet in veel tekstinvoervelden:

Dit plaatst een knipperende cursor na het uitroepteken in ” hello, world!”

Cursors kunnen overal op het scherm worden geplaatst met de lcd.setCursor() functie. Deze code plaatst een knipperende cursor direct onder het uitroepteken in “hello, world!,”:

lcd.blink()

Deze functie creëert een blokstijl cursor die aan en uit knippert met ongeveer 500 milliseconden per cyclus. Gebruik het in de void loop() sectie. De functie lcd.noBlink() schakelt de knipperende blokcursor uit.

lcd.display()

Deze functie schakelt alle tekst of cursors aan die zijn afgedrukt op het LCD-scherm. De functie lcd.noDisplay() schakelt alle tekst of cursors die op het LCD worden afgedrukt uit, zonder deze uit het geheugen van het LCD te wissen.,

deze twee functies kunnen samen gebruikt worden in de void loop() sectie om een knipperend tekst effect te creëren. Deze code zal de “Hallo, wereld!”text blink on and off:

lcd.scrollDisplayLeft()

Deze functie neemt alles wat op het LCD-scherm wordt afgedrukt en verplaatst het naar links. Het moet gebruikt worden in de void loop() sectie met een vertragingscommando dat erop volgt. De functie verplaatst de tekst 40 spaties naar links voordat het teruglus naar het eerste teken. Deze code beweegt de “hello, world!,”tekst links, met een snelheid van één seconde per teken:

tekstreeksen langer dan 40 spaties zullen worden afgedrukt op Regel 1 na de 40e positie, terwijl het begin van de tekenreeks zal doorgaan met afdrukken naar regel 0.

lcd.scrollDisplayRight()

Deze functie gedraagt zich als lcd.scrollDisplayLeft(), maar verplaatst de tekst naar rechts.

lcd.autoscroll()

Deze functie neemt een tekenreeks en scrolt deze van rechts naar links in stappen van het aantal tekens van de tekenreeks., Als u bijvoorbeeld een tekenreeks van 3 karakters lang hebt, zal de tekst 3 spaties naar links verschuiven bij elke stap:

zoals de lcd.scrollDisplay() functies, de tekst kan tot 40 karakters lang zijn alvorens te herhalen. Op het eerste gezicht lijkt deze functie minder nuttig dan de lcd.scrollDisplay() functies, maar het kan zeer nuttig zijn voor het maken van animaties met aangepaste karakters.

lcd.noAutoscroll()

lcd.noAutoscroll()schakelt de functielcd.autoscroll()uit., Gebruik deze functie voor of nalcd.autoscroll()in devoid loop()sectie om sequenties van scrollende tekst of animaties te maken.

lcd.rightToLeft()

Deze functie stelt de richting in waarin de tekst naar het scherm wordt afgedrukt. De standaardmodus is van links naar rechts met behulp van het commando lcd.leftToRight(), maar u kunt enkele gevallen vinden waarin het nuttig is om tekst in omgekeerde richting uit te voeren:

deze code drukt de ” Hallo, wereld!”sms als”!Drow, olleh”., Tenzij u de plaatsing van de cursor opgeeft met lcd.setCursor(), zal de tekst vanaf de (0, 1) positie worden afgedrukt en zal alleen het eerste teken van de tekenreeks zichtbaar zijn.

lcd.createChar()

met dit commando kunt u je eigen aangepaste karakters. Elk teken van een 16×2 LCD heeft een breedte van 5 pixels en een hoogte van 8 pixels. Tot 8 verschillende aangepaste tekens kunnen worden gedefinieerd in een enkel programma., Om je eigen personages te ontwerpen, moet je een binaire matrix van je eigen personage maken van een LCD-tekengenerator of het zelf in kaart brengen. Deze code maakt een graadsymbool aan (°):

Er zijn veel coole dingen die je kunt laten gebeuren met deze 16×2 Lcd ‘ S! Probeer een aantal van deze functies te combineren en zie wat er gebeurt.

Hier is een videoversie van deze tutorial, zodat u kunt zien wat elke functie doet op het LCD-scherm in real time:

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *