Anslutande Nokia 5110 Display till Arduino Uno

Förmodligen, jag, som alla arduino-byggare, det fanns någon delusional idé i huvudet. Jag beställde alla nödvändiga detaljer i Kina. Det var nödvändigt att vänta en mycket lång tid, men här levererades några dagar senare till Arduino Uno Board och Nokia 5110 LCD-skärmen. Sedan det med elektronik och programmering var jag inte bekant, jag bestämde mig för att inte slösa tid förgäves och började lära sig att visa information om den här modulen.

Först och främst, jag thugreed och fick publicera "Arduino, Nokia 5110 LCD-modulen och Cyrillic" från författaren. Och då insåg jag att allt som tidigare tyckte var inte så lätt att göra.

Med kyrillic, jag räknade ut, allt är enkelt, jag kommer inte att kopiera det sista inlägget, men med bilder verkligen ett problem. Uppgift: Du måste rita en bild och häll den på displayen. Mot bakgrund av det första problemet gick jag till Arduino-programmeringsmiljö Jag såg att det inte finns något sådant som "infoga - bilder", men du måste skriva en bild till en viss kod i hexen. Jag hittade flera redaktörer, men det var inte där. Bilden visas tillräckligt. Jag började leta efter ett problem som kunde vara.

Metoden för en massa experiment, försök och prover visade sig vara den algoritm som jag kommer att dela med dig:

1) Du måste få en bild i ett svartvitt format.bmp med en förlängning av 84 x 48 pixlar.
Du kan göra det med en massa sätt i nästan varje grafisk redigerare. Det finns en funktion "som" där "där du anger de nödvändiga parametrarna.
Jag gjorde i Coreldrraw. Vi får något liknande. Du måste klargöra att namnet på bilden måste sparas av den latinska tangentbordslayouten, eftersom nästa program inte kan öppnas.

2) Om det behövs kan du redigera bilden i färg, märkligt nog, det finns några enkla och intressanta verktyg.

3) Med hjälp får vi en hex-kod på bilden.

4) Sätt i den här koden i Arduino-programkoden och fyll i brädet:

// sck - stift 8 // mosi - pin 9 // dc - stift 10 // första - stift 11 // cs - stift 12 // #include LCD5110 MYGLCD (8,9,10,11,12); Extern uint8_t oko; Flyta y; uint8_t * bm; Int pacy; void setup () (myglcd.initlcd ();) void slinga () (myglcd.clrscr (); myglcd.drawbitmap (0, 0, OKO, 84, 48); MYGLCD.Update (); Fördröjning (2000);)

#Omfatta. const uint8_t oko progmem \u003d (// kopierade hex kod glcd verktyg);

Kom ihåg de tider när mobiltelefoner var "ek", de hade ett separat tangentbordstangentbord och en liten monokrom flytande kristalldisplay?

Nu hör denna marknad till varje iPhone, Galaxy, etc., men visar hitta en ny applikation: DIY-projekt!

Svartvit bild 84x48 pixlar, som vi kommer att överväga, användes i Nokia 3310 telefoner. Deras huvudsakliga fördelar - enkel hantering. En liknande bildskärm kommer perfekt att passa in i ditt projekt för interaktiv informationsutbyte med användaren.

I artikeln kommer vi att överväga förvaltningen av den här grafiska displayen med hjälp av Arduino. Alla funktioner i anslutningen, specifikationerna för displayen och programmet för Arduino beaktas.

Nödvändiga material

  • Arduino eller hennes klon.
  • Kontakter.
  • Kretskort.

Nokia 5110 Visa specifikationer

Innan du ansluter bildskärmen och programmering Arduino, låt oss överväga allmän information om det.

Plotovka

Två parallella rader med 8 kontakter används för att ansluta och sända data på displayen. På baksidan av displayen appliceras varje tall.


Som redan nämnts är stiften parallella med varandra. Information om tilldelningen av varje kontakt visas nedan.


Mat

Du har redan märkt det på LCD-skärmen 5110 två kontaktdon för ström. Den första är det viktigaste - den visningslogikkraft. I datablad är det indikerat att det ska väljas i intervallet 2,7 - 3,3 V. Vid normal drift konsumeras displayen från 6 till 7 mA.

