Forum: Mikrocontroller und Digitale Elektronik SSD1306 Bibliothek


von Marco G. (grmg2010)


Lesenswert?

Moin
ich bin auf der Suche nach einer Bibliothek für den SSD1306 128x64px 
über I2C. Ich habe bereits  einige gefunden, die meisten verwenden 
jedoch das Arduino-Framework was ich gerne vermeiden möchte, da ich 
diese im Atmel Studio verwenden möchte um meinen Code drumherum zu 
schreiben.
Zwei Bibliotheken die nicht das Arduino-Framework nutzen habe ich auch 
gefunden. Leider funktionieren beide nicht richtig.

Vielleicht kennt jemand eine vernünftige Bibliothek ohne 
Arduino-Framework  und hat dazu auch ein "Hallo Welt" Beispiel das die 
verwendung verdeutlicht.
Hauptsächlich möchte ich Texte darstellen, keine Bilder. Daher kann es 
auch eine Text-Only-Bibliothek sein.

Gruß

von Bibliotheksvorsteher (Gast)


Lesenswert?

Marco G. schrieb:
> Leider funktionieren beide nicht richtig.

Dann liegt es nahe dass das Problem vor dem Computer sitzt.

von Olaf (Gast)


Lesenswert?

> Dann liegt es nahe dass das Problem vor dem Computer sitzt.

Sieht so aus. Der SSD1306 ist gut dokumentiert. Ich glaube es hat mich 
1-2h gekostet bis ich meine eigenen Libarys fuer GrafikLCDs daran 
angepasst hatte.

Olaf

von JohnDoe (Gast)


Lesenswert?

Marco G. schrieb:
> Zwei Bibliotheken die nicht das Arduino-Framework nutzen habe ich auch
> gefunden. Leider funktionieren beide nicht richtig.


Was heisst "nicht richtig"?
Der SSD1306 hat ja so gut wie keine Funktionen.
Einzig die Initialisierung kann je nach Display ein wenig 
unterschiedlich sein. Also Datenblatt von Deinem Display lesen und 
entsprechend konfigurieren.
Der Rest ist trivial. Bei Dir braucht das Display genau 1Kbyte RAM. Also 
Puffer im Controller anlegen und die Daten dann sequentiell rausschicken 
und das Bild steht.


> Hauptsächlich möchte ich Texte darstellen, keine Bilder. Daher kann es
> auch eine Text-Only-Bibliothek sein.


Da der Controller im Prinzip nur die Daten, die angeliefert werden, ins 
Display-RAM schreibt, gibt es keine Unterscheidung zwischen Text und 
Graphik. Text bedeutet halt, dass die Pixel eines Buchstabens an die 
entsprechende Stelle im RAM geschrieben werden.

von Bibliotheksvorsteher (Gast)


Lesenswert?

JohnDoe schrieb:
> Also Datenblatt von Deinem Display lesen und
> entsprechend konfigurieren.
> Der Rest ist trivial.

Das überfordert sehr viele Arduino User die "Nicht-Arduino"
machen möchten.

von M. K. (sylaina)


Lesenswert?

Marco G. schrieb:
> Hauptsächlich möchte ich Texte darstellen, keine Bilder. Daher kann es
> auch eine Text-Only-Bibliothek sein.

Ich bin zwar einen Monat zu spät aber schau mal hier:

Beitrag "SSD1306/1309 Library zum Darstellen von Text auf OLED Displays"

Vielleicht hilft das dir.

von Marco G. (grmg2010)


Lesenswert?

Danke, eigentlich hatte ich schon eine Lösung. Die war allerdings nicht 
zufriedenstellend:
- Zu großer Speicherverbrauch durch Buffer(nicht anwendbar auf kleinere 
ATMEGAs)
- recht langsam im Aufbau
- Umständliche Positionierung

Habe deine also mal ausprobiert und bin sehr angetan. Mit leichten 
Modifikationen nutze ich sie jetzt.

Daher danke für die Bibliothek :)

Gruß

von M. K. (sylaina)


Lesenswert?

Schön, dass sie dir hilft. Ich hab gestern noch Grafikfunktionen der 
Library hinzugefügt, falls das auch mal interessant sein sollte für 
dich. Dies ist ebenfalls zu finden in dem anderen Thread:

Beitrag "Re: SSD1306 Library zum Darstellen von Text auf OLED Displays"

von Marco G. (grmg2010)


Lesenswert?

Sehr schön. werde ich bei Gelegenheit mal ausprobieren :)

von Klaus S. (skibby)


Lesenswert?

u8glib oder u8g2 schon mal probiert ?
https://github.com/olikraus/u8g2/wiki

von M. K. (sylaina)


Lesenswert?

Klaus S. schrieb:
> u8glib oder u8g2 schon mal probiert ?

Ich ja, hat bei mir den "Nachteil", dass sie 8kByte Flash-Speicher 
braucht. Das war bei mir der Hauptgrund warum ich mir selbst eine 
Library für den SSD1306-Controller schrieb. Meine Lib ist deutlich 
kleiner, dafür wird von der u8glib halt deutlich mehr unterstützt.
Im Moment erweitere ich meine Lib (die Textversion) sodass ich das 
Display auch an einem Attiny45/85 nutzen kann, das wäre für mich dann 
erstmal so das Endziel.

von Reinhard O. (Firma: privat) (flug52)


Lesenswert?

Hallo,
hat jemand ein Beispiel für die Anwendung der u8g2 mit demSSD1306 
Display?
Finde damit einfach keinen Einstieg...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.