Nokia 5110-display verbinden met arduino uno

Waarschijnlijk heb ik, zoals alle Arduino-bouwers, een gek idee in mijn hoofd. Ik bestelde alle benodigde onderdelen in China. We hebben erg lang moeten wachten, maar hier werden een kloon van het Arduino Uno-bord en een Nokia 5110 LCD-scherm van tevoren geleverd. Omdat ik nog niet bekend was met elektronica en programmeren, besloot ik om niet voor niets tijd te verspillen en begon ik te leren hoe ik informatie over deze module kon weergeven.

Het eerste wat ik deed was googlen en kwam bij de publicatie "Arduino, Nokia 5110 LCD-module en Cyrillic" van de auteur. En toen realiseerde ik me dat alles wat ik eerder had bedacht niet zo gemakkelijk zou zijn om te doen.

Ik heb het Cyrillische alfabet bedacht, alles is eenvoudig, ik zal het laatste bericht niet kopiëren en plakken, maar de foto's zijn echt een probleem. De taak is: je moet een afbeelding tekenen en deze op het scherm vullen. Geconfronteerd met het eerste probleem, ging ik naar de Arduino-programmeeromgeving, ik zag dat er niet zoiets bestaat als "Insert - Images", maar je moet de afbeelding schrijven met een specifieke code in het hexadecimale nummersysteem. Meerdere redacteuren gevonden, maar die was er niet. De foto wordt niet goed weergegeven. Ik ging op zoek naar problemen die dat zouden kunnen zijn.

Met behulp van de methode van een aantal experimenten, pogingen en proeven, kreeg ik een algoritme dat ik met je zal delen:

1) Je moet de foto zelf krijgen, in zwart-wit .bmp-formaat met een extensie van 84 x 48 pixels.
Bijna iedereen kan dit op verschillende manieren. grafische editor er is een functie "Opslaan als" waar we de nodige parameters specificeren.
Ik was bezig met corelDRAW. We krijgen iets soortgelijks. Het is noodzakelijk om te verduidelijken dat de naam van de afbeelding moet worden opgeslagen. Latijnse lay-out toetsenbord sinds volgend programma het zal niet in staat zijn om het te openen.

2) Indien nodig kunt u de afbeelding in verf bewerken, vreemd genoeg zijn er verschillende eenvoudige en interessante hulpmiddelen.

3) Met de hulp krijgen we de hexadecimale code van de afbeelding.

4) Invoegen gegeven code v programmacode: Arduino en upload naar het bord:

// SCK - Pin 8 // MOSI - Pin 9 // DC - Pin 10 // RST - Pin 11 // CS - Pin 12 // #include LCD5110 myGLCD (8,9,10,11,12); extern uint8_t OKO; zweven y; uint8_t * bm; int tempo; void setup () (myGLCD.InitLCD ();) void loop () (myGLCD.clrScr (); myGLCD.drawBitmap (0, 0, OKO, 84, 48); myGLCD.update (); vertraging (2000);)

#erbij betrekken const uint8_t OKO PROGMEM = (// Gekopieerde hex-code GLCD-tools);

Weet je nog de tijd dat mobiele telefoons "eiken" waren met een apart toetsenbord en een klein monochroom LCD-scherm?

Nu behoort deze markt tot allerlei soorten iPhones, Galaxy, enz., maar beeldschermen vinden zelf een nieuwe toepassing: doe-het-zelfprojecten!

Het zwart-witscherm van 84x48 pixels, dat we zullen bespreken, werd gebruikt in de telefoons van de Nokia 3310. Hun belangrijkste voordeel is het gebruiksgemak. Zo'n display past perfect in uw project voor interactieve communicatie met de gebruiker.

In dit artikel zullen we bekijken hoe u dit grafische display kunt besturen met behulp van de Arduino. Alle verbindingsfuncties, weergavespecificaties en Arduino-software worden overwogen.

Benodigde materialen

  • Arduino of zijn kloon.
  • Connectoren.
  • Printplaat.

Specificaties Nokia 5110 beeldscherm

Laten we eerst eens kijken voordat we het display aansluiten en de Arduino programmeren algemene informatie over hem.

pinout

Twee parallelle rijen van 8 connectoren worden gebruikt om gegevens op het display aan te sluiten en te verzenden. Elke pin is gelabeld op de achterkant van het scherm.


Zoals eerder vermeld, zijn de pinnen parallel geschakeld. Zie hieronder voor het doel van elke connector.


Voeding

U zult merken dat de 5110 LCD twee stroomaansluitingen heeft. De eerste en belangrijkste is de voeding van de weergavelogica. Op de datasheet staat dat deze moet worden geselecteerd in het bereik van 2,7 - 3,3 V. Bij normaal gebruik verbruikt het display 6 tot 7 mA.

De tweede stroomaansluiting is voor de achtergrondverlichting van het beeldscherm. Als je het display zelf van het bord verwijdert (dit is niet nodig, je kunt gewoon naar de afbeelding hieronder kijken), zul je zien dat de achtergrondverlichting heel eenvoudig is: vier witte LED's in de hoeken van het bord. Merk op dat er geen stroombeperkende weerstanden zijn.


Je moet dus voorzichtig zijn met eten. U kunt een stroombegrenzende weerstand gebruiken bij het aansluiten van de "LED"-pin of een maximale voedingsspanning van 3,3 V gebruiken. Vergeet niet dat LED's grote stromen kunnen opnemen! Zonder beperking zullen ze ongeveer 100 mA trekken bij een voedingsspanning van 3,3 V.

Besturingsinterface:

Het display heeft een ingebouwde controller: Philips PCD8544, die de enorme parallelle interface omzet in een handiger seriële interface. De PCD8544 wordt bestuurd met behulp van een synchroon serieel protocol dat vergelijkbaar is met SPI. Merk op dat er tijdteller (SCLK) en seriële gegevensinvoer (DN) pinnen zijn, evenals een active-low chip select (SCE).

Boven de beschouwde seriële connectoren is een andere connector geïnstalleerd - D / C, waarmee informatie wordt ontvangen over of de gegevens die worden verzonden, kunnen worden weergegeven.

Zie het gedeelte "Instructies" van het PCD8544-gegevensblad (pagina 11) voor een lijst met opdrachten. Er zijn opdrachten die het scherm wissen, pixels omkeren, de stroom uitschakelen, enz.

5110 Beeldschermmontage en aansluiting

Voordat u een schets uploadt en gegevens naar het display overdraagt, moet u de verbinding begrijpen. Om dit te doen, moet u het probleem van de montage en verbinding met de Arduino oplossen.

bijeenkomst

Mogelijk hebt u connectoren nodig om het display te "assembleren". 8 stuks is voldoende. U kunt rechte benen of 90 graden gebruiken. Hangt af van verder gebruik... Als u van plan bent om te gebruiken printplaat, is een rail met rechte verbindingsstukken waarschijnlijk de beste keuze.

LCD scherm van Nokia 5110 gemonteerd op miniprintplaat:


U kunt de adapters ook rechtstreeks op het display solderen.

5110 Display aansluiten op Arduino

V dit voorbeeld we zullen het LCD-scherm verbinden met de Arduino. Deze techniek kan eenvoudig worden aangepast aan andere boards en microcontrollers. Om de pinnen voor gegevensoverdracht - SCLK en DN (MOSI) - aan te sluiten, gebruiken we de SPI-pinnen van de Arduino, die zorgen voor snelle overdracht gegevens. Chip select (SCE), reset (RST) en data/control (D/C) pin kunnen worden aangesloten op elke digitale pin. De output van de LED wordt aangesloten op een pin op de Arduino, die PWM-modulatie ondersteunt. Dit maakt het mogelijk flexibel maatwerk helderheid van de achtergrondverlichting.

Helaas kan het display van de 5110 oplopen tot 3,6 volt, dus maak rechtstreeks verbinding met standaard uitvoer 5 V op Arduino is niet toegestaan. De spanning moet worden aangepast. Daarom zijn er verschillende aansluitmogelijkheden.

Directe verbinding met Arduino

De gemakkelijkste manier om rechtstreeks verbinding te maken met Arduino. In dit geval moet u Arduino Pro 3.3V / 8MHz of 3.3V Arduino Pro Mini-boards gebruiken. De onderstaande optie werkt met Arduino-borden 5V. Dit is een werkende optie, maar de levensduur van het scherm kan iets korter zijn.


