[Tutorial] Ansteuerung einer 7-Segment-Anzeige

  • Hey,
    da ich mich selber neulich mehrere Stunden durch diverse Foren quälen musste, um die Funktionsweise einer 7-Segment-Anzeige, geschweige denn die Ansteuerung mit dem Pi, zu verstehen und auch diverse Datenblätter mir nicht wirklich weiterhelfen konnten, möchte ich dieses kleine Tutorial schreiben. Vermutlich ist die Ansteuerung einer 7-Segment-Anzeige für viele gar kein Problem, aber es gibt mit Sicherheit auch noch Leute wie mich, die dazu ein bisschen länger brauchen :)


    1. Verkabelung:
    Wir benötigen für Ansteuerung einer 7-Segment-Anzeige sieben GPIO-Pins:

    • Pin 1 der 7-Segment-Anzeige --> Pin 26 des Pi
    • Pin 2 der 7-Segment-Anzeige --> Pin 24 des Pi
    • Pin 3 der 7-Segment-Anzeige --> Pin 6 (GND) des Pi
    • Pin 4 der 7-Segment-Anzeige --> Pin 23 des Pi
    • Pin 5 der 7-Segment-Anzeige --> Pin 22 des Pi
    • Pin 6 der 7-Segment-Anzeige --> Pin 21 des Pi
    • Pin 7 der 7-Segment-Anzeige --> Pin 19 des Pi
    • Pin 9 der 7-Segment-Anzeige --> Pin 18 des Pi


    2. Software:
    Einzelne Segmente können durch einzelnes Aktivieren eines GPIO-Pins eingeschaltet werden. Um Buchstaben oder Zahlen darzustellen, müssen natürlich mehrere GPIO-Pins gleichzeitig geschaltet werden. Dazu habe ich ein Script geschrieben, mit dem die Darstellung der Zeichen A-Z, a-z und 0-9 simpel möglich ist.
    Um das Script auf eurem Pi zu benutzen, ist ein Herunterladen nötig. Dazu einfach per SSH in ein Verzeichnis eurer Wahl navigieren und das angehängte Skript entpacken.
    Die Ansteuerung des Scriptes erfolgt dann per SSH mit

    Code
    sudo python 7Segmenter Zeichen

    Falls ihr bei der Verkabelung andere GPIO-Pins benutzt habt, muss natürlich noch eine Anpassung des Scriptes erfolgen.


    Eine Demonstration des Ganzen findet ihr hier:

    External Content www.youtube.com
    Content embedded from external sources will not be displayed without your consent.
    Through the activation of external content, you agree that personal data may be transferred to third party platforms. We have provided more information on this in our privacy policy.


    Vielleicht konnte ich hier dem einen oder anderen helfen :)

  • Das sind aber viele Pins! Also als Anfang definitiv nicht verkehrt, aber ab Nummer zwei wird es eng. Hast du zufällig 74HC595-Bausteine da? Ich könnte dir auch welche anbieten, damit kannst du mit gerade mal zwei Pins (quasi) unendlich Anzeigen steuern.

  • Darki hat völlig recht. :thumbs1:


    Vielleicht noch ergänzend: Beim 74HC595 handelt es sich um ein 8-bit Schieberegister, wovon mehrere in Reihe geschaltet werden können. 8 bits seriell reinschicken, sie werden dann parallel ausgegeben. Pro Chip kann dann eine Segmentanzeige angesteuert werden. Wenn Du nur 7 bit benötigst, schickst Du halt einfach ein "Blindbit" mit.


    Such am besten mal nach "Schieberegister" bzw. "shift register".


    Gruß, mmi


  • Das sind aber viele Pins! Also als Anfang definitiv nicht verkehrt, aber ab Nummer zwei wird es eng.


    Das sollte auch erstmal nur eine grobe Erklärung der Funktionsweise einer 7-Segment-Anzeige sein, da ich selber nicht viel im Internet dazu gefunden hatte, wie man sowas ansteuert :D Habe mir jetzt trotzdem mal ein paar Schieberegister bestellt, vielleicht erweitere ich das Tutorial dann noch. Danke auf jeden Fall für den Tipp, daran hatte ich irgendwie noch gar nicht gedacht :)

  • Klar, machen kann man es natürlich so.


    Allerdings:
    Ein Segment der Anzeige ist ja nichts anderes wie jede übliche LED.
    Wie ich sehe, gehst Du direkt auf die GPIOs ohne Vorwiderstände! :no_sad:
    Oder haben meine alten Augen die übersehen?


    Das wird dem RPi nicht lange gefallen!


  • Das sollte auch erstmal nur eine grobe Erklärung der Funktionsweise einer 7-Segment-Anzeige sein, da ich selber nicht viel im Internet dazu gefunden hatte, wie man sowas ansteuert Icon_biggrin2


    Die Kritik nicht zu eng nehmen, jeder fängt klein an und ich finde es gut, dass du dich damit beschäftigst!


    Folgender Link hat mir persönlich geholfen, als ich mehrere der 595er zusammengeschaltet habe:


    http://www.protostack.com/blog…ster-controlling-16-leds/


    Aber wie mmi schon sagt, auf jeden Fall Vorwiderstände verwenden, selbst wenn die LED (was bei rot nicht der Fall ist) für 3.3V ausgelegt ist.

  • Danke erstmal, also so wie ich das verstehe, muss ich mir ein raspberrypi kaufen und dazu noch 2x diese 7 Segment-Anzeige, weil ich ja 11 Ziffern benötige. Was brauch ich zur Stromversorgung und als Vor wieder stauende?

    • Official Post

    Bei 11 Zeichen braucht man auch 11 Segmente und 11x 74HC595 weil sonst deine GPIOs nicht reichen.

    Der Unterschied zwischen Genie und Wahnsinn definiert sich im Erfolg.

    Edited once, last by dbv ().


  • Bei 11 Zeichen braucht man auch 11 Segmente und 11x 74HC595 weil sonst deine GPIOs nicht reichen.


    Oder zehn 74HC595, sofern er keinen Punkt steuert.



    Was den Vorwiderstand angeht - einfach mal bei Google suchen, da gibt es Rechner und Formeln. Die Einheiten musst du von der Segment-Anzeige im Datenblatt ermitteln. Der Pi fährt mit 3.3V auf seinen GPIO-Pins, zur Vereinfachung solltest du die 74HC595 daher auch mit 3.3V betreiben.

    Edited once, last by Darki ().