Forum: Mikrocontroller und Digitale Elektronik Widerstand/ Spannung in RGB Schaltung Neopixel


von Max (Gast)


Angehängte Dateien:

Lesenswert?

Servus,

Ich habe zwei kurze Fragen zur Schaltung eines Neopixel LED Streifen mit 
Arduino UNO: Ich weiß es gibt unzählige Posts zu diesem Thema, aber die 
beantworten mir nicht Folgendes:

(1)
Diverse Anleitungen empfehlen eine Widerstand in die Datenleitung d.h. 
zwischen LED Streifen und digitalen Pin am Arduino zu schalten (um 
Fluktuationen oder sonstige Störungen zu vermeiden).
Ich frage mich aber warum die verschiedenen Anleitungen alle so 
verschiedene Werte für den Widerstand angeben (bei gleichem LED 
Streifen):

Wie kann ich den Widerstand denn konkret berechnen?? Es liegen konstant 
5V an, und eine LED muss pro Farbe mit rund 20mA bestromt werden, d.h. 
bei weißer Farbe ca. 60mA. Mein Streifen soll 40cm lang sein, d.h. trägt 
ca. 24LEDs, die also maximal 1,44A ziehen. Der Widerstand ist ja aber in 
der Datenleitung (siehe Bild (1)), wo sicherlich keine 1,44A fließen. 
Kann mich jemand aufhellen (im wahrsten Sinne des Wortes) was dieser 
Widerstand genau bewirkt und wie ich ihn berechne?

(2)
Komischerweise wird der Arduino in allen Schaltungen immer mit eigener 
Stromversorgung betrieben, der Neopixel Streifen ebenfalls (siehe Bild 
(1) und Bild (2)). Ich werde für den Streifen ein Meanwell 
Schaltnetzteil mit 5A besorgen, kann ich da nicht einfach auch den 
Arduino mitdranhängen um mir ein Netzteil zu sparen? Der Arduino darf ja 
mit 5V angeschlossen werden, spricht da was dagegen?

Schonmal vielen Dank,

Max

von Falk B. (falk)


Lesenswert?

Max schrieb:

> Diverse Anleitungen empfehlen eine Widerstand in die Datenleitung d.h.
> zwischen LED Streifen und digitalen Pin am Arduino zu schalten

Naja.

>(um
> Fluktuationen oder sonstige Störungen zu vermeiden).

Das ist eine LariFari Aussage! Der Widerstand ist in den meisten Fällen 
ein Angstwiderstand!

> Ich frage mich aber warum die verschiedenen Anleitungen alle so
> verschiedene Werte für den Widerstand angeben (bei gleichem LED
> Streifen):

Weil die meisten Arduinobastler keine Ahnung haben, was sie da tun!
Im Normalfall braucht man den Widerstand nicht!

> Wie kann ich den Widerstand denn konkret berechnen?? Es liegen konstant
> 5V an, und eine LED muss pro Farbe mit rund 20mA bestromt werden, d.h.
> bei weißer Farbe ca. 60mA. Mein Streifen soll 40cm lang sein, d.h. trägt
> ca. 24LEDs, die also maximal 1,44A ziehen. Der Widerstand ist ja aber in
> der Datenleitung (siehe Bild (1)), wo sicherlich keine 1,44A fließen.

Wenigstens DIESE Erkenntnis ist richtig.

> Kann mich jemand aufhellen (im wahrsten Sinne des Wortes) was dieser
> Widerstand genau bewirkt und wie ich ihn berechne?

Vergiß ihn.

> Komischerweise wird der Arduino in allen Schaltungen immer mit eigener
> Stromversorgung betrieben, der Neopixel Streifen ebenfalls (siehe Bild
> (1) und Bild (2)). Ich werde für den Streifen ein Meanwell
> Schaltnetzteil mit 5A besorgen, kann ich da nicht einfach auch den
> Arduino mitdranhängen um mir ein Netzteil zu sparen?

Kann man.

> Der Arduino darf ja
> mit 5V angeschlossen werden, spricht da was dagegen?

Nein.

von Max (Gast)


Lesenswert?

Danke für die Antwort, damit wäre die zweite Frage schonmal beantwortet!

Bezüglich Widerstand würde ich aber trotzdem gerne wissen, was der 
bewirken soll. Als Laie erkläre ich mir den Widerstand damit, dass 
dadurch der Strom begrenzt werden soll, den der Arduino am Pin ziehen 
kann, um den Arduino nicht zu überlasten. Das Maximum an einem solchen 
Pin liegt ja bei ca. 30-40 mA- um einen Widerstand sinnvoll einzubauen, 
müsste ich doch dann aber erstmal wissen, wie viel Strom an der 
Datenleitung genau fließt?

