7 Segment Display Raspberry Pi Einzelnd

7 Segment Display Raspberry Pi Einzelnd Titelbild

7 Segement Display

In diesem Teil schließen wir das 7 Segment Display an und lernen, wie man mit Python3 Informationen auf dem Display darstellen kann. Das 7 Segment Display besteht aus zweimal vier Feldern. Jedes Feld ist aus sieben LEDs zusammengesetzt, die wir einzeln steuern können. Deswegen 7 Segment Display.

Sieben Segment Display

SPI für das Display
Für das Display muss SPI in der raspi-config aktiviert sein.

sudo raspi-config

In dem Menü wählen wir zuerst Punkt Nr. 5 aus, 7 Interfacing Options. Als nächstes dann Punkt P4 SPI . Auf die Frage, ob wir das SPI Interface aktivieren wollen, antworten wir mit und bestätigen das mit OK .

Auf der linken Seite des Displays sind fünf Pins mit einer Beschriftung. Diese schließt du wie folgt an deinem Pi an:

Sieben Segment Display am Raspberry Pi

Display Belegung Beschreibung GPIO Pin
VCC Power 5V Pin 2
GND Ground Pin 21
DIN Data In GPIO10
CS Chip Select GPIO 8
CLK Clock GPIO11

Um Informationen auf dem Display anzeigen zu können, müssen wir dem Display mitteilen, welche LEDs leuchten sollen. Für ein O, oder eine 0, wären das die LEDs oben, unten, links oben, links, rechts unten und rechts oben. Also ganz schon viel Aufwand. Zum Glück gibt es auch dafür eine Bibliothek, die uns viel Arbeit abnimmt. Diese installieren wir mit pip.

sudo pip3 install max7219

pip lädt nun automatisch die benötigten Dateien herunter. Um zu testen, ob dein Display richtig angeschlossen ist, haben wir ein kleines Test Script vorbereitet. Du kannst es dir hier herunterladen

wget cw42.de/p/sevensegment_test.py
python3 sevensegment_test.py

Jetzt sollten allerhand Daten auf deinem Display angezeigt werden. So bekommst du auch einen guten Eindruck davon, was mit dem Display alles möglich ist. Auf die wichtigsten Funktionen gehen wir gleich noch im Detail ein.

  • Was du gerade siehst ist
  • Simpler Text
  • Scrollender Text
  • Helligkeit
  • Scrollen
  • Negative Nummern
  • Hex Nummern
  • Zufallszahlen
  • Datum

Wie dir aufgefallen sein wird, können nicht alle Buchstaben auf dem Display angezeigt werden. Das K und W funktionieren zum Beispiel nicht. Großbuchstaben sind meistens besser zu erkennen als kleine Buchstaben, manchmal hilft auch eine Mischung.

7 Segment Display ansteuern.

Beispiele sind klasse zum Testen, aber viel mehr Spaß macht es, eigene Dinge auf das Display zu bringen. Dafür legen wir eine neue Datei mit dem Namen WriteText.py an und schreiben folgendes hinein:

import max7219.led as led
device = led.sevensegment(cascaded=1)
device.write_text(0, "HALLO")

In der ersten Zeile binden wir aus der Bibliothek max7219 den LED Teil als led ein. Danach müssen wir festlegen, wie viele Displays wir angeschlossen haben - in unserem Fall eins. Über die Variable device = led.sevensegment(cascaded=1) übergeben einmal die Art des Displays, hier sevensegment . Außerdem übergeben wir den Wert cascaded=1, dieser definiert wie viele Displays wir verwenden. Das ist, wie gesagt, bei uns eines. Falls du mehrere Displays hintereinander angeschlossen hast, musst du den Wert cascaded=1 entsprechend anpassen.
In Zeile 3 geben wir den Text aus. Auf device rufen wir die Funktion write_text auf und übergeben zwei Werte ( 0 und “HALLO“ ). Die 0 steht für das Display, das wir ansprechen wollen. Da wir nur ein Display haben, ist es das Erste, also 0. Danach kommt der Text den wir anzeigen wollen. Achte auf die Anführungsstriche und das Komma zwischen den Werten.

Jetzt führe dein Script aus:

python3 WriteText.py

Auf dem Display sollte nun HALLO stehen. Versuche doch mal, deinen Namen auf dem Display anzeigen zu lassen.

Mit write_text sprechen wir alle acht Felder auf dem Display an. Bei mehr als acht Zeichen gibt es einen Fehler. Wenn du längeren Text anzeigen möchtest, gibt es dafür die Funktion device.show_message

device.show_message zeigt einen Lauftext über alle angeschlossenen Display an.

device.show_message("Hallo, ich bin ein Text!")

Es geht aber auch kleiner. Mit der Funktion device.letter können einzelne Felder angesprochen werden. Bei dieser Funktion müssen auch ein paar Werte übergeben werden, zum Beispiel device.letter(0, 3, “H“, 1)

letter. (0, 3, "H", 1)
0 Display
3 Feldnummer (1-8)
“H“ Buchstabe oder Zahl, die wir ausgeben
1 Mit Punkt (oder 0 ohne Punkt)

Wir übergeben vier Werte, die durch ein Komma getrennt sind. An erster Stelle steht eine 0. Die 0 steht für das Display, auf das wir zugreifen wollen. Bei mehreren Displays wäre 0 das erste, 1 das zweite usw. Die 3 steht für die Feldnummer. Das ist das Feld, auf das wir zugreifen wollen. Das "H" ist der Buchstabe, den wir ausgeben wollen. Eine kleine Besonderheit ist die 1 unten links. Auf jedem Feld ist ein kleiner Punkt. Diesen können wir über diesen vierten Wert steuern. 1 für AN. 0 für AUS.

Wir haben jetzt gelernt, wie man unterschiedlichen Text auf dem Display anzeigen kann. Die Bibliothek kann aber noch mehr. Ein paar praktische Funktionen wollen wir uns noch kurz anschauen.

device.write_number(0, -100) Zeigt eine Nummer auf dem Display an. Der erste Wert 0 zeigt auf das Display, der zweite Wert ist die Zahl.

device.brightness() stellt die Helligkeit des Displays ein von 0-15, wobei 0 dunkel ist und 15 super hell. Davor solltest du etwas auf dem Display anzeigen. Lauftext geht dabei nicht, da dieser erst durchläuft bevor die Helligkeit dann eingestellt wird.

device.clear() löscht alles auf dem Display.

Das war die Sektion über das 7 Segment Display. Falls du dazu noch Fragen hast, dann besuche uns auf CodingWorld.io oder auf der Adresse am Ende dieser Seite. Dort beantworten wir Fragen und freuen uns über dein Feedback.

Noch Fragen oder Feedback?

Bevor du eine Frage stellen kannst musst du dich zuerst Anmelden oder Regestrieren!