Pinnen zijn als volgt aangesloten:


Een goede en goedkope optie om ervoor te zorgen extra bescherming- Het installeren van weerstanden tussen de Arduino naar LCD 5110 datapinnen. Als u een Arduino Uno (of een vergelijkbaar 5V-bord) gebruikt, kunt u 10K- en 1K-weerstanden gebruiken. Het aansluitschema van het display met behulp van weerstanden wordt weergegeven in de onderstaande afbeelding:


De aansluiting is hetzelfde als in het eerste voorbeeld, maar in elk signaalpad is een weerstand geïnstalleerd. Tussen SCLK-, DN-, D/C- en RST-pinnen zijn 10K-weerstanden geïnstalleerd. Tussen de SCE-pinnen en pin 7 zit een weerstand van 1K. Wel, tussen pin 9 en de LED-pin blijft 330 Ohm over. en pin 7.

Niveau-omzetters

De derde aansluitmogelijkheid is het gebruik van niveauconverters om te schakelen tussen 5 en 3,3 V. Hiervoor kunt u de Bi-Directional Logic Level Converter of TXB0104-modules gebruiken.


Helaas heeft het display vijf ingangen voor het 3,3V-signaal en de niveauconverters hebben er vier. U kunt de RTS-uitgang hoog laten (door deze aan te sluiten met een weerstand van 10k). Als gevolg hiervan verliest u de mogelijkheid om de reset van het display te regelen, maar alle andere functies zijn beschikbaar.

Eerste voorbeeldschets voor Arduino: LCD-demo

Na een succesvolle verbinding kunt u doorgaan met het downloaden van de schets en de gegevens op het display weergeven!

Arduino-programma

De opmerkingen in de bovenstaande code zouden u moeten helpen het programma te begrijpen. De meeste actie vindt plaats binnen de lcdFunTime ()-functie.

De schets in actie

Na het uploaden naar de Arduino begint de schets te werken en wordt er een demo uitgevoerd - een set standaardanimaties en tests grafische functies... Laten we eerst een paar pixels weergeven. Daarna gaan we verder met het weergeven van lijnen, rechthoeken en cirkels, laden de bitmap, enz.


Nadat de schets is voltooid, schakelt de monitor over naar de modus voor gegevensoverdracht via het seriële protocol. Open uw seriële monitor (baudrate 9600 bps). Wat u op de seriële monitor afdrukt, wordt weergegeven op de LCD-monitor.

Bent u geïnteresseerd in de mogelijkheden om bitmaps weer te geven, lees dan verder. We zullen precies bekijken hoe u uw eigen 84x48 bitmap kunt importeren en op het scherm kunt weergeven.

Tweede schetsvoorbeeld voor Arduino: Bitmaps laden en weergeven

In dit voorbeeld zullen we een nieuwe 84x48 bitmap maken, deze in de Arduino-code integreren en naar de LCD-monitor sturen.


Een bitmap zoeken / maken / wijzigen

Zoek eerst de afbeelding waarop u wilt weergeven LCD scherm 5110. Je zult 84x48 pixels niet sterk kunnen omdraaien, maar je kunt het nog steeds. Hier zijn enkele voorbeelden:

Nadat u de afbeelding hebt geselecteerd, moet u deze corrigeren: maak deze monochroom (2-bits kleur); handhaaf een grootte van 84x48 pixels. De meeste afbeeldingseditors kunnen hiervoor worden gebruikt. Inclusief Paint als je Windows hebt. Sla de resulterende afbeelding op.

Converteer bitmap naar array

De volgende stap is om dit bestand te converteren naar een tekenreeks van 504 bytes. Om dit te doen, kunt u verschillende programma's... Bijvoorbeeld LCD-assistent.

Om een ​​afbeelding in LCD Assistant te laden, gaat u naar Bestand> Afbeelding laden. Een venster met een voorbeeld van de afbeelding zou moeten openen. Zorg ervoor dat de foto juiste maat- 84 pixels breed, 48 pixels hoog en de Byte-oriëntatie is ingesteld op Verticaal, Grootte-endianness op Klein. De rest van de standaardinstellingen moeten correct zijn ingesteld (8 pixels / byte)