Oder bin ich völlig falsch?

Grüße,
Max

von Falk B. (falk)


Lesenswert?

Max schrieb:

> Bezüglich Widerstand würde ich aber trotzdem gerne wissen, was der
> bewirken soll.

Frag die Angsthasen und Halbwissenden.

> Als Laie erkläre ich mir den Widerstand damit, dass
> dadurch der Strom begrenzt werden soll, den der Arduino am Pin ziehen
> kann,

Der Arduino Pin zieht keinen Strom, das tut bestenfalls ein 
Lastwwiderstand.
Den gibt es aber nicht. Der Eingang der LEDs ist ein CMOS-Eingang wie 
bei anderen Logik-ICs auch, dort fließt praktisch 0mA rein.

> um den Arduino nicht zu überlasten. Das Maximum an einem solchen
> Pin liegt ja bei ca. 30-40 mA- um einen Widerstand sinnvoll einzubauen,
> müsste ich doch dann aber erstmal wissen, wie viel Strom an der
> Datenleitung genau fließt?

0mA.

Es gibt natürlich Leute, die vor Allem und Jedem möglichen Szenario 
Angst habe. Z.B. wenn man aus Versehen einen Kurzschluß am Datenpin 
macht. Dann kann der Widerstand den Strom begrenzen. Gleiches passiert, 
wenn man den Arduino anschließt und anschaltet, die Stromversorgung vom 
LED-Streifen aber nicht. Dann fließt realtiv viel Strom (ein paar 
Dutzend mA) in den Dateneingang und im LED-IC über die Schutzdioden auf 
die Versorgungsspannung, das ist ähnlich einem Kurzschluß.

Aber der AVR ist erstaunlich robust und hält einen Kurzschluß an einem 
Ausgang ziemlich lange aus, auch wenn man das nicht unbedingt 
provozieren sollte.

Der einzige Grund für einen externen Widerstand nah am AVR wäre ein 
langes Kabel zwischen AVR und LED-Streifen. Dann kommt man nämlich in 
den Bereich,  wo das Thema Wellenwiderstand und Terminierung 
greifen. Der Widerstand wirkt dann als Serienterminierung. Hier sind ca. 
33-100 Ohm sinnvoll, je nach Wellenwiderstand der Leitung. "Langes 
Kabel" heißt hier länger als ca. 30-50cm. Der Rest steht im Artikel.

von Max (Gast)


Lesenswert?

Top, das ist mal eine ausführliche Antwort, vielen Dank!

Grüße,
Max

von c-hater (Gast)


Lesenswert?

Falk B. schrieb:

> Der Arduino Pin zieht keinen Strom, das tut bestenfalls ein
> Lastwwiderstand.

Genau.

> Den gibt es aber nicht.

Bullshit, den gibt es. Nämlich genau in der Situation, wenn der Arduino 
mit Strom versorgt wird, der Stripe aber nicht. Was bei getrennten 
Versorgungen ja leicht mal vorkommen kann.

> 0mA.

Unsinn. Natürlich muss da auch Strom fliessen. Sogar schon im normalen 
Betrieb. Nämlich bei jeder Flanke des Steuersignals. Irgendwie müssen ja 
die parasitären Kapazitäten umgeladen werden. Das kann nur passieren, 
wenn Strom fließt.

Das ist aber nicht das Problem. Das ist: wenn Arduino versorgt, aber 
Stripe nicht. Dann wird offensichtlich der Stripe über den DIN-Pin der 
ersten LED der Kette vom Arduino-Steuerausgang versorgt. Was keinem von 
beiden wirklich gut tut. Was allerdings meist kaputt geht, ist diese 
erste LED der Kette, nicht der Arduino. Und genau um die zu schützen, 
benutzen intelligente und erfahrene Leute eben diesen Angstwiderstand.

> Aber der AVR ist erstaunlich robust und hält einen Kurzschluß an einem
> Ausgang ziemlich lange aus

Das ist richtig. Allerdings ist erstens nicht jeder Arduino ein AVR und 
zweitens: Die WS28xx kommen mit dieser Situation ganz offensichtlich 
weitaus weniger gut klar...

Sehr wahrscheinlich ist DIN einfach nicht so gebondet bzw. die internen 
Leiter sind nicht so beschaffen, dass >40 mA da sehr lange Zeit drüber 
fließen können...

von Stefan F. (Gast)


Lesenswert?

Ich habe noch zwei Tipps für dich: betreibe den LED Streifen nicht in 
dieser aufgerollten Form, weil er dann ratz-fatz überhitzen kann.

