Arduino SSD1306 Monochrom OLED 128×64 I2C

Last Updated on 14. Oktober 2023 by sfambach

Ich möchte für ein kleinen Projekt ein kleines 128×64 Pixel großes Oled Display anschliessen. Hierfür habe ich mir einen kleinen Prototyp erarbeitet den ich hier gerne vorstellen möchte.

Ich betreibe das Display an einem Arduino Uno über den Wird Bus.

Komponenten

Hardware

  • Arduino Uno oder ähnlich
  • Oled Display SD1306
  • Prototyp shield oder ein Steckbrett
  • Ein paar Verbindungskabel

Software

  • Arduino IDE (Installation)
  • Adafruid Adafruit_SSD1306 Unified Bibliothek
  • Testprogramm aus der Bibliothek

Versuchsaufbau

Ich verwende die Prototypzusatzplatine (siehe hier).

Das Display wird über den Arduino mit Strom versorgt. Zusätzlich findet die Datenkommunikation über den Wire Bus statt, dieser liegt auf Port A4 und A5 des Arduino Uno.

Schaltplan

Bibliothek

Es gibt auch andere Bibliotheken für das SD1306 aber die Adafruit war mit geringen anpassungen die für mich die am leitesten zu verwendende.  Bei anderen hatte ich zusätzlich das Problem, dass der Speicher des Arduino zu klein ist.

Entweder über GITHUB die neuste Version holen oder über den Bibliotheksmanger installieren.

https://github.com/adafruit/Adafruit_SSD1306

Wie es geht steht hier.

Programmierung

Vorbereitung der Bibliothek

Eine sehr lästige Eigenschaft der Adafruit Bibliothek ist, das hier das define der Displaygröße für den Präprozessor in der Bibliothek geändert werden muss. Dieses steht standardmässig auf 128×32 Pixel.

Also Bibliothek auf der Festplatte suchen, die Datei heist:

Adafruit_SSD1306.h

In der aktuellen Version wird die Zeile74 Ausdokumentiert und die Zeile 73 reingenommen.

Beispielprogram

Ich verwende ein Beispielprogramm, welches zur Bibliothek gehört:

Pfad: Adafruit SDD 1306 -> sdd1306_128x64_i2c

Wie ihr ein Tesprogramm auswählt, findet ihr hier.

Das Programm auf den Arduino schieben, und schon sollte es klappen.

Weitere Projekte

Quellen

https://github.com/adafruit/Adafruit_SSD1306

Schreibe einen Kommentar

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