Ga daarna naar het tabblad Bestand> Uitvoer opslaan om een ​​tijdelijke tekstbestand... Open dit tekstbestand om uw prachtige nieuwe array te bekijken. Wijzig het arraytype in char (niet unsigned of const). Zorg er ook voor dat de array de juiste naam heeft (geen streepje, begint niet met een getal, enz.).

Importeer om te schetsen en te schilderen!

Kopieer de gemaakte array naar je Arduino-schets. U kunt de schets uit het eerste voorbeeld gebruiken. Plaats uw array waar u maar wilt. Om nu uw tekening weer te geven, vervangt u setup () en lus () in de schets door de onderstaande regels (terwijl u de rest van de functies en variabelen ongewijzigd laat):

// ... variabelen, constanten en een array bitmap hierboven gedefinieerd

lcdBegin (); // Pins instellen en het LCD-scherm initialiseren

setContrast (60); // Pas het contrast aan (voorkeursbereik is 40 tot 60)

setBitmap (flameBitmap); // flameBitmap moet worden vervangen door de naam van uw array

bijwerkenWeergave (); // Werk het scherm bij om de array weer te geven

// Functies voor bediening en grafische weergave op het LCD-scherm worden hieronder gedefinieerd ...

Echt, het is cool geworden? U kunt onder andere meerdere afbeeldingen importeren en kleine animaties maken! Probeer het eens, ik weet zeker dat je het leuk zult vinden!

Links voor het downloaden van extra programma's, bibliotheken en datasheets

Gegevensbladen voor LCD-scherm en stuurprogramma's
  • LCD-gegevensblad - Niet helemaal van 5110, maar zeer vergelijkbaar in specificaties
Arduino-bibliotheken en schetsen
  • PCD8544 Arduino Library - Bibliotheek voor werkende Arduino met LCD-stuurprogramma PCD8544
Bitmap-software
  • TheDotFactory - Geweldige tool voor het maken van arrays van aangepaste lettertypen

Laat uw opmerkingen, vragen achter en deel persoonlijke ervaring onderstaand. In de discussie ontstaan ​​vaak nieuwe ideeën en projecten!

In deze tutorial laten we eerst wat gegevens zien over: Nokia-scherm 5110 en geef de DHT22-sensorgegevens erop weer. We gaan de Nokia 5110 LCD en Arduino koppelen. Je leert de Nokia 5110 Arduino-interface aan de hand van twee voorbeelden. Eerst zullen we alleen wat gegevens op het scherm laten zien en in het tweede voorbeeld zullen we de metingen van de DHT22 temperatuur- en vochtigheidssensor lezen en deze weergeven op het Nokia 5110 LCD-scherm.

Nokia 5110 LCD is een uitstekende keuze voor gegevensweergave. Het is goedkoper dan conventionele LCD's en is zeer gemakkelijk te gebruiken met microcontrollers. Je hoeft alleen maar een paar draden aan te sluiten en je bent klaar om te gaan.

Voor Nokia-connectiviteit 5110 naar Arduino, we hebben het scherm zelf nodig met een microcontroller en een aantal andere details.

  • Nokia 5110 LCD × 1
  • Multiturn-precisiepotentiometer - 1 kΩ (25 omwentelingen) × 1
  • Weerstand 10 kΩ × 4
  • Weerstand 1 kΩ × 1
  • Weerstand 330 Ohm × 1
  • Truien × 1
  • Lay-out (universeel) × 1

Daarnaast hebben we software nodig in de vorm waarmee u waarschijnlijk vertrouwd bent.

Nokia 5110 pinout

Conclusies Nokia 5110 LCD ziet er als volgt uit:

RST: reset-pin
SCE: chipselectiepen
D / C: (Data / Commando): Dit is de modusselectiepen. LAAG betekent commando modus en HOOG betekent datamodus.
DN(Data Pin): seriële gegevensinvoer
SCLK: serieel kloksignaal
VCC: ingangsspanning 2,7 tot 3,3 V
Lichtgevende diode: Deze LED is verlicht. Ingangsspanning 3,3V
GND: land

Voorbeeld 1

In het eerste voorbeeld tonen we de gegevens gewoon op het LCD-scherm van de Nokia 5110. Schematisch diagram voor het aansluiten van Nokia 5110 en Arduino wordt hieronder weergegeven.