Und nutze nicht das Steckbrett, um die Stromversorgung zu verteilen. An 
den Kontakten und dünnen Käbelchen (die oft sogar aus Eisen sind) hast 
du relativ hohe Übergangswiderstände, die Fehlfunktionen auslösen.

Besser sind gelötete Verbindungen, oder Schraubklemmen.

von Michael U. (amiga)


Lesenswert?

Hallo,

c-hater schrieb:
> Sehr wahrscheinlich ist DIN einfach nicht so gebondet bzw. die internen
> Leiter sind nicht so beschaffen, dass >40 mA da sehr lange Zeit drüber
> fließen können...

je nach Version der WS2812 sind an Din Schutzdioden gegen +5V unbd GND 
der LED. Die haben wenig Verständnis dafür, den Stripe vom Arduino über 
Din zu versorgen. Der Widerstand ist als mehr als sinnvoll, gerade weil 
Stripe und Arduino oft nicht vom gleichen Netzteil versorgt werden.
330 Ohm sind sinnvoll und üblich.

Gruß aus Berlin
Michael

von Max (Gast)


Lesenswert?

Alles klar,
Dann weiß ich Bescheid. Ich werden den Widerstand verbauen, kann nicht 
schaden. In die Situation, dass der Stripe über den Arduino versorgt 
wird mangels eigener Stromversorgung, werde ich aber sowieso nicht 
kommen, da ich Stripe und Arduino an das gleiche Netzteil anschließe. 
Danke auch für den Tipp zum Übergangswiderstand, werde Klemmen benutzen.

Grüße,
Max

von Max (Gast)


Lesenswert?

Und das von euch geschilderte Hauptproblem verstehe ich Folgendermaßen:
Wenn ich den Arduino mit 5V versorge, den stripe aber nicht, versucht 
der stripe seine (in meinem Fall) 1,44A aus dem Pin am Arduino zu 
ziehen. Dieser überhitzt dann natürlich. Dem Streifen tut das nicht gut, 
weil er über Din statt über V+ bestromt wird. Die DIN Leiter sind dabei 
nicht für einen Strom >40mA beschaffen.

von Falk B. (falk)


Lesenswert?

Max schrieb:
> Und das von euch geschilderte Hauptproblem verstehe ich Folgendermaßen:
> Wenn ich den Arduino mit 5V versorge, den stripe aber nicht, versucht
> der stripe seine (in meinem Fall) 1,44A aus dem Pin am Arduino zu
> ziehen.

Jain. Die Schutzdiode am Dateneingang der 1. LED leitet den Strom nach 
VCC. Und weil dort keine Spannung von 5V anliegt, fließt dort viel Strom 
rein.

Siehe D1.

https://www.mikrocontroller.net/articles/Pegelwandler#Schutzdioden

> Dieser überhitzt dann natürlich.

Nicht unbedingt.

> Dem Streifen tut das nicht gut,
> weil er über Din statt über V+ bestromt wird.

Ja.

> Die DIN Leiter sind dabei
> nicht für einen Strom >40mA beschaffen.

Stimmt so nicht. Der Leiter auf dem Folienband hält auch 1A, ggf. mehr 
aus. Die Schutzdiode in der LED von DIN nach VCC aber nicht, denn die 
ist nur zum Schutz gegen sehr kurze ESD-Pulse in Nanosekundenbereich 
gebaut. Dauerhaft hält die vielleicht 10-50mA aus, dann raucht sie ab. 
Wenn sie mit Kurzschluß endet, ist der DIN Eingang der 1-LED defekt und 
somit der ganze Streifen tot 8-0. Nur wenn sie hochohmig wird, 
funktioniert die LED noch. Das ist aber mehr oder weniger Zufall.

von Stefan F. (Gast)


Lesenswert?

Max schrieb:
> Und das von euch geschilderte Hauptproblem verstehe ich Folgendermaßen:
> Wenn ich den Arduino mit 5V versorge, den stripe aber nicht, versucht
> der stripe seine (in meinem Fall) 1,44A aus dem Pin am Arduino zu
> ziehen. Dieser überhitzt dann natürlich. Dem Streifen tut das nicht gut,
> weil er über Din statt über V+ bestromt wird. Die DIN Leiter sind dabei
> nicht für einen Strom >40mA beschaffen.

Mehr als 40mA wird der AVR ohnehin nicht liefern. Der Strom fließt in 
diesem Fall durch die inneren ESD Schutzdioden der LED. Wie viel die 
verträgt, steht entweder im Datenblatt oder man muss von weniger als 1mA 
ausgehen.

Jedenfalls beschützt der Widerstand den Eingang der ersten LED des 
Streifens für den Fall, dass der AVR schon Strom hat, der LED Streifen 
aber nicht.

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.