Den andra strömkontakten är utformad för att belysa displayen. Om du tar bort själva displayen från brädet (det är inte nödvändigt att göra detta, kan du bara titta på ritningen nedan), du kommer att se att bakgrundsbelysningen är mycket enkel: fyra vita lysdioder som ligger i brädans hörn . Observera att det inte finns några strömbegränsande motstånd.


Så med måltider måste du vara försiktig. Du kan använda ett strömbegränsande motstånd när du ansluter en Pina "LED" eller använd den maximala matningsspänningen 3.3 V. Glöm inte att lysdioderna kan absorbera stora strömmar! Utan begränsning drar de ca 100 mA vid en matningsspänning 3,3 V.

Hanteringsgränssnitt

Displayen är inbyggd i regulatorn: Philips PCD8544, som omvandlar ett massivt parallellt gränssnitt till en mer bekväm serie. PCD8544 styrs av ett synkront seriell protokoll som liknar SPI. Observera att det finns tidsräknare (SCLK) och seriell datainmatning (DN), såväl som aktivt lågt chipval (SCE).

Ovannämnda seriella kontakter är att ställa in ett annat kontaktdon - D / C, som mottas med information om huruvida data kan visas som sänds.

För en lista med kommandon, läs "Instruktioner" avsnittet från DataSheet PCD8544 (sidan 11). Det finns kommandon som renar displayen, invertera pixlar, stäng av effekten etc.

Bygg och anslut displayen 5110

Innan du startar skissen och dataöverföringen till displayen måste du demontera anslutningarna. För att göra detta är det nödvändigt att lösa problemet med dess montering och anslutning till Arduino.

hopsättning

Anslutningar kan vara användbara för "Build" -skärmen. 8 stycken kommer att räcka. Du kan använda raka fötter eller belägen på 90 grader. Beror på vidare användning. Om du planerar att använda ett kretskort, är järnväg med rakt kontakt, troligtvis det bästa valet.

LCD-skärm från Nokia 5110, installerad på ett mini-kretskort:


Du kan och direkt säkra adaptrar till displayen.

Anslut displayen 5110 till Arduino

I det här exemplet ansluter vi LCD-skärmen till Arduino. Denna teknik kan enkelt anpassas till andra kort och mikrokontroller. För att ansluta dataöverföringsnålarna - SCLK och DN (MOSI) - Vi använder Arduino Spi-stiften, som ger snabb dataöverföring. Chip-val (SCE), omstart (RST) och PIN-data / -kontroll (D / C) kan anslutas till någon digital stift. Utmatningen från LED-lampan är ansluten till stiftet på Arduino, som stöder PWM-modulering. Tack vare detta är en flexibel justering av bakgrundsbelysningens ljusstyrka möjlig.

Tyvärr kan den maximala visningsspänningen på displayen 5110 nå 3,6 volt, så att det är omöjligt att ansluta direkt till standardutgången på 5 V på Arduino. Spänningen måste konfigureras. Följaktligen visas inte så många alternativ för anslutning.

Direktanslutning till Arduino

Det enklaste alternativet att ansluta till Arduino är direkt. I det här fallet måste du använda Arduino Pro 3.3V / 8MHz eller 3.3V / 8MHz-kort eller 3.3V Arduino Pro Mini. Det alternativ som föreslås nedan arbetar med Arduino 5V-brädor. Detta är en arbetsversion, men displayperioden kan minskas något.


Pins är anslutna enligt följande:


Ett bra och billigt alternativ att tillhandahålla ytterligare skydd är installationen av motstånd mellan Peni Data Pins från Arduino till LCD 5110. Om du använder Arduino Uno (eller liknande 5-voltbräda) kan du använda motstånd med en par 10 com och 1 com. Displayanslutningsschema med hjälp av motstånd visas i figuren nedan:


Anslutning är densamma som i det första exemplet, men ett motstånd är installerat i varje kedjekedja. Motstånd på 10 kΩ är installerade mellan SCLK, DN, D / C och RST-stiften. Motstånd med ett parvärde på 1 com - mellan Pins SCE och PIN 7. Tja, och 330 ohm kvarstår mellan stift 9 och stift med en LED. och stift 7.

Nivåomvandlare

Det tredje anslutningsalternativet använder en nivåomvandlare för att växla mellan 5 och 3,3 V. För dessa ändamål kan du använda de dubbelriktade logiknivåomvandlaren eller TXB0104-modulerna.


