ich habe nach langer Berufserfahrung als Radio- und Fernsehtechnikermeister und später als IT Consultant nun im Ruhestand Zeit mich mit neuen Dingen auseinanderzusetzen. Dabei bin ich auf den Arduino UNO gestoßen, da man diesen eben problemlos auf dem Schreibtisch aufbauen und testen kann.
Nach dem ich seit ca. 3 Wochen mit diesem UNO probiere und teilweise auch schon tolle Erfahrungen gesammelt habe, hänge ich nun an einem Problem mit einem OLED.Display (SH1106 128x64 I2C) fest.
Die vielen Anleitungen sind sehr missverständlich geschrieben und für Anfänger wie mich kaum zu durchschauen (leider ist es mit meinem Englisch auch nicht mehr zum Besten bestellt). Es wird immer wieder angesprochen die Adafruit SSD1306 bzw. die U8g2 Library einzusetzen. Anscheinend sind sind diese nicht besonders kompatibel und es erscheint teilweise nur "Müll" auf dem Display. Dieses erkennt man schon bei der Ausführung der Beispielsketches. Was bei der Einen funktioniert funktioniert nicht unter der Anderen, obwohl beide angeblich die Chipsätze 1306 bzw 1106 unterstützen sollen.
Ich wollte einen, für mich interessanten Beispielsketch, auf die Verwendung der U8g2 umschreiben, da er Adafruit SSD1306 auf meinem Display nur Zeichenmüll erzeugt. Dabei bin ich aber mangels Hintergrundwissen kläglich gescheitert. Dies beginnt schon mit der Initialisierung des Displays. Adafruit bewerkstelligt dies mit der Anweisung .....display.beginn();...... bei der U8g2 funktioniert das anscheinend nicht. Dort wird anscheinend anders, schon bei der Einbindung des Displays vorgegangen.
Kann mir bei meinem Problem jemand weiterhelfen bzw. Lektüre empfehlen um ein besseres Verständnis für diese, anscheinend kompliziert zu programmierenden OLEDs, zu bekommen?
Warum sollten die Libs von 2 verschiedenen Autoren zueinander kompatibel sein?
Jede Lib hat ihre eigenen Beispiele, die die Basis für die jeweilige Entwicklung sind.
Oli Kraus hat zur U8g2 ein umfangreiches Wiki, das sich zu lesen lohnt. Für Übersetzungsprobleme kann ich Deepl empfehlen.
Verwirrend ist für mich nur, dass selbst teilweise die eigenen, zusammen mit der Labrary mitgelieferten Beispiele, mit meinem Display nicht funktionieren.
Ich möchte ja nur verstehen warum und wo die Unterschiede liegen, damit ich diese Klippen umschiffen kann.
hwh53:
... nach langer Berufserfahrung als Radio- und Fernsehtechnikermeister ...
Da weiß ich jetzt, wen ich fragen kann, wenn ein Kondensator puff gemacht hat oder ein Widerstand glüht. Willkommen im Seniorenclub!
hwh53:
Verwirrend ist für mich nur, dass selbst teilweise die eigenen, zusammen mit der Labrary mitgelieferten Beispiele, mit meinem Display nicht funktionieren.
Sprich zu dem Typen, den Du beim Rasieren im Spiegel erblickst: "Ich habe einen Fehler gemacht!" Denn es ist recht unwahrscheinlich, daß Lady Ada oder Oli einen Fehler gemacht haben.
Sollte dieser Testsketch aus meinem Fundus nicht funktionieren, hast Du ein Hardwareproblem:
danke für deine Unterstützung.
Dein Sketch funktioniert!
Nun habe ich endlich eine Grundlage für die minimale Ansteuerung des Displays, auf der ich weitermachen kann.
Aus den Beispielen der U8g2 Libray habe ich die beiden Initialisierungsstrings entnommen. Im Prinzip funktionieren beide. Nur bei dem String, basierend auf dem 1306, sind alle Zeichen auf dem Display einige Pixel nach links, über den linken Rand hinaus verschoben. Der Initialisierungstring scheint ja die gleichen Parameterzu haben.
Was bedeuten eigentlich die weiteren Parameter, die als Kommentare angefügt sind?
PS: Falls der Kondensator pufft, kann'st mich ja mal fragen. Dann sehen wir was nach 30 Jahren Abstinenz noch an Fachwissen aus diesem Beruf verfügbar ist.
hwh53:
Was bedeuten eigentlich die weiteren Parameter, die als Kommentare angefügt sind?
U8G2_R0: Rotation, siehe C++/Arduino Example. Da steht auch: "All other arguments descibe the wiring of the display." was Du aber nicht benötigst, wenn Du die Standardanschlüsse für I2C verwendest. Beim UNO solltest Du die verwenden, da er an diesen Pins optimierte Hardware für I2C hat.
So sehr ich Lady Ada schätze, Oli hat für mich bei dieser Bibliothek die Nase vorne. Außerdem kann man ihn fragen, da er in diesem Forum auf Deutsch unterwegs ist, und nett ist er auch.
Aber einfache Fragen kann möglicherweise auch ich beantworten
hwh53:
PS: Falls der Kondensator pufft, kann'st mich ja mal fragen. Dann sehen wir was nach 30 Jahren Abstinenz noch an Fachwissen aus diesem Beruf verfügbar ist.
Danke für das Angebot, mal sehen, wann es passiert.
Du wirst Dich erinnern, je mehr ein Fernseher kann, desto komplizierter die Bedienung. Olis Bibliothek kann eine Menge, da ist schnell mal der Kontrast falsch eingestellt. Andererseits hat ein UNO nur sehr begrenzt Speicher, weshalb es sich lohnen kann, an den Stellschrauben zu drehen. Im Thema OLED Bibliotheken hatte ich kürzlich was dazu geschrieben.