Forum: Analoge Elektronik und Schaltungstechnik 6 LEDs gemeinsamer Pluspol mit Arduino schalten


von Ralph E. (marph)


Angehängte Dateien:

Lesenswert?

Ich habe hier Taster mit 2 integrierten RGB-LEDs (Honyone PB06-B/C).
Jede LED hat einen gemeinsamen Pluspol und dann 3 Minuspole für die drei 
Farben.
Habt Ihr einen Tipp wie ich die Minuspole mit einem Arduino elegant 
schalten und per PWM kann? Programmiertechnisch sind auch serielle o. 
I2C-Lösungen möglich, aber was den Schaltungsaufbau angeht, wäre ich für 
einen Tipp sehr dankbar. SMD-Löten ist OK, falls es auf einen Treiber 
hinausläuft.
[Sorry. Sollte nur ein Dateianhang werden]

: Verschoben durch Moderator
von Peter N. (alv)


Lesenswert?

Ralph E. schrieb:
> Habt Ihr einen Tipp wie ich die Minuspole mit einem Arduino elegant
> schalten und per PWM kann?

Gemeinsame Anode macht es doch einfach: Jede Led-Kathode über einen 
Transistor nach Masse schalten.

Desweiteren gibt es I²C Portexpander/Ledtreiber, die die Leds schalten 
und auch noch dimmen können.

von Sebastian R. (sebastian_r569)


Lesenswert?

Die ATMega328P-basierten Arduinos können doch sogar 6 PWM-Kanäle von 
Haus aus.

Je nach gefordertem Strom durch die LED nen Transistor dazu und ab 
dafür.

Ansonsten wäre der PCA9685 so ein klassischer Kandidat dafür.

von H. H. (Gast)


Lesenswert?

Erst mal messen wieviel Strom nötig ist, um die nötige Helligkeit zu 
erreichen.

von Peter N. (alv)


Lesenswert?

Sebastian R. schrieb:
> Ansonsten wäre der PCA9685 so ein klassischer Kandidat dafür.

16 Ports sind doch unnötig, es gibt auch 8 Port-Varianten.

von Ralph E. (marph)


Lesenswert?

Peter N. schrieb:
> 16 Ports sind doch unnötig, es gibt auch 8 Port-Varianten.
das wäre OK, dann könnte ich zwei Taster ansteuern oder vier, wenn ich 
die beiden LEDs im Schalter zusammenlege.

Allerdings ist der doch schon recht teuer, wenn man in DE bestellt. Und 
man findet fast nur das Servo-Ansteuerungsmodul auf PCA9685-Basis.

Vielleicht findet sich ja noch ein Kandidat, der preiswerter ist, aber 
auf alle Fälle vielen Dank für die hilfreichen und schnellen Antworten. 
Klasse!

von Ralph E. (marph)


Lesenswert?

Peter N. schrieb:
> Desweiteren gibt es I²C Portexpander/Ledtreiber, die die Leds schalten
> und auch noch dimmen können.
Ich weiß leider nicht wie ich die finde.

von Ralph E. (marph)


Lesenswert?

Wieso bekommt man bei der Frage (im 1. Beitrag) eigentlich gleich 
Minuspunkte bei Lesenswert?

von Thomas K. (thomas2021)


Lesenswert?

Weil die Bewertungen hier im Forum ist fürn Arsch sind.
Klicki Spielzeug sollte schon längst sowas weg.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Ralph E. schrieb:
> Wieso bekommt man bei der Frage (im 1. Beitrag) eigentlich gleich
> Minuspunkte bei Lesenswert?
1. ist doch egal
2. es gibt halt Leute, die finden die Frage nicht lesenwert
3. du hast das A-Wort verwendet und zutiefst verwurzelte Urreflexe 
geweckt

Ralph E. schrieb:
> wenn ich die beiden LEDs im Schalter zusammenlege.
Mein Vorschlag: gibt trotzdem jeder LED einen eigenen Widerstand.

Ralph E. schrieb:
> Peter N. schrieb:
>> Desweiteren gibt es I²C Portexpander/Ledtreiber
> Ich weiß leider nicht wie ich die finde
Probiers mit den englischen Worten:
- https://www.google.com/search?q=I%C2%B2C+Led+driver

Bei "Portexpander" ist es natürlich einfacher, da muss man nichts 
übersetzen:
- https://www.google.com/search?q=portexpander+i2c

: Bearbeitet durch Moderator
von Enrico E. (pussy_brauser)


Lesenswert?

Lothar M. schrieb:
> du hast das A-Wort verwendet und zutiefst verwurzelte Urreflexe geweckt.