Tyvärr, på displayen fem ingångar för en signal 3.3 V, och på nivåomvandlare - fyra. Du kan lämna RTS-utgången i hög tillstånd (ansluter den med ett motstånd med 10 COM). Som ett resultat är du perfekta möjligheten att hantera skärmens återställning, men alla andra funktioner kommer att finnas tillgängliga.

Det första exemplet på skissen för Arduino: LCD-demo

Efter en säker anslutning kan du byta till nedladdning av skissen och visa data på displayen!

Program för Arduino.

Kommentarer i koden ovan måste hjälpa dig att förstå programmet. De flesta av åtgärderna förekommer i funktionen LCDFUNTIME ().

Skiss i aktion

Efter lastning på Arduino börjar skissen träna och driver demo - en uppsättning standard animeringar och utvecklingen av grafiska funktioner. Till att börja med visar du flera pixlar. Därefter vänder vi oss till visning av linjer, rektanglar och cirklar, för att helt enkelt förenkla rasterbilden etc.


Efter att ha testat skissen växlar bildskärmen till datatransmissionsläget enligt seriell protokoll. Öppna seriekontrollen (med en dataöverföringshastighet på 9600 bitar per sekund). Det du skriver in på seriell bildskärm visas på LCD-skärmen.

Om du är intresserad av möjligheten att visa rasterbilder, läs vidare. Vi kommer att titta på exakt hur du importerar din egen rasterbild 84x48 och visar den på skärmen.

Det andra exemplet på skissen för Arduino: Laddar och visar rasterbilder

I det här exemplet skapar vi en ny rasterbild på 84x48, integrera den i Arduino-koden och skicka bildskärmen på LCD-skärmen.


Hitta / skapa / ändra bitmappsbilden

Först, hitta den bild du vill visa på LCD-skärmen 5110. Det fungerar inte mycket på 84x48 pixlar, men du kan fortfarande. Här är några exempel:

Efter att ha valt bilden är det nödvändigt att korrigera det: Gör monokrom (2-bitars färg); Att klara storleken på 84x48 pixlar. För att göra detta kan du använda de flesta bildredaktörer. Inklusive färg, om du har fönster. Spara den resulterande bilden.

Konvertera en bitmapps bild i en array

Nästa steg är att konvertera den här filen till en 504-byte-array av tecken. För att göra detta kan du använda olika program. Till exempel LCD-assistent.

För att ladda ner bilden i LCD-assistenten, gå till menyn Arkiv\u003e Ladda om bild. Fönstret måste öppnas med förhandsgranskningen av bilden. Se till att den senare är den rätta storleken - 84 pixlar i bredd, 48 pixlar i höjd, och byte orienteringsinställningen är inställd på vertikalt läge, storlekens endianness i lite. De återstående standardinställningarna måste utställas korrekt (8 pixlar / byte)

Därefter, gå till fliken Fil\u003e Spara utmatning för att generera en temporär textfil. Öppna den här textfilen för att se din nya underbara array. Ändra typen av array på char (inte unsigned och inte const). Se också till att matrisen är korrekt namngiven (utan streck, börjar inte med numret, etc.).

Importera till skiss och rita!

Kopiera den skapade arrayen till Skatch för Arduino. Du kan använda skissen från det första exemplet. Sätt in din matris någonstans. För att visa din ritning, byt ut installationen () och loop () i skisslinjerna, som visas nedan (medan de återstående funktionerna och variablerna förblir oförändrade):

// ... variabler, konstanter och uppsättning rasterbild definieras ovan

lcdbegin (); // Ställa in PINS och LCD-initialiseringsdisplay

setContrast (60); // kontrastinställning (föredraget intervall - från 40 till 60)

bETBITMAP (FLAMEBITMAP); // FlameBitMap måste bytas ut med namnet på din matris

uPDATEDISPLAY (); // Display Update för att visa en array

// Funktioner för kontroll och grafik på LCD-skärmen definieras nedan ...

Sant, det visade sig coolt? Bland annat kan du importera flera bilder och skapa små animationer! Försök, säker på att du kommer att tycka om det!

Länkar för nedladdning av ytterligare program, bibliotek och datablad

Datablad på LCD-skärmen och drivrutinerna
  • LCD-datablad - inte exakt från 5110, men mycket liknande med egenskaper
Arduino och skissbibliotek
  • PCD8544 Arduino Library - Arduino Library med LCD-drivrutin PCD8544
