Arduino: Nokia 5110 LCD anschließen

In dieser Anleitung zeigen wir euch wie ihr ganz einfach mit Hilfe eines Arduinos ein Nokia 5110 Display ansteuern könnt. Vorteil dieses kompakten LCD’s ist vor allem der günstige Preis von unter 2 Euro sowie die Grafik-Fähigkeit zur Darstellung beliebiger Schwarz-Weiß Logos. Die Auflösung des kleinen Bildschirms beträgt 84×48 Pixel und sollte für viele Arduino Bastelprojekte ausreichend sein. 

 

Bauteile

Nachfolgend haben wir für euch alle Bauteile verlinkt, die ihr für dieses Projekt benötigt – sowohl direkt bei Amazon als auch deutlich günstiger (mit längerer Lieferzeit) über AliExpress:

Arduino Nano –  für ca. 2,50€ bei AliExpress*

Nokia 5110 LCD – für ca. 2,00€ bei AliExpress*

Verbindungskabel – ca. 4,00€ bei AliExpress*

Lötkolben Set (optional) – ca. 10,00€ bei AliExpress*

 

Schaltplan

Zur besseren Orientierung haben wir hier unser Schaltbild eingebunden:

 

Anschluss

Damit wir unser kleines Nokia Display mit unserem Arduino nutzen können, müssen wir dieses zunächst natürlich auch richtig anschließen. Je nachdem bei welchem Händler ihr das Nokia 5110 LCD erwerbt, kann dieses auch 5V Tolerant sein, falls ihr auf Nummer sicher gehen wollt, solltet ihr für den dauerhaften Betrieb jedoch den 3.3 Volt Pin wählen. Übrigens: Falls ihr die Display Hintergrundbeleuchtung nicht benötigt, müsst ihr einfach den LED- bzw. BL-Pin nicht an euren Arduino anschließen.

Zunächst schließen wir den GND-Port des Nokia 5110-LCD’s an den GND-Pin unseres Arduinos an. Den „BL / LED“ sowie den „VCC“-Pin des Displays klemmen wir an den 3.3 Volt Anschluss an. Den „CLK“ bzw. auch „SCLK“-Pin wird an den D3-Pin des Arduinos angeschlossen.

Danach können wir den „DIN“ oder auch „MOSI“-Pin des LCD’s mit dem D4-Pin verbinden. Weiter geht es dann mit dem „DC“-Anschluss, diesen klemmen wir auf D5 unseres Arduinos. Nun folgt der „CE“-Pin bzw. auch „SCE“ genannt, dieser kommt an D6. Zum Schluss muss dann noch der „RST“-Port mit dem D7-Pin des Arduinos verbunden werden – Fertig.

 

Programm

Nachdem wir unser Display erfolgreich angeschlossen haben, können wir es mit einem kleinen Demo-Programm auf Funktion testen. Nach dem erfolgreichen Übertrag auf euren Arduino sollte dann ein Pikachu erscheinen:

#define LCD_RESET     7
#define LCD_CE        6
#define LCD_DC        5
#define LCD_DIN       4
#define LCD_CLK       3

#define LCD_C     LOW
#define LCD_D     HIGH