Seit wann weckt der Arduino Urreflexe? Das schlimme A-Wort von Thomas K. 
ist in der Menschheitsgeschichte schon deutlich älter und hätte somit 
tatsächlich das Potenzial Urinstinkte zu wecken, die zu einer 
Negativbewertung führen können ;)

von Helmut -. (dc3yc)


Lesenswert?

Enrico E. schrieb:
> Urinstinkte

Ich dachte, "stinken" wird stark konjugiert? Dann müsste es doch 
"Urinstank" heißen, oder nicht?

von Helmut -. (dc3yc)


Lesenswert?

Ralph E. schrieb:
> Und
> man findet fast nur das Servo-Ansteuerungsmodul auf PCA9685-Basis.

Mit diesem Modul kannst du auch LEDs ansteuern. Und sie sogar in der 
Helligkeit ändern!

von Stefan F. (Gast)


Lesenswert?

Wer die LEDs nicht direkt (über Widerstände) an den Mikrocontroller 
anschließen will, der sollte vielleicht mal erklären, warum nicht. Dann 
kann man ihm passende Vorschläge machen.

Und dabei vielleicht auch daran denken, dass es nicht den Arduino 
gibt. Das ist ein Software Framework für hunderte Mikrocontroller 
Modelle.

von Max M. (jens2001)


Lesenswert?

Ralph E. schrieb:
> Wieso bekommt man bei der Frage (im 1. Beitrag) eigentlich gleich
> Minuspunkte bei Lesenswert?

Weil du...
1.... nicht verrätst welche Versorgungsspannung du hast.
2.... nicht verrätst wieviel Strom die LED brauchen?

Ralph E. schrieb:
> schalten und per PWM kann?

Was jetzt? schalten oder dimmen?

von Michael B. (laberkopp)


Lesenswert?

Ralph E. schrieb:
> was den Schaltungsaufbau angeht, wäre ich für einen Tipp sehr dankbar

Einfach über den notwendigen Vorwiderstand, z.B. 270 Ohm für 10mA, an 
Arduino-Ausgangspins, man braucht halt 6 davon. Die LED der jeweiligen 
Farbe leuchtet dann wenn der Ausgang auf low geht (0% PWM macht maximale 
Helligkeit).
Man kann Arduino-PWM AnalogWrite nutzen, die nur an einigen Ausgängen 
geht, oder Soft-PWM selber programmieren.

von Ralph E. (marph)


Lesenswert?

Stefan F. schrieb:
> Wer die LEDs nicht direkt (über Widerstände) an den Mikrocontroller
> anschließen will, der sollte vielleicht mal erklären, warum nicht. Dann
> kann man ihm passende Vorschläge machen.
>
> Und dabei vielleicht auch daran denken, dass es nicht den Arduino
> gibt. Das ist ein Software Framework für hunderte Mikrocontroller
> Modelle.

Ich kannte bisher nur das Schalten über den Pluspol der LED. Also 
Widerstand davor und alles war gut. nun muss ich die LEDs aber über den 
Minuspol schalten, da sie gemeinsam am Pluspol hängen. Und da weiss ich 
icht wie das geht, daher hier die Frage nach einer Lösung.

von Ralph E. (marph)


Lesenswert?

Michael B. schrieb:
> Ralph E. schrieb:
>> was den Schaltungsaufbau angeht, wäre ich für einen Tipp sehr dankbar
>
> Einfach über den notwendigen Vorwiderstand, z.B. 270 Ohm für 10mA, an
> Arduino-Ausgangspins, man braucht halt 6 davon. Die LED der jeweiligen
> Farbe leuchtet dann wenn der Ausgang auf low geht (0% PWM macht maximale
> Helligkeit).
> Man kann Arduino-PWM AnalogWrite nutzen, die nur an einigen Ausgängen
> geht, oder Soft-PWM selber programmieren.

Aber wie geht das wenn man die LED am Minuspol schalten muss?

von Ralph E. (marph)



Lesenswert?

Max M. schrieb:
> Ralph E. schrieb:
>> Wieso bekommt man bei der Frage (im 1. Beitrag) eigentlich gleich
>> Minuspunkte bei Lesenswert?
>
> Weil du...
> 1.... nicht verrätst welche Versorgungsspannung du hast.
> 2.... nicht verrätst wieviel Strom die LED brauchen?
>
> Ralph E. schrieb:
>> schalten und per PWM kann?
>
> Was jetzt? schalten oder dimmen?

