- Vereiste materialen:
- Nokia 5110 Grafische weergavemodule:
- Schakelschema:
- Arduino-programma en werken:
De iconische naam " Nokia 5110 " zelf zou herinneringen moeten hebben opgedaan aan de robuuste mobiele telefoon van Nokia die in de jaren 90 erg populair was. Het model 5110 werd geleverd met een grafisch display dat toentertijd voldoende was om als display voor de mobiele telefoon te dienen. Dit scherm was in staat om alles weer te geven, van alfanumerieke tekens tot kleine grafische afbeeldingen, dat is alles wat nodig is voor een mobiele telefoon. Terwijl de aarde draaide, kwamen er nieuwe technologieën met glimmende aanraakschermen binnen en deze display is niet langer in gebruik. Maar hopelijk kunnen ze worden gebruikt in elektronicatoepassingen waar een kleine grafische weergave moet worden weergegeven en geen geld uitgeven aan grote LCD-schermen. Dus in deze tutorial zullen we leren hoe we een Nokia 5110 Graphical LCD met Arduino kunnen verbinden en laten werken.
Deze LCD-schermen hebben zwarte en witte pixels met de afmetingen 84 × 48. Ze zien er misschien eentonig uit, maar kunnen nog steeds worden gebruikt om fatsoenlijke graphics voor uw projecten weer te geven en kunnen gemakkelijk worden gebruikt met microcontrollers zoals Arduino. Dus laten we beginnen….!
Vereiste materialen:
- Arduino Board (elke versie)
- Nokia 5110-scherm
- Draden aansluiten
Nokia 5110 Grafische weergavemodule:
Er zijn twee soorten van deze grafische LCD's op de markt. Een met soldeerpads zowel boven als onder het display en de andere met soldeerpads alleen aan de onderkant van het display. Degene die we gebruiken, behoren tot type 2, waar er alleen pads onder het display zijn. Beide modules werken hetzelfde en daarom zijn de aansluitingen voor beide hetzelfde. Dus ongeacht welke module het is, kunt u de tutorial volgen.
Zoals eerder gezegd, heeft de Nokia 5110 Graphical LCD 84 pixels horizontaal en 48 pixels verticaal. De totale schermgrootte is 1,72 'x 1,72'. De module heeft 6 ingangspennen waarmee we hem via SPI-communicatie met elke microcontroller kunnen verbinden. Het interface-IC dat communiceert tussen het display en de Arduino is het Philips PCD8544-displaycontroller-IC waarvan het gegevensblad hier te vinden is. Als u echter Arduino gebruikt om met dit IC te communiceren, hoeven we ons geen zorgen te maken over de datasheet, aangezien er bibliotheken zijn die klaar zijn om te worden gedownload en gebruikt. De module die we hier gebruiken, wordt hieronder weergegeven.
Schakelschema:
Het volledige schakelschema voor het verbinden van de Nokia5110 Grafische LCD met Arduino wordt hieronder gegeven.
De displaymodule heeft 8 pinnen die worden gebruikt om een SPI-communicatie met Arduino op te zetten. De module wordt gevoed met de 3.3V-pin van het Arduino-bord. Merk op dat deze modules werken op 3.3V logica en dus geen 5V leveren aan de Vcc pin van de displays. Ik heb de pin van het display rechtstreeks op Arduino aangesloten, ook al werkt het LCD-scherm op 3.3V-logica en Arduino op 5V-logica, want alleen toen vond ik dat het LCD-scherm goed werkte. U kunt desgewenst een spanningsdeler gebruiken om 5V naar 3,3V om te zetten, maar voor mij werkt het alleen zonder de logische conversie. De verbindingen zijn vrij eenvoudig en ongecompliceerd te maken. Als u klaar bent met de aansluitingen, ziet uw set-up er ongeveer zo uit zoals hieronder wordt weergegeven.
Arduino-programma en werken:
Volg de onderstaande stappen om uw Arduino te programmeren voor het Nokia 5110-display. Bij de stappen wordt ervan uitgegaan dat u de Arduino IDE al hebt geïnstalleerd en vertrouwd bent met het gebruik ervan.
Stap 1: Open de Arduino IDE op uw computer en selecteer het juiste bord onder het menu Tools nadat u uw Arduino op uw computer hebt aangesloten.
Stap 2: Klik hier om de Nokia 5110 Display Library per Adafruit-bibliotheek te downloaden vanuit de GitHub-repository.
Stap 3: Nadat het zip-bestand is gedownload, selecteert u Sketch -> Bibliotheek opnemen ->.ZIP-bibliotheek toevoegen en bladert u naar de locatie waar de ZIP is gedownload.
Opmerking: u moet ook de Adafruit GFX Graphics-kern downloaden die alle cirkels, tekst, rechthoeken, enz. Doet. U kunt deze downloaden van https://github.com/adafruit/Adafruit-GFX-Library en op dezelfde manier installeren.
Stap 4: Open nu het voorbeeldprogramma door Bestand -> Voorbeelden -> Adafruit PCD Nokia 5110 LCD Library -> pcdtest te selecteren en klik op de uploadknop
Stap 5: Nadat het programma is geüpload, drukt u op de resetknop op de Arduino en ziet u het voorbeeldprogramma met alle animaties zoals getoond in de video aan het einde van deze tutorial.
U kunt het voorbeeldprogramma lezen om de verschillende ingebouwde functies te begrijpen die kunnen worden gebruikt om verschillende grafische ontwerpen op het LCD-scherm uit te voeren. Maar laten we nog een stap verder gaan en proberen het CircuitDigest-logo op het LCD-scherm weer te geven.
Open nu de gewenste afbeelding in Paint en verklein de afbeelding. De maximale afbeeldingsgrootte die we kunnen gebruiken voor ons beeldscherm is 84 × 48.
Nadat u het formaat van de afbeelding hebt gewijzigd, slaat u de afbeelding op als bitmap (zwart-wit) met de optie Opslaan als in Paint. Om een afbeelding als bitmap op ons LCD-scherm weer te geven, hebben we software nodig die een bitmapafbeelding in code kan omzetten. U kunt de software downloaden door hier te klikken. Eenmaal gedownload, pakt u het bestand uit en klikt u op "BitmapEncoder" om de applicatie te starten. Open de bitmapafbeelding die we zojuist met deze software hebben opgeslagen om de reeks gecodeerde waarden te krijgen. U kunt deze waarden rechtstreeks kopiëren en in uw Arduino-array plakken. De waarde die door software wordt getoond voor ons logo wordt hieronder weergegeven
Zoals je kunt zien, begint de array met waarde 48, 48 is dit de grootte van onze afbeelding. We moeten dit niet aan onze array toevoegen. Verwijder dus de eerste twee waarden en gebruik de rest als de matrixwaarde in het programma. De array ziet er als volgt uit. Het volledige programma wordt ter referentie aan het einde van deze pagina gegeven.
statische const unsigned char PROGMEM-logo = {B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00001111, B11111000, B00000000, B00000000, B00000000, B00001100, B00001100, B00001100, B00001100, B00001100, B00001100, B00001100, B00001100, B00001100, B00001100, B00001100, B00001100, B00001100 B11111111, B11000000, B00000000, B00000000, B00001110, B00111110, B00111111, B11110000, B00000000, B00000000, B00111110, B00111110, B10000000, B01111100, B00000000, B00000000, B01111100, B01111100, B11000000, B00111110, B00000000, B00000000, B11111100, B01111110, B00000000, B00001111, B00000000, B00000001, B11111000, B11111111, B00111111, B10000111, B10000000, B00000011, B11111000, B11111111, B11111111, B11000011, B11000000, B00000111, B111100011, B111100011, B111000011, B11000111 B01100000, B00000000, B00000011, B11100000, B00001001, B11111100, B00000000, B00000000, B00000111,B11100000, B00011001, B11111110, B00000000, B00000000, B00000111, B11000000, B00000001, B11111111, B10000000, B00011111, B11111111, B11000111, B11100011, B11111111, B1111100011, B111111, B1100011, B11111111, B11111111, B111111, B111111, B111111, B111111, B111111, B111111, B111111, B111111, B1111, B1111, B1111, B1111, B111111 B11111111, B11111111, B11111100, B00111111, B11111111, B00011111, B11111111, B11111111, B11111100, B00111111, B11111110, B00111111, B00111111, B11111111, B11111110, B01111111, B11111110, B00111110, B00000000, B01111111, B11111100, B01111111, B11111100, B01111100, B11000000, B00000000, B00000000, B01111111, B11111100, B01111110, B10000000, B00000000, B00000000, B00000000, B00000000, B11111110, B00111111, B11111111, B11111110, B00000000, B00000001, B11111111, B11111111, B11111111, B11111110, B01111111, B11111111, B11111111, B11111111, B11111111, B11111110, B01111111, B11111111, B11111111, B11111111, B11111111, B11111110, B01111111, B11111111,B11000111, B11111111, B11111111, B11111110, B00111111, B11111111, B10000011, B11111110, B00000000, B00000000, B00111111, B11111111, B10110011, B11111000, B00000000, B001100 B1100, B1001100, B1100, B1100, B1100, B1100, B1100, B1100, B1100, B1100, B1100, B1100, B1100, B1100 B10000001, B11111111, B11111100, B00000000, B00011111, B11111000, B00000111, B11111111, B11111000, B00000000, B00000111, B11111110, B00011111, B11111111, B11111000, B00000011, B110011000, B1100110011, B110011000, B1100110011, B110011000 Voor B10000000, B00000000, B11111111, B11001111, B10000000, B11111111, B00000000, B00000000, B01111111,B11111111, B10110001, B11111110, B00000000, B00000000, B00011111, B11111111, B10110111, B11111100, B00000000, B00000000, B00001111, B11111111, B10000111, B11110000, B00000000, B00000000, B00000011, B11111111, B11111111, B11000000, B00000000, B00000000, B00000000, B11111111, B11111111, B00000000, B00000000, B00000000, B00000000, B00001111, B11110000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000};
Om deze bitmap weer te geven, moeten we de volgende regels code gebruiken. Waar de vorige gegevens op het scherm worden gewist en de nieuwe bitmapafbeelding wordt geschreven.
display.clearDisplay (); display.drawBitmap (20, 0, Logo, 48, 48, 1); display.display ();
De regel display.drawBitmap (20, 0, Logo, 48, 48, 1); geef de positie, grootte en kleur van de bitmapafbeelding weer. De syntaxis kan worden gegeven als.
display.drawBitmap (X_Position, Y_Position, Naam van array, lengte van afbeelding, breedte van afbeelding);
De lengte en breedte van de afbeelding kunnen worden verkregen uit de eerste twee elementen van de array, zoals eerder verteld. Als deze code wordt uitgevoerd, wordt de bitmap op ons LCD-scherm weergegeven, zoals hieronder weergegeven.
U kunt ook eenvoudige tekst weergeven zoals hieronder weergegeven:
Ik hoop dat je de tutorial hebt begrepen en je Nokia 5110 LCD hebt gekoppeld aan Arduino. Met dit grafische display in je mouw kun je veel projecten maken die kleine grafische details vereisen. De volledige werking is te vinden in de onderstaande video. Als u problemen ondervindt om dit te laten werken, kunt u het forum gebruiken om uw probleem te posten of de commentaarsecties hieronder.