int index=0;
static byte grap[]=
{
  0x0F, 0x3F, 0xFF, 0xDB, 0xFF, 0x7F, 0xF3, 0xC3, 0x03, 0x00, 0x06, 0x06, 0x06, 0x04, 0x04, 0x0C, 
  0x0C, 0x18, 0x08, 0x18, 0x30, 0x10, 0x20, 0x20, 0x60, 0xC0, 0xC0, 0x80, 0x80, 0x00, 0x80, 0x80, 
  0x80, 0x80, 0xC0, 0x40, 0xC0, 0x40, 0xC0, 0x40, 0xC0, 0x40, 0xC0, 0x40, 0xC0, 0x40, 0xC0, 0x40, 
  0xC0, 0x80, 0x80, 0x80, 0x80, 0x00, 0x80, 0xC0, 0x80, 0xC0, 0x40, 0x60, 0x20, 0x10, 0x30, 0x18, 
  0x08, 0x18, 0x0C, 0x0C, 0x04, 0x00, 0x06, 0x06, 0x06, 0x02, 0x03, 0x83, 0xF3, 0xFB, 0xFF, 0xDF, 
  0xFB, 0x3F, 0x1F, 0x07, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x0F, 0x1F, 0x38, 0x30, 0x60, 
  0xC0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  0x01, 0x01, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0xC0, 0x60, 0x20, 0x38, 0x1E, 0x0F, 
  0x07, 0x02, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x86, 0xFE, 0x5C, 0x00, 0x00, 0x00, 0x00, 
  0xA0, 0xF8, 0xF8, 0xFE, 0xC4, 0xC2, 0xC4, 0xE4, 0xF0, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xF8, 0xD0, 0xCA, 0x82, 0xE4, 0xEE, 
  0xFC, 0xF0, 0x70, 0x00, 0x00, 0x00, 0x00, 0x2F, 0xFC, 0xC7, 0x02, 0x03, 0x01, 0x01, 0x00, 0x00, 
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x60, 0x00, 0x00, 0x00, 0x00, 
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xEC, 0x7F, 0x03, 0x00, 
  0xC0, 0xF0, 0xE0, 0xF8, 0xF0, 0xF0, 0xE3, 0xC3, 0x06, 0x03, 0x07, 0x01, 0x01, 0x00, 0x60, 0xC0, 
  0xC0, 0x80, 0x80, 0xC0, 0xE2, 0xC6, 0xE6, 0xC0, 0x80, 0x80, 0x80, 0xE0, 0x40, 0x20, 0x00, 0x01, 
  0x03, 0x07, 0x03, 0x86, 0xE3, 0xE1, 0xF0, 0xF8, 0xF0, 0xF0, 0xC0, 0x00, 0x03, 0x2F, 0xFC, 0x80, 
  0x00, 0x00, 0x80, 0x80, 0xC0, 0x60, 0x30, 0x18, 0x18, 0x04, 0x06, 0x03, 0x01, 0x01, 0x00, 0x00, 
  0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x60, 0x60, 0xC0, 0x60, 0x60, 0xC0, 0x80, 0x00, 0x0B, 
  0xBF, 0xF0, 0xC0, 0x00, 0x03, 0x0F, 0x0F, 0x1F, 0x1F, 0x0F, 0x0F, 0x03, 0x01, 0x00, 0x00, 0x00, 
  0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1B, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0x1F, 0x01, 0x01, 0x00, 
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0F, 0x1F, 0x1F, 0x0F, 0x0F, 0x07, 0x01, 
  0x80, 0xF0, 0xFF, 0x0F, 0x82, 0x83, 0x81, 0x60, 0x60, 0xE0, 0x20, 0x70, 0x40, 0xC0, 0x00, 0x00, 
  0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x29, 0x7F, 0xE0, 0x80, 0x00, 0x00, 0x00, 
  0x00, 0x01, 0x01, 0x03, 0x03, 0x03, 0x07, 0x0D, 0x0C, 0x1C, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  0x10, 0x18, 0x1C, 0x06, 0x07, 0x07, 0x03, 0x01, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x80, 0xE0, 
  0x6A, 0x3F, 0x0F, 0x04, 0x06, 0x02, 0x03, 0x01,
};

void LCD_Initialise(void)
{
  pinMode(LCD_CE, OUTPUT);
  pinMode(LCD_RESET, OUTPUT);
  pinMode(LCD_DC, OUTPUT);
  pinMode(LCD_DIN, OUTPUT);
  pinMode(LCD_CLK, OUTPUT);
  digitalWrite(LCD_RESET, LOW);
  digitalWrite(LCD_RESET, HIGH);
  LCD_Write(LCD_C, 0x21 );
  LCD_Write(LCD_C, 0xB1 );
  LCD_Write(LCD_C, 0x04 );
  LCD_Write(LCD_C, 0x14 );
  LCD_Write(LCD_C, 0x20 );
  LCD_Write(LCD_C, 0x0C );  
}

void LCD_Write(byte dc, byte data)
{
  digitalWrite(LCD_DC, dc);
  digitalWrite(LCD_CE, LOW);
  shiftOut(LCD_DIN, LCD_CLK, MSBFIRST, data);
  digitalWrite(LCD_CE, HIGH);
}

void setup(void)
{
  Serial.begin(9600);
  LCD_Initialise();
}

void loop(void)
{
    digitalWrite(8,HIGH);
    for (index = 0; index < (84*48) / 8; index++)
    {
      LCD_Write(LCD_D, grap[index]);
    }
}

Letzte Aktualisierung am 25.04.2024 / Affiliate Links / Bilder von der Amazon Product Advertising API



Nokia 5110 Display mittels Arduino ansteuern. (Bild: Xgadget.de)
Datum:
16.06.2018, 22:14 Uhr
Aktualisiert:
31.10.2023, 00:37 Uhr
Autor:
Stefan Kröll
Comments:
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

* gesponserter Link
Blogverzeichnis - Bloggerei.de