Aus-/Anschalten und dimmen schliesst sich doch nicht aus.
Versorgungsspannung liegt bei 3.3V.
Stromverbrauch kenne ich nicht und weiss leider auch nicht wie ich ihn 
messen soll.
Das steht dazu im Datenblatt:
Function: Momentary
Circuit: OFF-(ON) / Momentary SPST
Current Rating: 100mA
Solder Spec: 350 °C for 5 seconds
Resistance: 100 MOhm
Operating life: 1.000.000 Cycles minimum
EAN / GTIN: not available

von Manfred P. (pruckelfred)


Angehängte Dateien:

Lesenswert?

Ralph E. schrieb:
> Wieso bekommt man bei der Frage (im 1. Beitrag) eigentlich gleich
> Minuspunkte bei Lesenswert?

Weil es absolute Basisdinge sind, die man in den Beschreibungen zum 
Arduino findet.

Ralph E. schrieb:
> Aber wie geht das wenn man die LED am Minuspol schalten muss?

Was daran ist so schwer?
Michael B. schrieb:
> Die LED der jeweiligen Farbe leuchtet dann wenn der Ausgang auf low geht

Im Anhang die üblichen Varianten, für dich links unten "weiss".

von Ralph E. (marph)


Lesenswert?

Ich wusste nicht, dass das geht (Pin D9). Jetzt habe ich es verstanden.
Danke, dass wird wohl die Lösung sein.

P.S. Ich finde es aber schade, dass Anfänger hier so gedisst werden.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Ralph E. schrieb:
> Aber wie geht das wenn man die LED am Minuspol schalten muss?
Gib am µC-Port Low aus, dann leuchtet die LED.

Ralph E. schrieb:
> P.S. Ich finde es aber schade, dass Anfänger hier so gedisst werden.
Halb so wild. Wenn der Anfänger zeigt, dass er gewillt ist, ein wenig 
mitzudenken, dann geht das schon.

Wenn du statt "Pluspol" und "Minuspol" die richtigen Namen der 
LED-Anschlüsse  "Anode" und "Kathode" verwendest, dann findest du auch 
ganz leicht eine Antwort:
- https://www.google.com/search?q=LED+gemeinsame+anode+&tbm=isch
findet
- https://makeabilitylab.github.io/physcomp/arduino/rgb-led.html

: Bearbeitet durch Moderator
von Sebastian R. (sebastian_r569)


Lesenswert?

Ralph E. schrieb:
> P.S. Ich finde es aber schade, dass Anfänger hier so gedisst werden.

Ich eigentlich auch. Aber manchmal fühlt es sich so an, als sei 
Eigenleistung und eigene Recherche irgendwie out.

Damit möchte ich dir nichts vorwerfen oder dir etwas unterstellen, das 
ist mehr ein allgemeines Problem.

Aber auch bei deiner Frage  findet sich mit dem Suchbegriff "RGB LED 
Arduino" einiges, das bereits eine Lösung für dich beinhaltet.

https://funduino.de/nr-20-rgb-led
https://www.exp-tech.de/blog/arduino-tutorial-so-verwenden-sie-eine-rgb-led

Und da viele andere Fragen eher ein "Hier ist ein Problem, löst es für 
mich" sind, reagieren manche (ich wohl auch) etwas allergisch auf 
Anfängerfragen, die keine Eigenleistung beinhalten.

Ich habe ja die Hoffnung, dass du deine Frage gestellt hast, weil du 
etwas lernen möchtest und irgendwann selber weißt, wie du ein solches 
Problem löst und du nicht einfach nur eine Lösung haben möchtest.

Deshalb versuche ich in meinen Antworten eher Stichworte zur Recherche 
zu liefern als die Lösung vorzukauen.

: Bearbeitet durch User
von Michael B. (laberkopp)


Lesenswert?

Ralph E. schrieb:
> Versorgungsspannung liegt bei 3.3V.

Scheisse, Salamischeibe 22: Erst schreibst du 'Arduino', nun 3.3V: ja, 
es gibt auch Arduinos mit 3.3V, aber der übliche (Uno, Nano) arbeitet 
mit 5V.

Wie willst du mit 3.3V Versorgung, also vielleicht 3V Ausgangsspannung 
vom uC Pin, eine LED leuchten lassen, die je nach Laune 2.9 bis 3.6V für 
ihren Nennstrom benötigt ?

Da musst du die Spannung erst hochtransformieren, oder in deinem Fall 
der LED mit gemeinsamer Anode erst eine negative Spannung erzeugen.

Ja, das geht, ist aber deutlich mehr Aufwand.

Rote und grüne LED werden mit 2.1V auskommen, da teicht die LED über 
Vorwiderstand an 3.3V
1
uC-Ausgang --270R--|<|-- +3.3V
2
                   LED
