Nokia LCD anschließen
Veröffentlicht: 02.02.2016Ein 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.