Verbindingsdiagram

Voor Nokia werk De 5110 LCD vereist 3,3 V, dus we zullen weerstanden moeten gebruiken om de 5 V om te zetten naar 3,3 V. Als je met de Nokia 5110 zonder weerstanden werkt, zal het scherm werken, maar de levensduur van de LCD zal worden verkort.

  • Verbind pin 1 (RST-pin) met pin 6 van Arduino via een weerstand van 10K.
  • Verbind pin 2 (SCE-pin) met pin 7 van Arduino via een 1K-weerstand.
  • Verbind pin 3 (pin D/C) met pin 5 van Arduino via een weerstand van 10K.
  • Verbind pin 4 (DIN-pin) met pin 4 van Arduino via een weerstand van 10K.
  • Verbind pin 5 (CLK-pin) met Arduino-pin 3 via een 10K-weerstand.
  • Sluit pin 6 (VCC-pin) aan op de 3.3V-pin van Arduino.
  • Sluit pin 7 (LED-pin) aan op de middelste pin van de 1K-potentiometer via een weerstand van 330Ω en verbind de andere twee pinnen met VCC en aarde.
  • Sluit pin 8 (GND-pin) aan op Arduino-aarde.

De aangesloten potentiometer wordt gebruikt om de LCD-achtergrondverlichting te verhogen of te verlagen. Je kunt hem aansluiten op 3,3V als je wilt dat de achtergrondverlichting altijd sterk is, of je kunt hem op aarde aansluiten als je geen achtergrondverlichting wilt.

De code

Download de Nokia 5110-bibliotheek hieronder.

De code van het eerste voorbeeld zelf:

#erbij betrekken PCD8544-lcd; void setup () (lcd.begin (84, 48);) void loop () (lcd.setCursor (0, 0); lcd.print ("WELCOME"); lcd.setCursor (0, 1); lcd.print ("Aan"); lcd.setCursor (0,2); lcd.print ("site"); vertraging (200);)

Allereerst nemen we de bibliotheek voor de Nokia 5110 LCD op. De bibliotheek zal alle commando's bevatten die we nodig hebben voor het LCD-scherm van de Nokia 5110. Vervolgens hebben we een variabele met de naam "lcd" van het type PCD8544 gedeclareerd.
#erbij betrekken PCD8544-lcd;

Vervolgens stellen we in de setup-functie de resolutie voor de Nokia 5110 LCD in. Het LCD-scherm van de Nokia5110 heeft een resolutie van 84x48, daarom hebben we de resolutie ingesteld op 84x48 inch Arduino IDE.

lcd.begin (84, 48);

Vervolgens plaatsten we in de loop-functie eerst de cursor op de eerste regel en typten we "Welkom!" (WELKOM) ..

Lcd.setCursor (0, 0); lcd.print ("WELKOM"); lcd.setCursor (0, 1); lcd.print ("Aan"); lcd.setCursor (0.2); lcd.print ("site"); vertraging (200);

Voorbeeld nr. 2

In het tweede voorbeeld zullen we de DHT22 temperatuur- en vochtigheidssensor op de Arduino aansluiten en DHT22 gebruiken om de temperatuur, vochtigheid en warmte-index te lezen. We zullen deze gegevens vervolgens tonen op het LCD-scherm van de Nokia 5110. Het schematische diagram van de interface van de Nokia 5110, Arduino en DHT22 wordt hieronder weergegeven.

Verbindingsdiagram

De Nokia 5110 LCD naar Arduino verbindingen worden beschreven in het eerste voorbeeld. Sluit de DHT22-sensorpinnen aan op Arduino zoals weergegeven in het bovenstaande diagram:

  • Pin 1 van DHT22 naar 5V Arduino.
  • DHT22 pin 2 naar Arduino pin 8.
  • DHT22 pin 4 naar Arduino grondpin.

De code

Download de Nokia 5110- en DHT-bibliotheken hieronder.

De code voor het tweede voorbeeld staat hieronder:

#erbij betrekken #inclusief "DHT.h" #define DHTPIN 8 #define DHTTYPE DHT22 PCD8544 lcd; DHT dht (DHTPIN, DHTTYPE); void setup () (lcd.begin (84, 48); dht.begin ();) void loop () (lcd.clear (); float brom = dht.readHumidity (); float temp = dht.readTemperature (); // Lezen van de temperatuur in graden float fah = dht.readTemperature (true); // Lezen van de temperatuur in fahrenheit if (isnan (hum) || isnan (temp) || isnan (fah)) (// Controleren of de Arduino de waarden hebben ontvangen of niet lcd.println ("Kan de DHT-sensor niet lezen!"); return ;) float heat_index = dht.computeHeatIndex (fah, hum); // De warmte-index lezen in fahrenheit float heat_indexC = dht .convertFtoC (heat_index); // Aflezen van de warmte-index in graden lcd.setCursor (0, 0); lcd.print ("Humi:"); lcd.print (hum); lcd.print ("% \ t") ; lcd .setCursor (0, 1); lcd.print ("Temp:"); lcd.print (temp); lcd.print ("* C"); lcd.setCursor (0,2); lcd.print ( "Temp : "); lcd.print (fah); lcd.print (" * F \ t "); lcd.setCursor (0,3); lcd.print (" Hi: "); lcd.print (heat_indexC) ; lcd .print ("* C"); lcd.setCursor (0,4); lcd.print ("Hi:"); lcd.print (heat_inde x); lcd.println ("* F"); vertraging (2000); )

Allereerst hebben we bibliotheken toegevoegd voor de Nokia 5110 LCD en DHT22 temperatuur- en vochtigheidssensor. Daarna hebben we pin 8 voor DHT22 (DHTPIN 8) geïnitialiseerd en het DHT-sensortype gedefinieerd. Er zijn ook andere modellen DHT-sensoren beschikbaar, maar we hebben DHT22 gebruikt vanwege zijn hoge precisie... Vervolgens hebben we een variabele "lcd" van het type PCD8544 voor de LCD gedeclareerd en een variabele "dht" van het type DHT voor de DHT22-sensor.

#erbij betrekken #inclusief "DHT.h" #define DHTPIN 8 #define DHTTYPE DHT22 PCD8544 lcd; DHT dht (DHTPIN, DHTTYPE);

Dan in de functie instellingen instellen we hebben de resolutie voor Nokia 5110 LCD ingesteld. De Nokia5110 LCD heeft een resolutie van 84x48, daarom zetten we de resolutie in de Arduino IDE op 84x48. Daarna begonnen we gegevens te ontvangen van de DHT22-sensor met behulp van de opdracht dht.begin ().

Lcd.begin (84, 48); dht.begin ();

In de loop-functie lezen we de vochtigheids-, temperatuur- en warmte-indexwaarden uit DHT22 en slaan deze op in variabelen. Uiteindelijk hebben we ze afgedrukt op het LCD-scherm van de Nokia 5110.

Float brom = dht.readHumidity (); float temp = dht.readTemperature (); float fah = dht.readTemperature (true); ... ... ... lcd.setCursor (0.4); lcd.print ("Hallo:"); lcd.print (heat_index); lcd.println ("* F");

Voor onervaren gebruikers die zelfstandig besturingssystemen voor robotapparatuur of automatiseringsmiddelen willen creëren, worden verschillende hardwaremodules en hun aanpassingen aangeboden op de IT-dienstenmarkt. Dergelijke apparaten hebben doorgaans een eenvoudige architectuur met copyright en bijbehorende software in de vorm eenvoudige hulpprogramma's... Dergelijke producten kunnen zowel onafhankelijk als gekoppeld aan anderen worden gebruikt. computersystemen via bedrade of draadloze interfaces.

Voordelen van werken met grafische displays

Voorheen werden grafische monochrome displays op grote schaal gebruikt bij de vervaardiging van mobiele telefoons.

Nokia heeft een groot aantal verschillende modellen uitgerust met een dergelijk scherm. De dagen van die telefoons zijn voorbij, maar displays zijn niet van de markt verdwenen en worden tot op de dag van vandaag actief gebruikt. Ze bleken onmisbaar en bovendien werken goedkope apparaten voor het weergeven van tekst en displays door het creëren van matrixen van stippen op de schermen, die het beeld verlichten. Ze besparen middelen en tijd tijdens het weergeven een groot aantal van informatie en het besteden van een kleine hoeveelheid energie. Er zijn een groot aantal verschillende regios waar Nokia 5110-apparaten kunnen worden gebruikt: fotografie, video, televisie, medicijnen en vele andere industrieën.