aber die blaue LED wird damit nicht ordentlich leuchten. Man kann mot 
dem uC Ausgang eine negative Spannung erzeugen
1
uC-Ausgang --10uF--+--|<|-- +3.3V
2
                   |  LED
3
Masse --------|<|--+
4
            1N4148
aber der Strom hängt vom ESR des Subminiatur 10uF/16V Elkos von ein paar 
Ohm und dem Ausgangswiderstand des uC Pins von ca. 40 Ohm ab, du musst 
ausprobieten, bei welchem PWM Tastverhaltnis die 3 LED zusammen weiss 
ergeben (und ggf. die 270R der roten und grünen LED erhöhen zur 
Anpassung  vor allem wenn das so ein leistungsschwacher ESP oder RP2040 
als 'Arduino' ist).

Also klar erhöhter Schwierigkeitsgrad. Aber wer sich erst was 
zudammenkauft und dann nachdenkt, muss ja eine Konsequenz spüren.

Und ich weiss jetzt nicht, wer sich auf weitere 20 Salamischeiben freut.

von Steve van de Grens (roehrmond)


Lesenswert?

Die Variante am Pin D9 funktioniert auch auch an 3,3V Mikrocontrollern.

Von der 5V Versorgung fallen an der LED 2-3V ab. Die verbleibenden 2-3V 
tun dem Mikrocontroller nicht weh.

von Rainer W. (rawi)


Lesenswert?

Max M. schrieb:
> Was jetzt? schalten oder dimmen?

Schalten und dimmen (per PWM) ist das selbe. Beim Dimmen wird so schnell 
hintereinander ein und wieder aus geschaltet, dass du es nicht als 
Schalten wahrnimmst.

von Max M. (jens2001)


Lesenswert?

Rainer W. schrieb:
> Beim Dimmen wird so schnell
> hintereinander ein und wieder aus geschaltet, dass du es nicht als
> Schalten wahrnimmst.

Was ich schon immer über PWM wissen wollte, mich aber nie zu fragen 
getraut habe!

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Steve van de Grens schrieb:
> Die Variante am Pin D9 funktioniert auch auch an 3,3V Mikrocontrollern
... wenn die einzelne LED an +5V hängt und blau oder weiß ist (du hast 
es zwar gedacht, aber nicht explizit geschrieben).

Aber hier mit der Common-Anode-Multi-Color-LED geht das wieder nicht, 
weil sonst die rote LED auch bei high am µC schon leuchten könnte. Für 
diesen 5V-Trick müsste dann noch eine Diode in in Reihe zur roten LED 
geschaltet werden. Und evtl. ist das auch bei der grünen LED nötig:
1
 +5V ----------.
2
               |
3
         .-----o-----.
4
       R |   G |   B |
5
         V=>   V=>   V=>
6
         -     -     -
7
         |     |     |
8
         R     R     R
9
         |     |     |
10
    4148 V     V     |
11
         -     -     |      3V3
12
         |     |     |       |
13
     .---#-----#-----#-------#-----.
14
     |   D7    D8    D9     Vcc    |
15
     |         µC                  |
16
     |                      GND    |
17
     '-----------------------#-----'
18
                             |
19
                            ---

: Bearbeitet durch Moderator
von Manfred P. (pruckelfred)


Angehängte Dateien:

Lesenswert?

Sebastian R. schrieb:
> Aber manchmal fühlt es sich so an, als sei
> Eigenleistung und eigene Recherche irgendwie out.

So etwa war auch mein Kommentar gedacht.

> Aber auch bei deiner Frage  findet sich mit dem Suchbegriff "RGB LED
> Arduino" einiges, das bereits eine Lösung für dich beinhaltet.
>
> https://www.exp-tech.de/blog/arduino-tutorial-so-verwenden-sie-eine-rgb-led

Da bekomme ich direkt Kackreiz: Anstatt eines Schaltplans ein 
Fritzing-Bildchen und 220 Ohm vor den LEDs, 15mA für Rot.

Michael B. schrieb:
>> Versorgungsspannung liegt bei 3.3V.
>
> Scheisse, Salamischeibe 22: Erst schreibst du 'Arduino', nun 3.3V: ja,
> es gibt auch Arduinos mit 3.3V, aber der übliche (Uno, Nano) arbeitet
> mit 5V.

Ja!

> Wie willst du mit 3.3V Versorgung, also vielleicht 3V Ausgangsspannung
> vom uC Pin, eine LED leuchten lassen, die je nach Laune 2.9 bis 3.6V für
> ihren Nennstrom benötigt ?

