Das Display SSD 1306 ist im Versandhandel sehr preisgünstig zu bekommen. Leider passen die Anschlüsse nicht sofort an den Calliope mini dran. Aber das ist kein Problem: das Display wird über einen I2C-Bus angesteuert. Am Calliope ist das der Anschluss A0 auf der linken Seite. Man besorgt sich im Versandhandel ein entsprechendes Kabel. Die gibt es in verschiedenen Ausführungen (Suchbegriff: Grove Kabel). Wichtig ist dann die richtige Beschaltung. Rot und Schwarz sind klar (VCC und GND). Das gelbe Kabel liefert das Taktsignal (SCL) und das weiße Kabel ist für die Daten verantwortlich (SDA).
Mehr ist zum Anschluss des Display nicht notwendig.
Das Display lässt sich nur in der Entwicklungsumgebung Make Code ansprechen. Dazu muss aber erst die entsprechende Erweiterung geladen werden. In der Leiste, in der die Blöcke ausgewählt werden können, öffnet man den Teil für Fortgeschrittene und wählt Erweiterungen aus. Dort klickt man auf den Eintrag oled-ssd1306 und hat unter den Blöcken zur Mathematik alle Display-Befehle zur Verfügung.
Nach der Initialisierung des Displays kann man sofort einen Text anzeigen lassen.
Hinweis: Wenn der Caliope mini nach dem Überspielen des Programms dieses nicht ausführt, hilft es, die Resettaste zu drücken.Das Display lässt sich auch mit umgekehrten Schwarz-Weiß-Werten benutzen. Es hat 8 Zeilen (0...7). In jeder Zeile sind maximal 16 Zeichen möglich (0...15).
Hinweis: Dieser Programmteil funktioniert in der aktuellen Version von MakeCode (4.0.29) nicht.
Der angezeigte Text lässt sich auch aus Texte und Zahlen zusammensetzen.
Was passiert, wenn man versucht, auf einer Zeile mehr als 16 Zeichen anzuzeigen? Wie oben zu sehen ist, passen die Buchstaben A bis P auf das Display. Fügt man noch ein Q an, wird es an die erste Stelle der Zeile geschrieben und das A verschwindet.
Man muss also sorgfältig aufpassen, dass nie mehr als 16 Zeichen in einer Zeile dargestellt werden.
Möchte man eine Zeile Überschreiben, geht das auch nicht automatisch. Die Zeile wird nicht gelöscht und das Schreiben beginnt an der Stelle, an der der Cursor steht.
Wenn man also in einer Zeile etwas Neues anzeigen oder nur einen Wert verändern möchte, muss man darauf achten, keine alten Zeichen stehenzulassen. Am Besten, aber auch am Aufwendigsten ist es, eine Zeile immer mit 16 Zeichen anzuzeigen und entsprechend der anzuzeigenden Information den Rest mit Leerzeichen aufzufüllen.
Als nächstes soll das Display für etwas Sinnvolles verwendet werden: es soll den aktuellen Wert der Lichtstärke anzeigen.
Die Lichtstärke wird über den 5x5 LED-Bildschirm gemessen und liefert Werte zwischen 0 (dunkel) und 255 (hell) zurück.
Die erste Umsetzung der Idee zu einem Programm ist recht einfach und sieht plausibel aus. Aber wie so oft funktioniert es nicht richtig. Im ersten Bild ist die Beleuchtungsstärke 227, im zweiten Bild wurde es etwas dunkler und sie beträgt nur noch 116. Im dritten Bild wurde es noch dunkler und die Lichtstärke sinkt auf 41. Hier versagt die Anzeige und zeigt an dritter Stelle eine 0 vom vorherigen dreistelligen Wert.
Eine Lösung des Problem wäre es, vor jeder neuen Anzeige das Display zu löschen. Dafür gibt es einen Befehl. Dann flackert die Anzeige aber und das stört.
Damit der Wert ordentlich angezeigt wird, muss er entsprechend der Größe der Zahl bearbeitet werden. In einer Entscheidung werden je nach Stellen vor dem Wert zwei, eine oder keine Leerstelle eingefügt.