Mehrere DUO LEDs via GPIO am PICO

L I V E Stammtisch ab 20:30 Uhr im Chat
  • Hallo in die Runde der Macher,

    Für ein kleines zwischendurch Projekt bräuchte ich mal von euch ein paar Tipps bezüglich des Schaltungsaufbaus.

    Mit einem RasPi Pico möchte ich einen zweifarbigen Leuchtbalken mit Duo-LEDs umsetzen. Diese LEDs haben nur zwei Anschlüsse. Das ist soweit für eine einzelne LED auch noch nicht das Problem. Ich muss es irgendwie schaffen, dass die eine Farbe mit voller Helligkeit leuchtet, Grün Imin = 6 mA / Imax = 14 mA / Vc2,2-2,8 V und die andere Farbe bei entgegengesetzter Polarität Rot Imin = 4mA / Imax = 20mA / Vc1,8-2,2V auch noch via PWM Dimmbar ist.

    Da dieser Leuchtbalken jedoch über 10 dieser DUO-LEDs verfügen soll, habe ich bei der direkten Ansteuerung über jeweils 2 GPIOs ein Stromproblem.

    Gibt es eine Schaltung, bei der in der einen Richtung Grün ohne PWM ich diese LED mit etwa 10mA bei 2,5V ggf auch über eine zusätzlich bereitgestellte Spannungsquelle, und die Rote mit auch etwa 10mA bei 2,0V jedoch dann auch PWM gesteuert betreiben kann. Wichtig ist hierbei, dass alle 10 LEDs gleichzeitig leuchten können müssen.

    Danke

    es grüßt euer
    Willy

  • Wenn die LEDs nur zwei Anschlüsse haben, dann fließt der Strom für eine Farbe in die eine, für die andere Farbe in die andere Richtung. Es dürfte relativ schwierig werden, dem Strom begreiflich zu machen, dass er in beide Richtungen gleichzeitig fließen soll. In der einen Richtung ohne PWM und in der anderen mit PWM wird nicht klappen.
    Die Lösung wäre, für die Mischfarbe beide Farben mit PWM zu betreiben - also in schneller Folge den Strom umzupolen. Im Grunde brauchst du dafür eine H-Brücke. 5 x L293D und zwei Hex-Inverter sollten genügen, um 10 LEDs mit je 2 Pins anzusteuern.

    Es müsste auch möglich sein, alle 10 mit dem gleichen PWM-Signal zu versorgen und die Farbe jeweils über das Enable-Signal zu steuern. Dann brauchst du 2 Pins für das PWM-Grundsignal und 10 für die 10 Enable-Signale.

    Da das ziemlich viel GPIO-Geschalte ist, musst du es geschickt programmieren, damit andere Sachen nicht die LED-Schaltungen stören. Je nach Belastung könntest du auch einen extra µC damit beauftragen, die LEDs zu steuern und dem jeweils nur (seriell zum Beispiel) vom Pico sagen lassen, was er anzeigen soll.

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!

    2 Mal editiert, zuletzt von Gnom (7. September 2022 um 14:09)

  • Guten Tag,
    vielleicht mal zur Ergänzung, weil Tell hier ansprach, das mit einer H-Brücke mehrere dieser LEDs zu betreiben wären. Die Anforderung hätte ich vielleicht besser so formulieren sollen. Jede dieser LEDs muss einzeln auch in beide Richtungen, aber jeweils nur ein Zustand entweder Rot oder Grün ansteuerbar sein, jedoch muss die gesamte Außen- oder Zusatzbeschaltung es hergeben das alle 10 LEDs zeitgleich betrieben werden können.

    es grüßt euer
    Willy

  • Er meinte sicher nicht, dass eine H-Brücke mehrere LEDs ansteuern soll.

    Schau dir meinen Beitrag an, dann erübrigt sich die Diskussion.

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!

    Einmal editiert, zuletzt von Gnom (7. September 2022 um 14:09)

  • Die Anforderung hätte ich vielleicht besser so formulieren sollen.

    immer noch...

    wozu PWM?

    Wenn es "nur " um die unterschiedlichen Helligkeiten der beiden Farben geht dann würden 2 verschiedene Vorwiderstände reichen!

    Wenn es aber echt gedimmt werden soll, dann warum nur bei einer Farbe?

    Sollen die 10 LEDs grundsätzlich gedimmt werden?

    Sollen die 10 LEDs grundsätzlich nur an/aus je Farbe geschaltet werden?

    Sollen die 10 LEDs eine Mischfarbe der beiden erstellen?

    Bringe das mal in EIN Posting zusammen, so verliert man den Überblick.

    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)

  • Guten Tag,

    Wie zusammenfassen ?
    Na gut dann wohl mal so - vielleicht ist das besser ;)
    Der Leuchtbalken soll von einer Seite her über einen ADC Wert gefüllt werden. Dazu ist 0 alles aus - wohl klar ;)
    Dann soll die erste LED beginnend mit der Farbe rot in 9 Stufen auf fast voll hochgedimmt werden, bevor als nächster Step adc.value() = 10 diese LED auf Grün umgeschaltet wird. Und dann geht es LED für LED weiter bis schlussendlich mal alle LEDs grün leuchten. Jedoch immer mit den Zwischenschritten das die Farbe rot jeweils hochgedimmt werden soll.
    Rot soll immer heller werden, dann umschalten auf grün. Dann nächste LED - auch hier wieder rot Hochdimmen, dann Umschalten auf grün. Nächste LED usw.
    Reicht das oder ist das immer noch zu ungenau ?

    es grüßt euer
    Willy

  • keine 2-Farben LED sondern 2 LED und 1 µC pro LED ;)

    ansonsten schwirrt mir der Kopf!

    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)

  • Also alles zurück...

    Es muss immer nur eine LED mehr oder weniger rot sein, die anderen sind alle grün oder aus...

    Wie wäre es einfach mit neuen Duo-LEDs mit drei Beinchen.

    Dazu passende Vorwiderstände.

    Drei Schieberegister.

    Grün und rot kannst du einfach über die Schieberegister ein/aus schalten. Dabei schaltest du immer nur eine rote LED an.

    In die Leitungen der roten LEDs hängst du je einen Transistor und steuerst die alle parallel mit einem PWM-Signal durch. Damit kannst du die Helligkeit von rot variieren.

    Das müsste eigentlich genügen.

    Prinzipiell müsste das auch mit deinen zweibeinigen LEDs gehen. Dann musst du Schieberegister an beide Beinchen anschließen. In die eine Richtung (rot) kannst du mit den Transistoren die Helligkeit regeln in die andere Richtung musst du die Tranistoren jeweils mit einer Diode überbrücken, damit Strom für grün fließt. Die Schieberegister schaltest du gegenpolit (high/low für rot, low/high für grün) oder beide auf low für aus.

    Müsste auch gehen, oder?

    Ne andere Möglichkeit wäre, du beschaffst dir WS2811-Chips, die kosten nicht viel und du brauchst auch nur 7 Stück, weil jeder Chip 3 LEDs ansteuern kann (normalerweise RGB). Du kannst aber je Chip "eineinhalb" Duo-LEDs dranhängen. Noch ein bisschen Beschaltungskram drumherum und das müsste auch gehen.

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!

    5 Mal editiert, zuletzt von Gnom (7. September 2022 um 17:35)

  • Hallo Willy,

    Guten Tag,

    Wie zusammenfassen ?
    Na gut dann wohl mal so - vielleicht ist das besser ;)
    Der Leuchtbalken soll von einer Seite her über einen ADC Wert gefüllt werden. Dazu ist 0 alles aus - wohl klar ;)
    Dann soll die erste LED beginnend mit der Farbe rot in 9 Stufen auf fast voll hochgedimmt werden, bevor als nächster Step adc.value() = 10 diese LED auf Grün umgeschaltet wird. Und dann geht es LED für LED weiter bis schlussendlich mal alle LEDs grün leuchten. Jedoch immer mit den Zwischenschritten das die Farbe rot jeweils hochgedimmt werden soll.
    Rot soll immer heller werden, dann umschalten auf grün. Dann nächste LED - auch hier wieder rot Hochdimmen, dann Umschalten auf grün. Nächste LED usw.
    Reicht das oder ist das immer noch zu ungenau ?

    mir scheint es, dass Du Dich da mit der DUO-LED vergriffen hast. Mit dem DUO-LED-Typ mit 3 Beinchen (gemeinsame Kathode, je 1 Anode für die beiden Farben Rot und Grün) wäre Dein Vorhaben recht einfach umsetzbar. Mit Deinem Typ ist das nur mit erheblicher Zusatzbeschaltung (falls überhaupt) realisierbar.

    Wie mein Vorschlag programmiertechnisch angesteuert werden kann, habe ich mal im Icon-Tutorial Teil 12 beschrieben.

    Das mit dem Hochdimmen wird mangels 2 mal 10 PWM-Ausgänge so nichts werden. Da solltest Du auf einen Arduino Mega 2560 oder vergleichbare Modell umsteigen. Selbst da bleibe ich skeptisch.

    Das ist für mich auch wieder so ein Thread in der Art: "Ich habe da Bauteile. Und eine Idee. Setzt das mal für mich um!"

    Du hast nicht die für Deine Idee zweckmäßigsten Bauteile.


    Beste Grüße

    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 Tag Andreas,

    ich möchte dir jetzt nicht widersprechen. Ich brauche doch immer nur 1 PWM Kanal zeitgleich. Immer dann, wenn die eine LED Rot leuchten soll, und das nur dann ! Andernfalls ist diese LED entweder aus, oder leuchtet ohne PWM nur über den Vorwiderstand grün, jedoch mit umgekehrter Polarität.
    Oder habe ich jetzt hier einen totalen Denkfehler ?
    Bei meinen Versuchen, muss ich ohnehin den dann Kathoden-Pin in der Laufzeit auf

    LED_PIN1[number] = Pin(Pin_Number, Pin.OUT) 

    LED_PIN2[number] = Pin(Pin_Number + 1, Pin.OUT)

    LED_PIN1[number].on()

    LED_PIN2[number].off()

    Rein von der Programmierung in µPython leider nur mit max 3 LEDs und entsprechend großen Widerständen funktioniert das Programm. In der Laufzeit aus einem Pin-Objekt ein PWM-Objekt zu machen und umgekehrt, um diese LED ansteuern zu können das funktioniert doch in µPython.
    Es geht jetzt nur um das Schaltungstechnische Problem, wie komme ich mehr Strom zu den LEDs ?

    Es wird nicht passieren, dass in der Laufzeit oder während des Betriebs mehr als diese eine rot leuchtende LED via PWM angesteuert wird. Und das PWM soll ja auch nur bei der Farbauswahl Rot genutzt werden. Damit entfällt doch der zweite LED Pin für die Farbe Grün schon einem als PWM Ausgabequelle.
    Ich weiss, das ist nicht so ganz einfach, mit der Außenbeschaltung, aber eine andere Lösung habe ich jetzt auch nicht, weil was anderes hatte der lokale Elektronik Händler nicht auf Lager, das Gehäuse für diesen LED-Blaken mit Klarsicht Einlage ist schon fertig gedruckt. Auch das ich nicht auf meinem Mist gewachsen.
    Ich muss jetzt auch ehrlicher Weise sagen, das ganze Ding ist nicht auf meinem Mist gewachsen. Ein Kumpel / Bekannter hatte mich gefragt, geht das mit einer Dual LED. Dazu hatte er dann ein Muster angeschleppt ja das funktionierte. Dann hat er bei Händler xyz weitere solche LEDs gleicher Bauart besorgt. Habe dann weiter mit der einen LED herumprobiert, was ja funktionierte. Dann kam er mit dem Baklengehäuse und den restlichen LEDs an, und dann wat erst einmal Stopp, oder Schluss. Dann musste ich ihn bitten und betteln, nochmal zu dem Händler zu fahren, und die Daten dieser LEDs zu beschaffen,. Er kann mit einem tollen kleinen handgeschriebenen Zettelchen an, die Werte dieser habe ich schon im Eingangspost bekannt gegeben.

    Ich weiss das klingt blöd, aber ich hatte jetzt auf die schnelle auch keine andere Lösung, mal hier nachzufragen, weil im Internet habe ich keine passende Schaltung gefunden, die dieser Funktion entsprechen würde.

    es grüßt euer
    Willy

  • Es geht jetzt nur um das Schaltungstechnische Problem, wie komme ich mehr Strom zu den LEDs ?

    Also, wenn du 20 GPIOs hast und es schaffst, die jeweils paarweise zu schalten - mehrere auf high/low für grün, mehrere auf low/low für aus und immer maximal eine auf low/PWM für rot, dann ist das einzige Problem tatsächlich, dass die GPIOs nicht genügend Strom liefern.
    Wie wäre es, wenn du einfach an jeden GPIO einen Operationsverstärker als Spannungsfolger baust? Jeder OPV schaltet dann so, wie dein GPIO schaltet, nur bringt er mehr Strom. In dem Fall dürften Single Supply OPVs genügen, das würde sich bestimmt mit deinem Aufbau dann gut vertragen, wenn du keine symmetirschen Spannungen brauchst.

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!

  • GPIO einen Operationsverstärker als Spannungsfolger baust?

    der Quatsch wird immer quetscher bis er quietscht!

    Es geht hier doch nicht um analog Kram, warum OPA wenn es doch digitale Treiber gibt (irgendwie ist mir noch PWM im Kopf und nicht DAC)

    oder trollt nun Gnom mit?

    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)

  • vielleicht, man kann auch einen Pflug hinter einen SUV schnallen oder einen Trecker nutzen!

    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)

  • Da hast du wieder Recht - das lässt sich mit einer H-Brücke auch machen. Die hatte ich inzwischen ganz verdrängt, weil ich ursprünglich von Mischfarben ausgegangen bin - da wäre das nicht so einfach geworden.

    Statt der beiden OPV einfach eine H-Brücke? Warum nicht. Was ist denn im Zweifel billiger - ein Quad OPV oder eine Dual H-Brücke? Wahrscheinlich gibt sich das nicht viel.

    5 x L293D, 10 Widerstände und 20 GPIOs, das wärs eigentlich schon.

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!

  • Guten Abend,

    um deinem Einwurf Gnom gerecht zu werden, oder daraus eine schlussfolgernde Entscheidung zu treffen

    ein Quad Rail-to-Raik OPAMP Typ MCP6004 kostet mich über verschiedene Quellen ausfindig gemacht 0,62 € / Part = 5 Stück --> nach deinem Vorschlag = 3,10 €
    ein solcher L293D als einzelner Schaltkreis schlägt mit satten 7,68 € / Part zu buche.

    es grüßt euer
    Willy

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!