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 Wire 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.
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.