Skip to content

Technik Blog

Programmieren | Arduino | ESP32 | MicroPython | Python | Raspberry Pi | Raspberry Pi Pico

Menu
  • Smarthome
  • Arduino
  • ESP32 & Co.
  • Raspberry Pi & Pico
  • Solo Mining
  • Über mich
  • Deutsch
  • English
Menu

Raspberry PI Pico #6: OLED Display betreiben

Posted on 26. Januar 20228. November 2023 by Stefan Draeger

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
    • Größe / Auflösung
    • Farbe
    • Anschluss
  • Anschluss eines OLED Displays an den PI Pico über I2C
  • Programmieren des OLED Displays am Raspberry Pi Pico
    • Benötigte Ressourcen für die Programmierung in CircuitPython
    • Darstellen von Texten auf einem OLED Display

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.

Arduino Projekt - Liniendiagramm mit Temperaturwerten
Arduino Projekt – Liniendiagramm mit Temperaturwerten
0,91 Zoll OLED Display
0,91 Zoll OLED Display
Textgröße 1 mit 2 Reihen Text auf dem 0,42 Zoll OLED Display
Textgröße 1 mit 2 Reihen Text auf dem 0,42 Zoll OLED Display

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 auf YouTube ansehen.

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

1 thought on “Raspberry PI Pico #6: OLED Display betreiben”

  1. Pingback: Raspberry PI Pico #7: geometrische Figuren am OLED Display - Technik Blog

Schreibe einen Kommentar Antworten abbrechen

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

Fragen oder Feedback?

Du hast eine Idee, brauchst Hilfe oder möchtest Feedback loswerden?
Support-Ticket erstellen

Newsletter abonnieren

Bleib auf dem Laufenden: Erhalte regelmäßig Updates zu neuen Projekten, Tutorials und Tipps rund um Arduino, ESP32 und mehr – direkt in dein Postfach.

Jetzt Newsletter abonnieren

Unterstütze meinen Blog

Wenn dir meine Inhalte gefallen, freue ich mich über deine Unterstützung auf Tipeee.
So hilfst du mit, den Blog am Leben zu halten und neue Beiträge zu ermöglichen.

draeger-it.blog auf Tipeee unterstützen

Vielen Dank für deinen Support!
– Stefan Draeger

Kategorien

Tools

  • Unix-Zeitstempel-Rechner
  • ASCII Tabelle
  • Spannung, Strom, Widerstand und Leistung berechnen
  • Widerstandsrechner
  • 8×8 LED Matrix Tool
  • 8×16 LED Matrix Modul von Keyestudio
  • 16×16 LED Matrix – Generator

Links

Blogverzeichnis Bloggerei.de TopBlogs.de das Original - Blogverzeichnis | Blog Top Liste Blogverzeichnis trusted-blogs.com

Stefan Draeger
Königsberger Str. 13
38364 Schöningen

Tel.: 01778501273
E-Mail: info@draeger-it.blog

Folge mir auf

  • Impressum
  • Datenschutzerklärung
  • Disclaimer
  • Cookie-Richtlinie (EU)
©2025 Technik Blog | Built using WordPress and Responsive Blogily theme by Superb
Cookie-Zustimmung verwalten
Wir verwenden Technologien wie Cookies, um Geräteinformationen zu speichern und/oder darauf zuzugreifen. Wir tun dies, um das Surferlebnis zu verbessern und um personalisierte Werbung anzuzeigen. Wenn Sie diesen Technologien zustimmen, können wir Daten wie das Surfverhalten oder eindeutige IDs auf dieser Website verarbeiten. Wenn Sie Ihre Zustimmung nicht erteilen oder zurückziehen, können bestimmte Funktionen beeinträchtigt werden.
Funktional Immer aktiv
Die technische Speicherung oder der Zugang ist unbedingt erforderlich für den rechtmäßigen Zweck, die Nutzung eines bestimmten Dienstes zu ermöglichen, der vom Teilnehmer oder Nutzer ausdrücklich gewünscht wird, oder für den alleinigen Zweck, die Übertragung einer Nachricht über ein elektronisches Kommunikationsnetz durchzuführen.
Vorlieben
Die technische Speicherung oder der Zugriff ist für den rechtmäßigen Zweck der Speicherung von Präferenzen erforderlich, die nicht vom Abonnenten oder Benutzer angefordert wurden.
Statistiken
Die technische Speicherung oder der Zugriff, der ausschließlich zu statistischen Zwecken erfolgt. Die technische Speicherung oder der Zugriff, der ausschließlich zu anonymen statistischen Zwecken verwendet wird. Ohne eine Vorladung, die freiwillige Zustimmung deines Internetdienstanbieters oder zusätzliche Aufzeichnungen von Dritten können die zu diesem Zweck gespeicherten oder abgerufenen Informationen allein in der Regel nicht dazu verwendet werden, dich zu identifizieren.
Marketing
Die technische Speicherung oder der Zugriff ist erforderlich, um Nutzerprofile zu erstellen, um Werbung zu versenden oder um den Nutzer auf einer Website oder über mehrere Websites hinweg zu ähnlichen Marketingzwecken zu verfolgen.
Optionen verwalten Dienste verwalten Verwalten von {vendor_count}-Lieferanten Lese mehr über diese Zwecke
Einstellungen anzeigen
{title} {title} {title}