Alvorens te beschrijven hoe u een Nokia-scherm op de hardware aansluit Arduino-module het is noodzakelijk om een ​​korte presentatie van deze apparaten te geven.

Voordelen van het gebruik van Arduino Uno

Er zijn veel platforms en microcontrollers gemaakt die analoog zijn aan het Arduino-platform dat in dit artikel wordt gepresenteerd. Sommige van deze analogen zijn Netmedia's BX-24, Parallax Basic Stamp en vele anderen. Laten we echter stilstaan ​​​​bij de Arduino Uno, aangezien deze constructor een aantal voordelen heeft ten opzichte van andere controllers. Daar moet u op letten bij het kiezen van een platform voor werk, draai het om goedkoop van deze apparaten. Modellen met deze software kosten minder dan $ 45, en kunnen indien gewenst met de hand worden geassembleerd, omdat ze een vrij eenvoudig ontwerp hebben. Het tweede vermeldenswaardige punt is dat Arduino-platforms met alles kunnen werken besturingssystemen: Windows, Linux en Macintosh OSX, terwijl alle andere beperkt zijn tot uitsluitend werken met Windows.

Beschrijving van Arduino Uno

Arduino Uno - ontwikkel- en programmeerplatform verschillende apparaten die 14 . heeft digitale ingangen en uitgangen, 6 analoge ingangen, meerdere connectoren (USB, ICSP, power) en een knop die de functie heeft om het apparaat te resetten. V dit platform ingebouwde zekering om te voorkomen: kortsluiting en het verstrekken van veilig werken met USB-kabel. Het wordt geactiveerd wanneer er meer dan 500 mA stroom door de USB-poort stroomt. Vergeleken met computers voor algemeen gebruik, Arduino Uno werkt veel nauwer samen met de omgeving fysieke omgeving... Het platform is gebouwd op printplaat en is ontworpen om mee te werken open source... Het kan worden gebruikt door zowel studenten als amateurs, maar ook door professionals die de modellen naar eigen inzicht kunnen uitbreiden en aanvullen en vrij kunnen werken met open source. Het platform is zo ontworpen dat er eenvoudig nieuwe componenten aan toegevoegd kunnen worden. Het ontwerp gaat ervan uit dat de ontwikkelaar ervoor kiest om het apparaat zelfstandig te gebruiken, daarom wordt het niet in de behuizing geplaatst en heeft het geen starre verbinding met de installatie.

Nokia 5110 weergavebeschrijving

De Nokia 5110 Graphic Display is een budget 1,6-inch monochroom display waarmee je meer kunt weergeven dan alleen tekst informatie maar ook tekeningen. De resolutie is 48x84 px en de spanning waarop hij kan werken is 2,7-5 V. Informatie wordt in verticale blokken op het scherm weergegeven. Ze zijn acht pixels hoog en zes lijnen breed. Op het achterpaneel staan ​​aanduidingen van elk contact, waardoor gebruikers hun locatie niet kunnen verwarren.

Eerder deze blog behandelde verschillende LCD's / Indicatoren en hoe ze te gebruiken vanuit Arduino. Hun belangrijke nadeel is vrij grote maat evenals gewicht. Dit is vaak geen probleem. Als u bijvoorbeeld een doe-het-zelf-soldeerstation in een zelfgemaakte behuizing monteert, maakt het op de een of andere manier niet uit hoe groot het display is. Aan de andere kant, als je een display nodig hebt op bijvoorbeeld een quadcopter, dan worden gewicht en grootte van cruciaal belang. Daarom zullen we vandaag leren werken met een heel klein en licht scherm van de Nokia 5110-telefoon.

Opmerking: Andere berichten over het onderwerp schermen - Ik heb geleerd hoe ik tekst op een LCD-indicator van Arduino kan weergeven, Over het gebruik van 1602-schermen met een I2C-adapter, We werken met LCD op basis van HD44780 zonder bibliotheken, en Digitale thermometer van een LCD-matrix, TMP36 en Arduino.

