LED angeschlossen - Wie viele sind max. möglich?

  • Ahoi und Moin Moin von der Küste,

    Ich habe mir mal so ein Entwickler-Kit zugelegt und spiele damit ein bisschen rum.
    Dabei habe ich meine erste "Schaltung" aufgebraut:

    https://tutorials-raspberrypi.de/raspberry-pi-g…mierung-lernen/

    Nun frage ich mich gerade, wie viele LED's kann ich maximal steuern?
    Da ich 8 x Ground habe, gehe ich davon aus, das das Limit auch 8 LED's sind, oder?

    Und wenn ich mir nun so einen GPio Portexpander zulege, habe ich dann wirklich komplett neue Möglichkeiten neue LED's anzuschliessen?

  • Guten Abend,

    um deine Frage mal ganz unvoreingenommen zu beantworten nahezu unendlich viele.
    Das hängt von einigen Gegebenheiten ab, zu denen du keine Aussage machst.
    Solange du den Strom der über den einzelnen GPIO PIn abfließt im Zaume hältst geht vieles. Das heißt, entweder du reduzierst für jede LED mit einem Vorwiderstand derartig den Strom, dass dieser nicht überlastet wird, nur ist dann die Frage ob die resultierende Helligkeit deinen Wünschen entspricht. Da es keine wirklich verbindlichen Angaben darüber gibt was in der Summe über alle GPIO Pins entnommen werden kann, oder darf, hier aber die Meinungen von 7 bis max 20 mA pro Pin sehr weit auseinander gehen, kannst du dir selber ausrechnen was möglich wäre, wenn dir die Leuchtkraft oder Helligkeit mit den entsprechenden Vorwiderständen zureicht.
    Alternativ kann man an den GPIO Pin auch wieder mit einem Vorwiderstand eine kleinen Schalttransistor ansteuern, so das die Stromlast nicht mehr von dem einzelnen GPIO Pin aufgebracht werden muss.
    Hier kannst du wenn du zudem eine externe Stromquelle für den LED Stromkreis der vom Transistor geschaltet wird, so viele LEDs anklemmen, wie der Transistor zu schalten vermag und die externe Spannungsquelle Strom liefern kann.

    Entsprechende Schaltbilder findest du im Internet, die Berechnungsgrundlagen zum Vorwiderstand ebenfalls.


    :!: Niemals eine LED ohne Vorwiderstand an das PI anschließen :!:

    Bei den Portexpandern gelten die Leistungsdaten die in deren Datenblättern vermerkt sind. Prinzipiell ist es ähnlich, wie bei den GPIOs.

    es grüßt euer
    Willy

  • Wie viele gehen da denn mit einem Standard RPi?

    Die Aussage bleibt die selbe! Das ist abhängig vom Strombedarf der LEDs und der Vorwiderstände. Hier werden z.B. 6 LEDs geschalten https://gpiozero.readthedocs.io/en/stable/recipes.html#ledbargraph

    Übrigens würde ich einen GPIO-Pin mit max. 4mA belasten. So ein GPIO kann schneller abrauchen als einem lieb ist. Die erwähnten 20mA an einem Pin sind schon sportlich. Ich würde das jedenfalls bei den derzeitigen Preisen für RPis nicht riskieren.

  • ...
    Ok, ich hab mich wohl doof ausgedrückt. Ich möchte jede einzelne LED auch direkt ein/ausschalten können.
    Wie viele gehen da denn mit einem Standard RPi?

    Das kommt auch auf deine Schaltung an. Ein GPIO Ausgang kann auf high bzw. auf low geschaltet werden, mit einem passenden Vorwiderstand könnten z.B. 2 LED's ( vorzugsweise low Current ) bei unterschiedlicher Polung einzeln, durch einen GPIO Port geschaltet werden.

  • könnten z.B. 2 LED's ( vorzugsweise low Current )

    irgendwie gibt es seit Jahren keine low current LED mehr, ich kenne die noch aus Anfangszeiten vor 23 Jahren als ich in einer Elektronik Werkstatt anfing in den Sortimentskästen. Später ergänzte ich nur noch mit uh ultra helle LEDs ab 1,7Cd ( bis 12Cd)

    mit 1 k Vorwiderstand ist es schon grob hell, reinschauen fast unmöglich.

    https://www.segor.de/#Q=LED3ws%252F12cd-20%25C2%25B0&M=1

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Moin pcollins,

    um Deine eingangs gestellt Frage zu beantworten:

    Du kannst an jeden GPIO-Pin, den Du als solchen konfiguriert hast (also keine Alternativ-Funktionalitäten zugewiesen hast) je eine LED (Light Emitting Diode) mit einem Widerstand, der den Strom auf 2 mA reduziert, betreiben - sofern Du den GPIO-Pin als Ausgang und auf HIGH setzt.

    Wenn Du mehr brauchst, dann gezielt nachfragen. Auch das gibt es Möglichkeiten, die geringfügig komplizierter sind.

    Beste Grüsse

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

  • Guten Morgen pcollins,

    Ah ok...

    Unendlich?

    Ok, ich hab mich wohl doof ausgedrückt. Ich möchte jede einzelne LED auch direkt ein/ausschalten können.
    Wie viele gehen da denn mit einem Standard RPi?

    Auch das ist immer noch sehr schwammig, oder uneindeutig.
    Wenn du sagst, oder festlegst, das du jede deiner LEDs direkt an dein Pi und damit an einen GPIO Pin anschließen willst, dann sind es so viele LEDs wie du frei verfügbar, anderweitig ungenutzte GPIOs hast. Dabei gilt auch hier wieder der Grundsatz du kannst nicht unendlich viel Strom über diese PINs aus dem 3,3 Volt Stromkreis des PIs abzweigen. Ich werde hier jetzt keine weiteren Angaben mehr machen wieviel mA (Milliampere) das sein dürfen. Diese Diskussionen würde hier schon unendlich oft geführt, teilweise soweit das sich die Mitglieder fast an den Hals gesprungen wären, weil es keine zuverlässigen Herstellerunterlagae für alle Raspberry PI Modelle gibt.
    Wie schon gesagt, wenn dir die hier nun genannten 2mA pro Ausgang nicht ausreichen, bleibt dir nur der Umweg über eine Transistorverstärkerstufe um leistungsstärkere, oder strom-hungrigere LEDs zu betreiben.
    Bezüglich der Ansteuerbarkeit einzelner LEDs kann man dieses direkt über die GPIOs machen, über Schieberegister die auch kaskadierbar sind, wo jedoch der Programmieraufwand höher ist. Mit zunehmender Anzahl der einzelnen Schieberegister-Bausteine wie dem 74xx595 , und damit der Anzahl der einzelnen LEDs steigt der Programmieraufwand entsprechend an.
    Aber auch die Portexpander lassen sich je nach Typ und Hersteller kaskadieren. Das theoretische Maximum (Betonung theoretische) würde hier bei einer Durchmischung der BUS-Systeme I2C und SPI folgendes ergeben:
    Mit dem MCP23S17/23S18 kannst du über eine CS Signal des SPI Bus bis zu 8 dieser einzelnen Expander Bausteine mit je 16 Ausgängen ansteuern. Was in der Summe 128 einzelne GPIO Ausgänge bedeuten würde. Erzeugt man nun das CS Signal nicht über die GPIO Pins auf den PI-Board sondern nutzt dafür die I2C Brüder dieser Schaltkreise die MCP23017/MCP23018 gilt auch hier wieder - pro Expanderchip 16 Ausgänge also 16 getrennte CS Signale - was wiederum 16 * (8 *16) GPIOs = 2048 einzeln ansteuerbaren entsprechen würde. Nutzt du wieder 8 dieser I2C Expanderbausteine um getrennte CS Signale zu erzeugen könntest du über einen SPI Bus theoretisch diesen Aufbau mit jeweils 8 SPI Expanderbausteinen wieder auf oder um 128 erweitern, so das - was aber sowohl materiell wie auch programmiertechnisch Irrsinn wäre - die Anzahl der einzeln ansteuerbaren GPIO Ausgänge an diesen Portexpandern in der Summe auf 16384 erhöhen. Wie gesagt, das sind nur eine rein theoretische Betrachtungen, die wohl noch keiner so in diesem Umfang umgesetzt haben dürfte.

    Oder man setzt auf Matrix Encoder wie dem MAX72196 welcher 64 einzelne LEDs ansteuern kann.
    Zum Schluss ist aber alles eine Frage der stabilen Spannungs- und Stromversorgung.

    Bei bis zu 128 zu schaltenden Ausgängen, zumal deine Planung noch nicht abgeschlossen ist, würde ich auf diese einfach kaskadierbaren Portexpander setzen. Die Programmbibliotheken sind für alle gängigen Programmiersprachen verfügbar, und somit kann die Schaltung auch sehr leicht und einfach erweitert werden. Dabei ist es relativ egal, ob du auf I2C oder den SPI Bus setzt. Der SPI Bus ist schneller, bedeutet aber einen höheren Verdrahtungsaufwand. Schieberegister auch ja, wenn du keine nachträglichen Anpassungen und Änderungen machen möchtest, sondern müsstest du nicht nur die Programmierung anpassen, sondern auch die Beschaltung abändern, was sich auf vorgefertigten Platinen nur schwer bis gar nicht umsetzen lässt. Die Matrix-Bausteine nur dann ja, wenn der Strom für eine direkt angesteuerte LED ausreichend ist. Solltest du dann mehr Leistung benötigen, und entsprechende Nachverstärker wie Transistoren notwendige werden, steigt der zusätzlich zu betreibende Beschaltungsaufwand exponentiell.

    Wie ich dir in deiner ersten Anfrage zum C128 gesagt hatte, mache erst einmal einen Plan was du überhaupt umsetzen willst. Dann kannst du dich mit den Umsetzungsmöglichkeiten entsprechend der genannten verschiedenen und unterschiedlichen Lösungsvarianten auseinander setzen.

    Damit steht neben der Planung des "was Alles" auch eine umfangreiche Planung der Stromversorgung auf deiner ToDo Liste.

    Das PI kann nur sehr eingeschränkt, und vom eigenen Netzteil abhängig, Strom für externe Baugruppen über die 3,3 V und 5,0 V Pins bereitstellen.

    es grüßt euer
    Willy

  • Das PI kann nur sehr eingeschränkt, und vom eigenen Netzteil abhängig, Strom für externe Baugruppen über die 3,3 V und 5,0 V Pins bereitstellen.

    100% Zustimmung

    Ohne Plan (Konzept) wird dat nüscht!

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!