SSD1306 Monochrom OLED am ESP

Ich habe mir zwei fast baugleiche 128×64 Displays gekauft um diese zu testen. Diese werden über den Wire (I2C) Bus angesteuert. Es gibt aber auch Varianten für den SPI Bus, die hier aber nicht behandelt werden.

Die beiden Displays haben auf den ersten Blick nur zwei offensichtliche Unterschiede. Erstens sie haben unterschiedlich große Bohrlöcher und zweitens bei ihnen ist VCC und GND vertauscht. Also aufpassen beim anschliessen eines ähnlichen displays, sonst raucht’s.
Als ich sie das erstes Mal leuchteten sah, fiel mir noch auf, dass das eine Display blaue Schrift hat und das andere weiße. Wenn man den schnellen Ali fragt, findet man noch weitere Variationen.

Versuchsaufbau

Zuerst habe ich mal einen Testaufbau mit einem NodeMCU V3 gesteckt. Die Spannungsversorgung hole ich mir vom Node. Die Kommunikation habe ich an die Pins D5 und D6 angeschlossen. Die Schaltung sieht wie folgt aus:

Bibliothek

Da ich andere Pins für den Wirebus verwende als die standard Arduino und ich feststellen musste, dass in der entsprechenden Adaruit Libray zum einen der Wirebus hardcodiert ist und zum anderen diese für Displays mit Resetanschluss gedacht ist. Habe ich mich, ohne weiter zu forschen für die ThingPulse Bibliothek entschieden. Diese kann entweder über GIT herunter geladen werden oder über den LibraryManager in der Arduino Gui installiert werden.

Nach SSD suchen und die von Daniel Eichorn auswählen.

Programmierung

Beispielprogram

Als Testprogramm nutze ich mir die Uhr aus dem Beispielen.

Noch die richigen Pins eingetragen, hier ist der Code:

ESP8266_SSD1306ClockDemo

Kompiliert und den ESP programmiert und so sah es aus.

Die Genaue Uhr

Damit die Uhr auch stimmt habe ich kurzer Hand nocht die NTP Server abfrage eingebaut.

ESP8266_SSD1306ClockDemoNTP

ein Bild erübrigt sich, da sich hieran nichts geändert hat.

Nachtrag 27.06.2018: Ich habe einige fertige NTP Clients gefunden, ihre Verwendung ist wahrscheinlich leichter als als meine kleinst Entwicklung aus zusammen gestückelten Quellen.

https://github.com/aharshac/EasyNTPClient
https://github.com/gmag11/NtpClient

Verwandte Beiträge

Quellen

https://github.com/aharshac/EasyNTPClient
https://github.com/gmag11/NtpClient

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.