Program för att skapa rasterbilder
  • Thedotfactory - ett bra verktyg för att skapa anpassade font arrays

Lämna dina kommentarer, frågor och dela din personliga upplevelse nedan. Nya idéer och projekt är ofta födda i diskussionen!

I den här lektionen visar vi först några data på Nokia 5110-skärmen, och efter att du har tagit bort DHT22-sensorns data på den. Vi kommer att länka Nokia 5110 och Arduino LCD. Du kommer att lära dig Nokia 5110 Arduino-gränssnittet med två exempel. Först visar vi helt enkelt vissa data på skärmen, och i det andra exemplet kommer vi att läsa från temperatursensorn och fuktigheten DHT22-indikatorerna och visa dem på Nokia 5110 LCD-skärmen.

Nokia 5110 LCD är ett utmärkt val att visa data. Det är billigare än vanligt LCD och det är väldigt lätt att använda med mikrokontroller. Du behöver bara ansluta flera ledningar och allt är klart att arbeta.

För att ansluta Nokia 5110 till Arduino behöver vi en skärm med en mikrokontroller och ett antal delar.

  • Nokia 5110 LCD × 1
  • Multi-Turn Precision Potentiometer - 1 com (25 varv) × 1
  • Motstånd 10 Com × 4
  • Motstånd 1 com × 1
  • Motstånd 330 Ohm × 1
  • Jumper × 1.
  • Layout (Universal) × 1

Dessutom behöver vi programvara i den form som du troligen är bekant.

Pickup Nokia 5110.

Nokia 5110 LCD: s resultat ser ut så här:

Rast: Stift återställning
Sce: Pin urval chip
D / c.: (Data / kommando): Det här är utmatningen av lägesvalet. Lågt betyder ett kommando-läge och hög betyder dataläge.
Dn. (Data PIN): Serie data vid ingången
Sclk.: Seriell klocksignal
VCC.: Ingångsspänning från 2,7 till 3,3 V
Ljusdiod: Denna LED är bakgrundsbelyst. Ingångsspänning 3.3 V
Gnd.: land

Exempel №1

I det första exemplet visar vi bara data på Nokia 5110 LCD. Det schematiska diagrammet för anslutning av Nokia 5110 och Arduino visas nedan.

Anslutningsschema

Nokia 5110 LCD kräver 3,3 V, så vi måste använda motstånd för att konvertera 5 V 3.3 V. Om du arbetar med Nokia 5110 utan motstånd, kommer skärmen att fungera, men LCD-livslängden kommer att minskas.

  • Anslut kontakt 1 (kontakta RST) till 18 arduino via ett 10 com motstånd.
  • Anslut kontakt 2 (Kontakt SCE) för att kontakta 7 arduino via 1 com motstånd.
  • Anslut kontakt 3 (Kontakta D / C) för att kontakta 5 Arduino via ett 10 Com-motstånd.
  • Anslut kontakten 4 (DIN-kontakten) för att kontakta 4 Arduino via ett 10 Com-motstånd.
  • Anslut kontakt 5 (CLK-kontakt) till Arduino-kontakt via ett 10 Com-motstånd.
  • Anslut kontakt 6 (VCC-kontakt) för att kontakta 3.3 V Arduino.
  • Anslut kontakt 7 (LED-kontakt) till den genomsnittliga potentiometerkontakten av 1 kΩ via ett 330 ohm motstånd och anslut två andra kontakter till VCC och jordning.
  • Anslut kontakt 8 (GND-kontakt) till jordningen Arduino.

Den anslutna potentiometern används för att öka eller minska markeringen av LCD-skärmen. Du kan ansluta den till 3.3 V om du vill att bakgrundsbelysningen ska vara stark, eller du kan ansluta den till marken om du inte vill ha bakgrundsbelysning.

Koden

Ladda ner Nokia 5110-biblioteket nedan.

Koden i sig är det första exemplet:

#Omfatta. PCD8544 LCD; VOID SETUP () (LCD.BEGIN (84, 48);) Void Loop () (LCD.SetCursor (0, 0); LCD.Stur ("Välkommen"); LCD.Sätt Cursor (0, 1); LCD.Print ("Till"); LCD.Sätt Cursor (0,2); LCD.Print ("plats"); Fördröjning (200);)

