User avatar
mline
Posts: 1422
Joined: Sun Jan 27, 2013 1:47 pm
Location: Austria, Vienna

RPi + SSD1308 OLED

Wed Feb 20, 2013 8:55 am

Wer eines dieser tollen OLED Displays von Seeedstudio an die Pi hängen will sollte sich mal das hier ansehen:
http://mbed.org/users/wim/code/SSD1308_128x64_I2C/

Mit leichten Änderungen an den "sendCommand" und "sendData" Routinen direkt mit der Pi benutzbar. Adresse wäre 0x3C

Zur Sicherheit nur an 3.3V hängen. Aber nicht direkt an die Pi (OLED zieht fast 200mA). Schaltet lieber noch einen Spannungsregler dazwischen. Ich hab meinen am P1 Header auf 5V gehängt und er versorgt mir eben das LCD und ein RFBee mit 3.3V

*edit*
Ach so... warum grad sowas kleines?
Weil es kaum Platz im Gehäuse wegnimmt ;)
<~~>

Facelooks
Posts: 2
Joined: Wed Jan 08, 2014 9:09 pm

Re: RPi + SSD1308 OLED

Wed Jan 08, 2014 9:21 pm

Hi mline,

Ich bin "leider" im Besitz von diesem OLED Display. Jetzt versuche ich schon einige Zeit die Ansteuerung des SSD1308 mit meinem Raspberry über I2C zu realisieren. Mein Problem liegt eher bei C++ (oder Linux allgemein) da ich bisher nur C# .net behersche. Könntest du mir bitte helfen wie/wo/was die Dateien hin müssen, damit ich mit meinem Programm auf die SeedOLED Klasse zugreifen kann. Die Umgebung sollte soweit passen, g++ mit dem build-essential habe ich installiert. Ich bräuchte hier nur eine kurze Starthilfe.

User avatar
mline
Posts: 1422
Joined: Sun Jan 27, 2013 1:47 pm
Location: Austria, Vienna

Re: RPi + SSD1308 OLED

Thu Jan 09, 2014 1:37 am

https://github.com/schmron/RPi_SSD1308

Ist schon ne Weile her wo ich das veröffentlicht habe. Mein Bot sollte es irgendwann mal nutzen jedoch hänge ich grad noch wo anders.
Also häng mich nicht wenn irgendwas nicht klappt ;)

GANZ WICHTIG niemals direkt an 5V oder 3.3V der Pi hängen.
Bei 5V grillst du eventuell die TWI-Pins der Pi.
Bei 3.3V direkt von der Pi wird es zu Systemausfällen kommen wenn viele weiße Pixel am OLED angezeigt werden.
<~~>

Facelooks
Posts: 2
Joined: Wed Jan 08, 2014 9:09 pm

Re: RPi + SSD1308 OLED

Thu Jan 09, 2014 1:57 pm

Hi,
vielen Dank für die schnelle Antwort.
Von der Hardwareseite habe ich soweit alles verstanden. Hab das OLED an eine externe Stromquelle mit 3,3V angeschlossen und Data, Clock mit dem Raspi verbunden auf die Pins 3,5 (I2C-Bus). Es ist mir auch bewusst, dass das OLED mit 5V betrieben werden muss. Da ich im Moment aber leider keinen Pegelwandler zur Hand habe sollten es zum testen auch die 3,3V bedingt funktionieren. Das heißt die weißen Pixel nehme ich mal in kauf. Ich habe auch den Raspi als I2C-Master eingerichtet und kann das OLED mit dem "i2cdetect" Tool auf dem Bus sehen.

Code: Select all

pi@raspberrypi ~ $ sudo i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- 3c -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
Soweit alles klar.

Mein Problem liegt nun bei der Software.
bei Github gibt es folgende Dateien:
  • Makefile
    OLED
    SeeedOLED.cpp
    SeeedOLED.h
    SeeedOLED.o
    font_16x24.h
    font_8x8.h
    main.cpp
    main.o
Nun liegt meine Schwäche bei C++ und ich hoffe du kannst mir weiterhelfen. Objektorientierung usw. ist mir schon alles ein Begriff wie gesagt habe ich bereits Vorkenntnisse in C# .NET. Leider bringt es mich hier nur soweit, dass ich den Syntax von C kenne.
Mir ist bekannt dass in der .h (Headerdatei) die Methoden der Klasse "SeeedOLED" deklariert sind. In der Datei "SeeedOLED.cpp" finde ich den Code der jeweiligen Methode.

1. Wo kann ich meinen Programm rein schreiben?
"""""""Ich denke mal in "main.cpp"?! außerdem steht da ja schon etwas drin! und was ist die main.o?!"""""""""oder?

2. Müssen die Dateien in ein bestimmtes Verzeichnis dass sie vom Compiler gefunden werden?

3. Welche Kommandos braucht der Compiler damit ich in meinen Programm die "SeeedOLED" Klasse nutzen kann?


Ich möchte eigentlich nur mal hinbekommen das sich das Display einschaltet und ein Buchstaben oder sonst etwas anzeigt.

User avatar
mline
Posts: 1422
Joined: Sun Jan 27, 2013 1:47 pm
Location: Austria, Vienna

Re: RPi + SSD1308 OLED

Thu Jan 09, 2014 2:25 pm

Einfach im Ordner den Befehl

g++ -Wall -o SeeedOled main.cpp SeeedOled.cpp

ausführen.
Am besten die gcc bzw. g++ manpages zuhilfe ziehen.
Gibt auch unzählige Tutorials im Internet und auch hier im Forum.
<~~>

Return to “Deutsch”