Hendrich.org

Nokia LCD anschließen

Veröffentlicht: 02.02.2016

Ein altes Nokia Handy aus dem Elektroschrott habe ich ausgeschlachtet und das Display entnommen.

Gemäß der Anleitung von hier und hier habe ich es angeschlossen und in Betrieb genommen.

Das Ergebnis kann man bei YouTube als Video anschauen.

Meine Vorgehensweise

1. Kabel vorsichtig hinten an das Display anlöten und mit Heißkleber fixieren

2. An Raspberry wie folgt anschließen:

Pin am LCD Name Pin am Raspberry GPIO am Raspberry Kommentar
1 VDD 3.3V 1 - -
2 SCLK 12 18 Takt
3 SDIN 18 24 -
4 D/C 16 23 Selektiert, ob Data (High) oder Command (Low) gesendet wird.
5 CS 24 08 -
6 GND 6 - -
7 Vout - - Über 1µF an Ground
8 RST 1 - Reset, sollte auf High liegen. Reset wird ausgelöst, wenn es auf Low liegt.

3. Ansteuern über PythonBearbeiten

Zunächst die Pins/GPIOs definieren und alle GPIOs als Ausgänge schalten.

# Konfiguration Eingangskanal und GPIOs
CLK = 18 # Clock
MOSI = 24  # Mosi
DC = 23 # Command/Data
CS = 8  # Chip-Select

GPIO.setmode(GPIO.BCM)

# Pin-Programmierung
GPIO.setup(CLK, GPIO.OUT)
GPIO.setup(MOSI, GPIO.OUT)
GPIO.setup(DC, GPIO.OUT)
GPIO.setup(CS, GPIO.OUT)

Die Initialisierungsroutine wird jedes mal benötigt, um das Display vorzubereiten, Details findet man im Datenblatt oder auch hier

GPIO.output(CS,LOW) # Select the chip
GPIO.output(DC,LOW) # Switch to command mode
sendBits(0x21,8,CLK,MOSI) # Switch to extendes instruction set
sendBits(0xC8,8,CLK,MOSI)
sendBits(0x06,8,CLK,MOSI)
sendBits(0x13,8,CLK,MOSI)
sendBits(0x20,8,CLK,MOSI) # Switch back to entry mode
sendBits(0b00001001,8,CLK,MOSI) # All segments on
time.sleep(0.5)
sendBits(0b00001000,8,CLK,MOSI) # All segments off
sendBits(0b00001100,8,CLK,MOSI) # Normal mode
sendBits(0b10000000,8,CLK,MOSI) # X=0
sendBits(0b01000000,8,CLK,MOSI) # Y=0
GPIO.output(DC,HIGH)            # Switch to data mode
for i in range(0,504):          # Clear all
    sendBits(0x00,8,CLK,MOSI)

Dabei ist sendBits eine Unterroutine die die Bits direkt an das Display schickt. Ebenso kann man sich die Stelle im Display aussuchen (Speicherbereich adressieren), an der beim nächsten mal geschrieben wird. Ich habe eine Zeichentabelle angelegt und entsprechend eine kleine Routine geschrieben, die dann komplette Zeichenketten überträgt.

Rückseite des Displays mit Pinbelegung