Raspberry PI Pico #6: OLED Display betreiben

In diesem Beitrag möchte ich dir zeigen, wie du ein OLED Display am Raspberry Pi Pico in CircuitPython programmieren kannst.

Raspberry Pi Pico - OLED Display in CircuitPython Programmieren
Raspberry Pi Pico – OLED Display in CircuitPython Programmieren

Im letzten Beitrag Raspberry PI Pico #5 – Ultraschallabstandssensor RCW-001 & OLED Display anschließen habe ich dir bereits ein kleines Projekt mit einem OLED Display gezeigt. Jedoch hatte ich dort die Skriptsprache MicroPython verwendet, welche sich doch recht stark von CircuitPython unterscheidet.

OLED Displays

Auf dem Markt gibt es diverse OLED Displays, welche man in nachfolgende vier Kategorien unterteilen kann.

Größe / Auflösung

Die OLED Displays für die Mikrocontroller & Einplatinencomputerprogrammierung erhältst du in diversen Auflösungen bzw. Größen.

Größe in ZollAuflösungPreis
0,42″70 x 403 €
0,49″64 x 322,50 €
0,91″128 x 324,58 €
0,96″128 x 645,25 €
1,3″128 x 643,39 €
1,5″128 x 6410,30 €
2,42″128 x 6413,25 €

In diesem Beitrag verwende ich nachfolgende kleine OLED Displays.

Farbe

Bei der Wahl der Farbe kann man zwischen blau / weiss, schwarz / weiss und Farbig (RGB Spektrum) wählen.

Mir gefallen die blau / weiss OLED Displays am besten da dort der Kontrast am besten zur Geltung kommt.

Anschluss

Beim Anschluss gibt es genau 2 Varianten zum einen per I2C und per SPI.

Die mir vorliegenden OLED Displays haben jeweils einen I2C Anschluss. Der Anschluss per SPI ist aber nicht wesentlich komplizierter, es werden lediglich mehr PINs für die Kommunikation benötigt.

Anschluss eines OLED Displays an den PI Pico über I2C

Die Kommunikation per I2C geschieht über Adressen, das macht es möglich an zwei Pins sehr viele Sensoren / Aktoren anzuschließen bzw. zu betreiben.

Da mir derzeit nur Displays mit I2C Schnittstelle vorliegen kann, ich derzeit nicht zeigen wie man ein OLED Display mit SPI Schnittstelle anschließt. Aber ich habe eines bestellt und sobald dieses da ist, werde ich einen kurzen Beitrag darüber veröffentlichen.

Der Pi Pico verfügt über 2 I2C Schnittstellen an welche wir unser Display anschließen können. Ich habe mir ein kleines Expansionboard erstellt welches die Kontakte des I2C1 separat herausführt.

UART & I2C Pins auf dem DIY Expansion Board
UART & I2C Pins auf dem DIY Expansion Board

Aufbau der Schaltung - Raspberry Pi Pico mit OLED Display
Aufbau der Schaltung – Raspberry Pi Pico mit OLED Display

Programmieren des OLED Displays am Raspberry Pi Pico

Raspberry Pi Pico - OLED Display in CircuitPython programmieren
Dieses Video ansehen auf YouTube.

Benötigte Ressourcen für die Programmierung in CircuitPython

Damit du deinen Raspberry Pi Pico mit CircuitPython programmieren kannst, musst du diesen ggf. zunächst einmal flashen. Dazu musst du die *.uf2 Datei von https://circuitpython.org/board/raspberry_pi_pico/ herunterladen und auf deinem Pi Pico kopieren.

Des Weiteren werden für die die verwendete CircuitPython Version auch die Bibliotheken benötigt. In meinem Fall habe ich den Pi Pico in der Version 7.11 geflasht und lade die Beispiele für die Version 7.x von https://circuitpython.org/libraries herunter.

Aus diesem Bundle von Bibliotheken benötigen wir die Dateien / das Verzeichnis

  • adafruit_ssd1306.mpy
  • adafruit_framebuf.mpy
  • adafruit_display_text

Diese Dateien / dieses Verzeichnis werden / wird in den Ordner „CIRCUITPY (G:) lib“ kopiert.

Sowie benötigen wir zusätzlich eine Binäre Fontdatei für die Darstellung von Text. Diese Datei laden wir vom GitHub Repository adafruit / Adafruit_CircuitPython_framebuf aus den Beispielen herunter und speichern diese im gleichen Pfad wie die Datei „code.py“ auf dem Laufwerk „CIRCUITPY“.

Darstellen von Texten auf einem OLED Display

Fangen wir zunächst mit dem Darstellen von Texten auf einem OLED Display an.

import board
import busio
import adafruit_ssd1306
import time

SDA = board.GP2
SCL = board.GP3
i2c = busio.I2C(SCL, SDA)

oled = adafruit_ssd1306.SSD1306_I2C(128, 32, i2c)

oled.fill(0)
time.sleep(0.1)

oled.text("Hello World!", 0, 0, 1)

oled.show()

Wenn wir den obigen Code auf dem Pi Pico ausführen, dann wird auf dem Display an der Koordinate X=0, Y=0 in der Schriftgröße 1 der Text „Hello World!“ angezeigt.

Raspberry Pi Pico mit OLED Display
Raspberry Pi Pico mit OLED Display

Ein Kommentar

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht.