Laten we eens kijken hoe we een 84x48 pixel liquid crystal display van de Nokia 5110 op Arduino kunnen aansluiten.
Noodzakelijk
- -Arduino;
- - LCD-scherm voor Nokia 5110/3310;
- - aansluitdraden.
instructies:
Stap 1
Laten we het LCD-scherm van Nokia 5110 aansluiten op Arduino volgens het onderstaande diagram.
Stap 2
Er zijn veel bibliotheken geschreven om met dit LCD-scherm te werken. Ik raad aan om deze te gebruiken: https://www.rinkydinkelectronics.com/library.php?id=44 (download het LCD5110_Basic.zip-bestand).
Om te installeren, unzip het bestand in de Arduino IDE / libraries / directory.
De bibliotheek ondersteunt de volgende functies.
LCD5110 (SCK, MOSI, DC, RST, CS); - aankondiging van het LCD-scherm dat de correspondentie met de pinnen van de Arduino aangeeft;
InitLCD ([contrast]); - initialisatie van het 5110-display met een optionele indicatie van contrast (0-127), de standaard is 70;
setContrast (contrast); - stelt het contrast in (0-127);
inschakelenSlaap (); - zet het scherm in de slaapstand;
uitschakelenSlaap (); - haalt het scherm uit de slaapstand;
clrScr (); - wist het scherm;
clrRow (rij, [start], [end]); - het wissen van de geselecteerde rijnummerrij, van begin tot eind;
omkeren (waar); en omkeren (vals); - het in- en uitschakelen van de inversie van de inhoud van het LCD-scherm;
afdrukken (tekenreeks, x, y); - geeft een reeks tekens weer met de opgegeven coördinaten; in plaats van x-coördinaat kunt u LEFT, CENTER en RIGHT gebruiken; de hoogte van het standaardlettertype is 8 punten, dus de regels moeten op 8 punten worden geplaatst;
printNumI (num, x, y, [lengte], [vuller]); - toon een geheel getal op het scherm op een bepaalde positie (x, y); lengte - de gewenste lengte van het nummer; vulmiddel - een teken om de "leegtes" te vullen als het getal kleiner is dan de gewenste lengte; de standaard is een lege ruimte ";
printNumF (num, dec, x, y, [verdeler], [lengte], [vuller]); - een getal met drijvende komma weergeven; dec - aantal decimalen; scheidingslijn - decimaalteken, punt "." standaard;
setFont (naam); - kies een lettertype; ingebouwde lettertypen heten SmallFont en TinyFont; u kunt uw lettertypen in de schets definiëren;
invertText (waar); en invertText (false); - tekstinversie aan/uit;
drawBitmap (x, y, data, sx, sy); - geef de afbeelding op het scherm weer op de x- en y-coördinaten; data - een array met een afbeelding; sx en sy zijn de breedte en hoogte van de afbeelding.
Stap 3
Laten we zo'n schets schrijven. Eerst nemen we de bibliotheek op en vervolgens declareren we een instantie van de klasse LCD5110 met pintoewijzingen.
In de setup () procedure initialiseren we het LCD-scherm.
In de lus () -procedure wissen we het scherm en schrijven we willekeurige tekst in een klein lettertype, eronder, in een gemiddeld lettertype, de teller van seconden weergeven.
Stap 4
Laten we een afbeelding weergeven. Laten we hiervoor een monochrome afbeelding maken die we op de Nokia 5110 willen weergeven. Onthoud dat de schermresolutie 48 bij 84 pixels is en dat de afbeelding niet groter mag zijn. Op de pagina https://www.rinkydinkelectronics.com/t_imageconverter_mono.php converteer je de afbeelding naar een bit-array. Download het resulterende bestand met de extensie "*.c" en voeg het toe aan het project via het menu: Sketch -> Bestand toevoegen … of plaats het bestand eenvoudig in de schetsmap en laad vervolgens de Arduino IDE opnieuw.
Stap 5
Nu moet je een array declareren met afbeeldingsgegevens in de programmacode (in mijn code is dit de regel extern uint8_t mysymb;), en vervolgens de functie drawBitmap () gebruiken om de afbeelding op de gewenste plaats op het scherm weer te geven.
Stap 6
Upload de schets naar Arduino. Nu wordt de tekst vervangen door een afbeelding en verhoogt de teller elke keer zijn waarde.