Först och främst kopplar vi på biblioteket för Nokia 5110 LCD. Biblioteket kommer att innehålla alla kommandon som vi behöver för Nokia 5110 LCD. Då förklarade vi en variabel med namnet "LCD" -typ PCD8544.
#Omfatta. PCD8544 LCD;

Sedan i installationsfunktionen ställer vi upp upplösningen till Nokia 5110 LCD. Nokia5110 LCD-skärmen har en upplösning på 84x48, så vi installerade 84x48 upplösning i Arduino IDE.

LCD.BEGIN (84, 48);

Sedan, i slingfunktionen (cykel), sätter vi först markören till den första raden och tryckt "Välkommen!" (Välkommen) ..

LCD.Sätt Cursor (0, 0); LCD.Print ("Välkommen"); LCD.Sätt Cursor (0, 1); LCD.Print ("till"); LCD.Sätt Cursor (0,2); LCD.Print ("webbplats"); Fördröjning (200);

Exempel nummer 2.

I det andra exemplet ansluter vi temperatur- och fuktighetssensorn DHT22 till Arduino och med DHT22 kommer vi att läsa temperatur, fuktighet och termiskt index. Därefter visar vi dessa data på Nokia 5110 LCD. Nokia 5110, Arduino och DHT22-gränssnittet Schematiskt diagram visas nedan.

Anslutningsschema

Nokia 5110 LCD-skärmanslutningarna med Arduino beskrivs i det första exemplet. Anslut kontakterna från DHT22-sensorn med Arduino, som visas i diagrammet ovan:

  • Kontakta 1 DHT22 på 5V Arduino.
  • Kontakta 2 DHT22 för att kontakta 8 Arduino.
  • Kontakta 4 DHT22 till jordbearbetning Arduino.

Koden

Ladda ner Nokia 5110 och DHT-biblioteken nedan.

Koden för det andra exemplet nedan:

#Omfatta. #include "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 Hum \u003d DHT.ReadHumidity (); Float Temp \u003d DHT.ReadTemperature (); // Läsa temperaturen i grader Float FAH \u003d DHT.ReadTemperature (True); // Läs temperaturen i Fahrenheit If (Isnan (Hum) || Isnan (Temp) || Isnan (FAH)) (// Kontrollera om arduino) Har recepited värdena eller inte LCD.Println ("Misslyckades med att läsa från DHT-sensorn!"); Återvända;) float heat_index \u003d dht.comPuteHeatIndex (FAH, hum); // läser värmeindex i Fahrenheit Float Heat_indexc \u003d DHT .ConvertoftoC (heat_index); // läser värmeindex i grader LCD.Sätt Cursor (0, 0); LCD.Print ("HUMI:"); LCD.Print (hum); LCD.Print ("% \\ t") ; LCD .Stursor (0, 1); LCD.Print ("Temp:"); LCD.Print (TEMP); LCD.Print ("* C"); LCD.Sätt Cursor (0,2); LCD.Print ( "Temp:"); LCD.Print (FAH); LCD.Print ("* f \\ t"); LCD.Sätt Cursor (0,3); LCD.Print ("HI:"); LCD.Print (heat_indexc); LCD .Print ("* c"); LCD.Sätt Cursor (0,4); LCD.Print ("HI:"); LCD.Print (Heat_indee x); LCD.Println ("* F"); Fördröjning (2000); )

Först och främst har vi inkluderat bibliotek för Nokia 5110 LCD och temperatursensorn och fuktigheten hos DHT22. Därefter initialiserade vi kontakt 8 för DHT22 (DHTPIN 8) och bestämde typen av DHT-sensor. Andra DHT-sensormodeller är också tillgängliga, men vi använde DHT22 på grund av sin höga noggrannhet. Då förklarade vi den variabla "LCD-typen PCD8544 för LCD-skärmen och variabeln" DHT "av DHT-typen för DHT22-sensorn.

#Omfatta. #include "dht.h" #define dhtpin 8 #define dhttype dht22 pcd8544 LCD; DHT DHT (DHTPIN, DHTTYPE);

Sedan i inställningsinställningsfunktionerna ställer vi ställning till Nokia 5110 LCD. Nokia5110 LCD-skärmen har en upplösning på 84x48, så vi installerade 84x48 upplösning i Arduino IDE. Därefter började vi ta emot data från DHT22-sensorn med kommandot dht.begin ().

LCD.BEGIN (84, 48); dht.begin ();