Wenn man nur 1mA als Kontrollampe fährt, geht das noch gerade so, bei 
meinen blauen Chinesen habe ich 2,6V gemessen.

Ich habe hier einen 3V3-System mit LDO an einem LiIon-Akku laufen, die 
beiden blauen Kontrolleds per Transistor direkt am LiIon. Die Helligkeit 
ändert sich deutlich, aber bis 3,2V herunter komme ich damit noch klar.

> Rote und grüne LED werden mit 2.1V auskommen,
Ich habe Grüne, die fast auf dem Spannungsniveau der Blauen liegen.

Steve van de Grens schrieb:
> Die Variante am Pin D9 funktioniert auch auch an 3,3V Mikrocontrollern.
> Von der 5V Versorgung fallen an der LED 2-3V ab. Die verbleibenden 2-3V
> tun dem Mikrocontroller nicht weh.

Das klingt wirr. Wir wissen nicht, woher er seine Versorgung bezieht. 
Sollte es tatsächlich 5V geben, gehören die LEDs nicht direkt an den 
Ausgang eines 3,3V-µC und glimmen evtl. über dessen Schutzdioden. Siehe:

Lothar M. schrieb:
> weil sonst die rote LED auch bei high am µC schon leuchten könnte.

Wenn im System eine höhere Spannung existiert, kommt da als saubere 
Lösung ein Transistor dran, in meinem Plan an D10. Wenn das richtig 
knapp ist, anstatt des NPN besser ein LL-FET.

von Steve van de Grens (roehrmond)


Lesenswert?

Lothar M. schrieb:
>> Die Variante am Pin D9 funktioniert auch auch an 3,3V Mikrocontrollern
> ... wenn die einzelne LED an +5V hängt und blau oder weiß ist (du hast
> es zwar gedacht, aber nicht explizit geschrieben).

Geht mit allen Farben. Hauptsache, die LED hat mindestens 1,7 Volt 
Flussspannung, wovon man wohl ausgehen kann (ist ja nicht Infrarot).

Lothar M. schrieb:
> Aber hier mit der Common-Anode-Multi-Color-LED geht das wieder nicht,
> weil sonst die rote LED auch bei high am µC schon leuchten könnte.

Alle LED Fragen haben in diese RGB Konstellationen in der Regel über 2 
Volt. Aber wir sind ja im Land der Bedenkenträger, wo man selbst 
Klopapier mit 5 Durchschlägen und 4 Genehmigungsprozessen bestellen 
muss.

Leider fehlt die Angabe der Spannung im Datenblatt des konkreten 
Tasters. Nur Not hätte ich auch die zusätzliche Diode vorgeschlagen. Das 
kann der TO ja selbst austüfteln, man muss es nicht schon vorher (ohne 
Bedarf) unnötig kompliziert machen. Die passenden Widerstände (wegen der 
Helligkeit/Farbmischung) muss er ja auch eh selbst herausfinden.

: Bearbeitet durch User
von Ralph E. (marph)


Angehängte Dateien:

Lesenswert?

Als Dankeschön habe ich mal alles zum Schalter inkl. selbsterstellter 
Eagle-Bibliothek in Github verewigt. Falls jemand auch diesen Schalter 
mag oder hat.

github.com MarphXL LED-Switch_PB06-B-WT_Honyone

https://github.com/MarphXL/LED-Switch_PB06-B-WT_Honyone

: Bearbeitet durch User
von Ralf D. (doeblitz)


Lesenswert?

Ralph E. schrieb:
> Stromverbrauch kenne ich nicht und weiss leider auch nicht wie ich ihn
> messen soll.

Normalerweise sollte der Hersteller das im Datenblatt angeben. Ist bei 
diesem Produkt aber gut versteckt. "pb-06-b-wt-1 honyone rgb led specs" 
als Suchbegriff bei Google führte dann zu dieser Seite bei Aliexpress: 
https://de.aliexpress.com/i/33004443562.html?gatewayAdapt=glo2deu

Und da findet man dann endlich auch mal Angaben zu den LEDs:
LED Arbeits Spannung (@ 20mA)
Rot: 1,8-2,4 V
Grün: 2,7-3,7 V
Blau: 2,7-3,7 v
Weiß: 2,9-3,6 V

Und damit kann man dann endlich auch die passenden Vorwiderstände 
ausrechnen (und sieht, dass es bei 3,3 Volt Versorgung etwas schwierig 
wird ...), wobei ich da keine 20mA ansetzen würde, sondern eher 10mA.

von Ralph E. (marph)


Lesenswert?

Danke, hab's im Github gleich ergänzt

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.