Maak je geen zorgen, effectief kopen bestaat tegenwoordig niet meer Nokia-telefoon 5110 hoeft u het schermpje niet los te wrikken en alle andere onderdelen weg te gooien. Nokia 5110-schermen zijn heel gebruikelijk zelfstandige module voor radioamateurs en kost tussen de $ 2 en $ 5, afhankelijk van de winkel. In Rusland kan de module bijvoorbeeld worden gekocht bij tpai.ru, arduino-kit.ru, amperkot.ru, compacttool.ru, chipster.ru of electromicro.ru. En natuurlijk worden de schermen op AliExpress voor de laagste prijs verkocht, maar je zult een maand of twee moeten wachten tot ze uit China komen.

Zoals vaak het geval is in de Arduino-wereld, zijn er al kant-en-klare bibliotheken voor de module, en meer dan één. Ik vond de LCD5110-bibliotheek die beschikbaar is op rinkydinkelectronics.com leuk. Deze bibliotheek heeft twee versies. De eerste heet LCD5110_Basic. Het is eenvoudiger en kan alleen tekst in lettertypen weergeven. verschillende maten... Het is mogelijk om uw eigen lettertypen te maken. De tweede versie heet LCD5110_Graph. Het heeft alle mogelijkheden van de eerste bibliotheek en kan daarnaast lijnen, rechthoeken, cirkels, enzovoort tekenen.

Voor de doeleinden van dit bericht zal LCD5110_Basic worden gebruikt. Beide bibliotheken zijn goed gedocumenteerd en hebben veel gebruiksvoorbeelden, dus als u LCD5110_Graph nodig heeft, kunt u dit gemakkelijk zelf uitzoeken. Er moet echter worden opgemerkt dat om LCD5110_Basic te compileren zonder waarschuwingen, ik een paar kleine wijzigingen in de code moest aanbrengen.

Dus een voorbeeld van het gebruik van de bibliotheek:

#erbij betrekken

extern uint8_t BigNumbers;
extern uint8_t MediumNumbers;
extern uint8_t SmallFont;

/ * SCK / CLK, MOSI / DIN, DC, RST, CS * /
LCD5110 lcd (2, 3, 4, 6, 5);

ongeldige instelling ()
{
lcd.InitLCD ();
}

int-ctr = 0;
lege lus ()
{
lcd.clrScr ();

Lcd.setFont (BigNumbers);
lcd.printNumI (ctr, RECHTS, 0);

Lcd.setFont (gemiddelde nummers);
lcd.printNumF (12.34, 2, RECHTS, 24);

Lcd.setFont (SmallFont);
lcd.print ("Lijn 1", 0, 8 * 0);
lcd.print ("Lijn 2", 0, 8 * 1);
lcd.print ("Lijn 3", 0, 8 * 2);
lcd.print ("L 4", 0, 8 * 3);
lcd.print ("L 5", 0, 8 * 4);
lcd.print ("0123456789ABCD", 0, 8 * 5);

Ctr + = 5;
als (ctr> = 1000)
ctr = 0;

Vertraging (500);
}

Hoe het eruit ziet in actie:

Ik hoop dat je de code niet hoeft te kauwen. Merk op dat de module wordt aangedreven door 3,3 V, maar dat deze normaal gesproken opdrachten van de Arduino begrijpt zonder enige logische niveau-converters. Dienovereenkomstig verbinden we de VCC (voeding) en BL (achtergrondverlichting) pinnen met 3,3 V, verbinden GND met aarde en verbinden we de andere vijf pinnen met de digitale pinnen van de Arduino. We geven de pinnummers door aan de constructeur van de LCD5110-klasse in overeenstemming met de opmerkingen in de gegeven code.

Simpel, niet? Volledige versie Je kunt de bronnen voor deze notitie vinden in deze repository op GitHub. Aanvullingen en vragen zijn zoals altijd welkom op alle mogelijke manieren.

Toevoeging: De auteur van de bibliotheek voor het werken met het Nokia 5110-scherm is ook de auteur van de OLED_I2C-bibliotheek die is ontworpen om te werken met de even populaire OLED-schermen met I2C-interface. Een voorbeeld van het gebruik van OLED_I2C is te vinden in de post De Sega Genesis-joystick gebruiken in Arduino-projecten. Zoals je zou verwachten, hebben deze twee bibliotheken een vergelijkbare interface.