I loopcykelfunktionen läser vi värdena för fuktighet, temperatur och värmeindex från DHT22 och vi sparar i variabler. I slutändan tryckte vi dem på Nokia 5110 LCD-skärmen.

Float hum \u003d dht.readhumidity (); Float temp \u003d dht.readtemperature (); Float Fah \u003d DHT.ReadTemperature (True); . . . LCD.Sätt Cursor (0,4); LCD.Print ("Hej:"); LCD.Print (Heat_Index); LCD.Println ("* F");

För oerfarna användare som vill självständigt skapa ledningssystem för robotiska enheter eller automationsverktyg finns olika hårdvarumoduler och deras ändringar tillgängliga på IT-tjänstemarknaden. Som regel har sådana enheter en enkel arkitektur med rätt att kopiera och kopplas till dem programvara i form av enkla verktyg. Sådana produkter kan användas både oberoende och ansluts till andra datorsystem via trådbundna eller trådlösa gränssnitt.

Proffs med grafiska displayer

Tidigare användes grafiska monokromdisplayer mycket i stor utsträckning av mobiltelefoner.

Nokia har släppt ett stort antal olika modeller utrustade med en sådan skärm. Tiderna för de telefonerna passerade, men displayerna försvann inte från marknaden och fortsatte aktivt att användas aktivt. De visade sig vara oumbärliga och dessutom, billiga instrument för utmatning av text och visar arbete genom att skapa matriser på skärmarna, som markerar bilden. De sparar resurser och tid, samtidigt som man visar en stor mängd information och spenderar en liten mängd energi. Det finns ett stort antal olika områden där Nokia 5110-enheter kan användas: foto, video, tv-utrustning, medicin och i många andra branscher.

Innan du beskriver Nokia-displayen för att ansluta Arduino-maskinvarodulen måste du ta med en kort presentation av dessa enheter.

Fördelar med att använda Arduino Uno

Många plattformar och mikrokontroller har skapats, vilka är analoger som presenteras i den här artikeln av Arduino-plattformen. Några av dessa analoger - NetMedia s BX-24, Parallax Basic Stamp och många andra. Vi kommer dock att stanna på Arduino Uno, eftersom denna designer har ett antal fördelar jämfört med de andra kontrollerna. På dem och det är värt att uppmärksamma när Välja en plattform för arbete. I det första är köen den låga kostnaden för dessa enheter. Modeller med denna programvara kostar mindre än 45 dollar, och om så önskas kan den samlas manuellt, eftersom de har en ganska enkel design. Den andra punkten Det är värt att notera att Arduino-plattformarna kan fungera med alla operativsystem: Windows, Linux och Macintosh OSX, medan alla andra är begränsade till att arbeta uteslutande med Windows.

Beskrivning Arduino Uno

Arduino Uno är en plattform för att utveckla och programmera olika enheter som har 14 digitala ingångar och utgångar, 6 analoga ingångar, flera kontakter (USB, ICSP, Power) och en knapp som har en funktion att starta om enheten. Denna plattform är inbyggd i en säkring som förhindrar kortslutningen och säkerställer säker drift med USB-kabeln. Det utlöser när mer än 500 mA ström passerar genom USB-porten. Jämfört med universella datorer samverkar Arduino Uno mycket närmare miljömiljön. Plattformen är byggd på det tryckta kretskortet och är utformat för att fungera med öppen källa. Det kan utnyttja både studenter och amatörer och yrkesverksamma som kan expandera och komplettera modellerna efter eget gottfinnande och arbeta fritt med öppen källkod. Plattformen är utformad på ett sådant sätt att nya komponenter kan läggas till det enkelt. Designen antar valet av anordningen att självständigt använda enheten, så det är inte placerat i kroppen och har inte en hård bindning att installera.

Nokia 5110 Display Beskrivning

Nokia 5110 Graphic Display är en budgetmonokromdisplay med en diagonal på 1,6 ", vilket gör att du kan visa inte bara textinformation, men också bilder. Dess upplösning - 48x84 px och spänningen där den kan fungera - 2,7- 5 V. Information på skärmen Den visas av vertikala block. Deras höjd är åtta pixlar, skärmstorleken är sex rader bred. På bakpanelen finns det beteckningar för varje kontakt, vilket inte tillåter användare att misstas i sin plats.

Tidigare i den här bloggen ansågs flera LCD-skärmar / indikatorer och deras användning från Arduino. Den väsentliga nackdelen är ganska stor storlek, såväl som vikt. Ofta är det inte ett problem. Om du till exempel samlar en DIY-lödningsstation i ett hemlagat fall, det är på något sätt utan skillnad, vilken storlek visas. Å andra sidan, om du behöver en skärm, säg, på quadcopter, det är vikt och storlek blir kritiskt viktigt. Därför kommer vi idag att lära oss att arbeta med en mycket liten och lightwell från Nokia 5110-telefonen.

Notera: Andra inlägg På ämnet Skärm - Lär dig att visa text på LCD-indikatorn från Arduino, om hur du använder skärmen 1602 med I2C-adapter, arbetar vi med LCD-skärmen baserat på HD44780 utan bibliotek och en digital termometer från LCD-matrisen, TMP36 och Arduino .

Oroa dig inte, köper en effektivt icke-nuvarande Nokia 5110-telefon, för att gräva ut skärmen och kasta ut alla andra delar behöver inte kasta bort. Nokia 5110-skärmen är en mycket vanlig oberoende modul för radio amatörer och kostar någonstans från 2 till $ 5, beroende på butiken. I Ryssland kan modulen köpas, till exempel på tpai.ru, arduino-kit.ru, amperkot.ru, compactool.ru, chipster.ru eller elektromicro.ru. Och naturligtvis, till det lägsta priset, såldes skärmen på Aliexpress, men du måste vänta en månad eller två tills de kommer från Kina.

Som ofta händer i Arduino-världen finns det redan färdiga bibliotek för modulen, och inte ensam. Jag gillade LCD5110-biblioteket på RinkyDinkelectronics.com. Detta bibliotek har två versioner. Den första kallas LCD5110_Basic. Hon är enklare och kapabel att bara visa text med teckensnitt i olika storlekar. Det är möjligt att skapa egna teckensnitt. Den andra versionen heter LCD5110_Graph. Den har alla funktioner i det första biblioteket och förutom dem vet hur man ritar segment, rektanglar, cirklar och så vidare.

Som en del av det här inlägget kommer LCD5110_Basic att användas. Båda biblioteken är perfekt dokumenterade och har många exempel på användning, så om det behövs i LCD5110_Graph, kan du enkelt räkna ut dig själv. Det är värt att notera att LCD5110_basic kompilerade utan varning, jag var tvungen att göra ett par små ändringar i sin kod.

Så, ett exempel på att använda biblioteket:

#Omfatta.

extern uint8_t bignumbers;
extern uint8_t medelnumbers;
extern uint8_t smallfont;

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

void setup ()
{
lcd.initlcd ();
}

iNT CTR \u003d 0;
void Loop ()
{
LCD.CLRSCR ();

LCD.SetFont (Bignumbers);
LCD.printnumi (CTR, RIGHT, 0);

LCD.SättFont (mediumkvarn);
LCD.PrintNumf (12.34, 2, rätt, 24);

LCD.SetFont (SmallFont);
LCD.Print ("LINE 1", 0, 8 * 0);
LCD.Print ("LINE 2", 0, 8 * 1);
LCD.Print ("LINE 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 + \u003d 5;
om (CTR\u003e \u003d 1000)
CTR \u003d 0;

Fördröjning (500);
}

Hur det ser ut i åtgärd:

Jag hoppas att koden inte är skyldig att tugga. Observera att modulen drivs från 3,3 B, men lagen från Arduino förstår normalt utan några omvandlare av logiska nivåer. Följaktligen ansluter PINS VCC (strömförsörjning) och BL (bakgrundsbelysning) till 3,3 V, GND Connect till jorden, de återstående fem stiften ansluter till Arduino Digital PIN. Pins nummer genom att passera LCD5110-klasskonstruktorn enligt kommentarer i koden nedan.

Bara, är det inte? Den fullständiga versionen av källkoden till den här anteckningen finns i detta förråd på GitHub. Tillägg och frågor, som alltid, är välkomna.

Tillägg: Författaren till biblioteket att arbeta med Nokia 5110 är också författaren till OLED_I2C-biblioteket som är utformat för att fungera med inga mindre populära oled-screencakes med I2C-gränssnittet. Ett exempel på att använda OLED_I2C hittar du i posten vi använder joysticken från Sega Genesis i projekt på Arduino. Som du kan förvänta dig har dessa två bibliotek ett liknande gränssnitt.