Forum: Mikrocontroller und Digitale Elektronik WS2812B Problem vermutlich Layout. Streifen funktioniert


von Michael (Gast)


Lesenswert?

Hallo,

ich habe es mit meinem Arduino Uno geschafft einen LED Streifen 
anzusteuern (144LEDs/Meter) wie ich es gerne hätte.

Nun habe ich mir eine Platine machen lassen wo die WS2812 jeweils ca. 
2cm auseinander sind (also weiter auseinander als beim Streifen).

Das Problem  ist, das von den 15 LEDs auf meinem Board nur die ersten 5 
Leuchten und das nicht mal in der richtigen Farbe. Ichhabe an jeder LED 
so nah wie möglich wie im Datenbaltt angegeben einen 0805 100nF 
Kondensator angelötet.

Ich weis einfach nicht woran das liegt. Ich habe alles durchgemessen und 
kann keinen Fehler feststellen.

Auf der Unterseite der Platine ist die Ground Fläche, vielleicht spielt 
das eine Rolle?

Was könnte es denn da für Probleme geben?

von c-hater (Gast)


Lesenswert?

Michael schrieb:

> Auf der Unterseite der Platine ist die Ground Fläche, vielleicht spielt
> das eine Rolle?

Durchaus möglich.

> Was könnte es denn da für Probleme geben?

Jeder Leiterzug (nur wenige Zehntelmillimeter über einer GND-Fläche) ist 
ein Kondensator gegen GND-Potential, jeder Leiterzug für sich ist eine 
Induktivität. Zusammen bildet das schicke LC-Kombinationen. Und sowas 
ist ziemlich übel. Das kann nämlich leider so ziemlich alles mit dem 
Nutzsignal anstellen, meistens Sachen, die man weder möchte und noch 
braucht...

Ein sehr typisches Problem dürfte die Wirkung als Tiefpaß sein. Aber 
auch ein parasitärer Schwingkreis ist immer mal wieder nett...

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Michael schrieb:
> Das Problem  ist, das von den 15 LEDs auf meinem Board nur die ersten 5
> Leuchten und das nicht mal in der richtigen Farbe. Ichhabe an jeder LED

 Timing.
 Quartz richtig ?

> Auf der Unterseite der Platine ist die Ground Fläche, vielleicht spielt
> das eine Rolle?
 Möglich, aber sehr, sehr unwahrscheinlich.

: Bearbeitet durch User
von Michi (Gast)


Lesenswert?

Also, das mit der Ground Fläche auf der Unterseite glaube ich ist es 
nicht.

ich habe mal 15 dieser LEDs miteiander verbunden.

http://i00.i.aliimg.com/wsphoto/v0/1819419472_1/100PCS-5V-WS2812B-font-b-LED-b-font-NeoPixel-PCB-With-4PIN-FEET-WS2812B-RGB-font.jpg

Da habe ich genau das Gleiche Problem.
Die Kabel zwischen den LEDs sind ca. 6cm jeweils lang.

Da Leuchten immerhin alle LEDs, aber da scheint was mit dem Timing nicht 
zu stimmen. Die Leds Blinken eher ganz wild und nicht wie gewünscht.

von Daniel H. (Firma: keine) (commander)


Lesenswert?

Hallo,

kannst du mal Layout und Schaltplan posten? Ich hatte mal ein ähnliches 
Problem, bei mir war es eine Kombination aus grenzwertigem Signalpegel 
an DI (WS2812B an 5V, Ansteuerung mit 3,3V µC) und schlechter 
Leitungsführung (= Verdrahtung auf Steckbrett).

von Michi (Gast)


Lesenswert?

Das Layout kann ich gegen Abend mal hochladen.

von Michi (Gast)


Angehängte Dateien:

Lesenswert?

Ok,

konnte das Layout doch früher organisieren.
Das ist mein testboard. Später sind die LEDs ein wenig weiter 
auseinander.
Es hat 2 verschiedene LEDs. Aussen standart LEDs und und richtung Mitte 
sind die WS2812B

Die SOIC-8 sind LM7805 um die WS2812B mit 5V zu versorgen. Ich habe es 
schon mit einer direkten 5V Quelle versucht, das hat keinen Unterschied 
gemacht.

Die Data Leitung ist der Pin von meinem uc der die WS2812B steuern soll.

Interessant zu wissen ist vielleicht noch, das wenn ich 12V an die 12V 
Leitung anlege, die LEDs ganz ganz kurz aufblitzen (sogar mehr als die 5 
die später leuchten). Das passiert aber nur im ersten Moment wo ich es 
anlege.

von Tobi (Gast)


Lesenswert?

Ich habe schon über 200 der ws2812 (ohne b) verbaut. Bei mir kam es 
mehrmals vor, dass ab einer led die nächsten nicht mehr wollten. Der 
Fehler war immer eine nicht richtig gelötete Lötstelle (ich habe zu 
schnell gearbeitet). Das flakern kann durch die nicht richtig 
angeschlossenen Signalleitungen kommen die als Antenne wirkt

von 4toTakoe (Gast)


Lesenswert?

Michi schrieb:
> Die Data Leitung ist der Pin von meinem uc der die WS2812B steuern soll.

Und wie lang ist diese Leitung? Ich hab mir eine 32x20 Matrix mit den 
LEDs aufgebaut und dabei ist mir aufgefallen, dass die Leitungslänge der 
Data-Leitung vor der ersten LED entscheidend für die Signalqualität ist!

von Michi (Gast)


Angehängte Dateien:

Lesenswert?

Ich habe eigentlich alle Verbindungen mit dem Multimeter überprüft, aber 
ich werde es nochmals machen.
Ich habe das ganze schon auf 2 Platinen aufgebaut und auf beiden genau 
der gleiche effect. Das ware ja schon ein Zufall wenn ich beide Male 
beim

Die Zuleitung des Steuersignals ist 10cm Lang.

Der Fehler passiert genau zwischen LED 5 und 6
also LED1 bis LED5 leuchten und ab LED6 ist nichts mehr

von 4toTakoe (Gast)


Lesenswert?

Vielleicht hast du die LED auch tot-gelötet. Die Bond-Drähte lösen sich 
bei Handbestückung und zu langem Lötvorgang schon mal ab...

Hatte bei meinem Aufbau auch 2 oder gar 3 LEDs gekillt.

Dass die Farben nicht stimmen ist allerdings seltsam...insofern die 
Software korrekt ist.

von Michi (Gast)


Lesenswert?

4toTakoe schrieb:
> Vielleicht hast du die LED auch tot-gelötet. Die Bond-Drähte lösen sich
> bei Handbestückung und zu langem Lötvorgang schon mal ab...

Also dann werde ich den Lötkolben noch weiter runter fahren.

Seltsam ist, das es bei 2 Platinen beides mal an der gleichen Stelle 
passiert.

Ich versuche heut abend mal ein Video zu machen

von 123 (Gast)


Lesenswert?

Hast du mal alle Signale angeschaut mit dem Oszi (auch 
Versorgungsspannung) und die Signale gegen das Datenblatt abgeglichen?

Leider sind die WS2812B schwer zu verarbeiten. In der Tat lösen sich die 
Bonddrähte gerne beim Löten, aber auch im Betrieb wenn die thermische 
Anbindung an großflächiges Kupfer nicht gut ist. Herausfinden kann man 
das einfach indem man fest auf die LED drückt (auf den durchsichtigen 
Teil). Als Vorstufe von "leitet garnicht mehr weiter / funktioniert 
garnicht" gibt es wirre meist lila-bis-rosa Farben. Man muss natürlich 
den Fehler einer toten LED meist bei der LED vorher suchen. Also nicht 
durcheinander kommen. Auf alle mit dem Daumen mal feste drauf drücken.

von Sven (Gast)


Lesenswert?

Löte doch einmal über deiner 1. LED einen Kondensator über die Beine 
drüber, also direkt dort dran, mir kommen die Traces am Kondensator lang 
und zudem sehr dünn vor. Ich würde eher das Signal auf der anderen Seite 
verlegen, da dies keine Leistung führen muss.
Die Stichleitung am Kondensator (3) ist sicher auch nicht der Hit.

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Michi schrieb:
> Seltsam ist, das es bei 2 Platinen beides mal an der gleichen Stelle
> passiert.

 Ja.
 Da würde ich an deiner Stelle mal die LED Nr.5 auslöten und DI und DO
 überbrücken, um zu sehen, was dann passiert.

 Wenn danach die LED Nr.6 leuchtet, ist es Software.
 Wenn nicht, hast du ein Hardware Problem.

 OK ?

von Michi (Gast)


Lesenswert?

Also,

nachdem ich alles getestet habe was ihr geschrieben habt, keine neuen 
Erkenntnisse.
Trotzdem recht herrz^lichen Dank dafür, habe wieder ein paar Sachen 
dazugelernt, wie man Sachen testen kann.

Aber es funktioniert jetzt.

Das Problem war folgendes.
Auf der Platine hat es 6 LM7805 (SOIC8) die die 15LEDs mit 5V versorgen. 
(immer 3 bzw 2 an einem)
Der Microcontroller hat einen eigenen LM7805 (SOIC8).

Schliesse ich nun LEDs und Microcontroller an einen LM7805 TO-220 an, 
dann klappt alles problemlos.

Der LED Streifen hing natürlich immer an der Versorgung des uc.
Diese Info hätte ich euch vlt nicht vorenthalten sollen, aber ich dachte 
einfach nicht das es wichtig ist.

Zumal ich die Spannung gemessen haben und die Spannung bei den LEDs lage 
bei 4,98V und die des uC be 5,02V.

Jetzt muss ich wohl einen grossen TO220 oder D2PAK nutzen und dann 
einfach 5V statt 12V zur Platine mit den LEDs legen.

Aber recht herrzlichen Dank nochmal an alle hier :-)

von Möppel (Gast)


Lesenswert?

Hattest du denn die Massen nicht miteinander verbunden?

von Michi (Gast)


Lesenswert?

Das ist jetzt echt peinlich :-(

Einer der dümmsten fehler der mir je passiert ist.

von Michael (Gast)


Lesenswert?

Leider ein wenig zu früh gefreut.

jetzt ist das Problem zwischen LED8 und LED9

da stoppt es einfach.
Lege ich das Signal an LED9 an den D_IN Pin an, dann gehen LED9 bis 
LED15 wie gewünscht an.
Lege ich das Signal an LED1 an gehen nur LED1 bis LED8 an.

Ich habe die Verbindung zwischen LED8 D_Out und LED9 D_In gemessen. Hat 
klar eine Verbindung.

An einem anderen LED Strang mit 15 LEDs und jeweils 6cm Kabel zwischen 
den einzelnen LEDs, klappt es ohne Probleme.
Habe auch schon LED8 und LED9 ausgetauscht.
Leider ohne Erfolg.

Wie kann denn sowas sein?
Sollte es ein Timing Problem sein. Wieso klappt es denn dann auf dem 
Streifen und nicht auf meinem Board?

von Michael (Gast)


Lesenswert?

Noch eine Info.

Messe ich die Spannung auf der mV Einstellung meines günstigen 
Multimeters (nicht wirklich dafür geeignet) dann bekomme ich folgende 
Werte für die Spannung.

zwischen D_Out von LED1 und GND: ca 10mV
zwischen D_Out von LED2 und GND: ca 10mV
zwischen D_Out von LED3 und GND: ca 10mV
zwischen D_Out von LED4 und GND: ca 10mV
zwischen D_Out von LED5 und GND: ca 10mV
zwischen D_Out von LED6 und GND: ca 10mV
zwischen D_Out von LED7 und GND: ca 10mV
zwischen D_Out von LED8 und GND: ca 100mV

bei LED8 sind es auf einmal 100mV.

Das ist ja schon auffälig, aber ich kann nichts feststellen.

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Michael schrieb:
> Ich habe die Verbindung zwischen LED8 D_Out und LED9 D_In gemessen. Hat
> klar eine Verbindung.

> Habe auch schon LED8 und LED9 ausgetauscht.
> Leider ohne Erfolg.

> Messe ich die Spannung auf der mV Einstellung meines günstigen
> Multimeters (nicht wirklich dafür geeignet) dann bekomme ich folgende
> Werte für die Spannung.

 Ich habe es dir schon mal gesagt, aber du magst es offenbar
 kompliziert...

 LED8 auslöten, DI und DO überbrücken, sehen was passiert.

von Michi (Gast)


Lesenswert?

das habe ich gemacht gehabt, habe nur vergessen es zu schreiben.
dann sind nur 7 LEDs an.
also müsste es ein Hardware Problem sein wenn ich deinen Post richtig 
verstehe.

Auf was muss ich da achten?

habe eigentlich alle Verbindungen überprüft. Auch kurzschlüsse gegen GND 
habe ich getestet.

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Michi schrieb:
> also müsste es ein Hardware Problem sein wenn ich deinen Post richtig
> verstehe.
>
> Auf was muss ich da achten?

 LEDx leuchtet, LEDx+1 leuchtet nicht.
 LEDx ausgelötet, DI und DO überbrückt.
   a) LEDx+1 leuchtet: Software (oder LEDx).
   b) LEDx+1 leuchtet nicht: Hardware (oder LEDx+1).

 Wenn die Verbindung zwischen LEDx_DO und LEDx+1_DI OK ist (und laut
 deiner Aussage ist), bleibt nur noch die schlechte Masseverbindung
 zwischen LEDx (Gruppe 1) und LEDx+1 (Gruppe 2) als Ursache.
 Also, GND von allen 3 oder 4 Gruppen verbinden, Vcc zur Sicherheit
 nochmal überprüfen, probieren.

: Bearbeitet durch User
von Michi (Gast)


Lesenswert?

Danke Danke Danke für diese genaue Anleitung.

Und jetzt Weiss ich es effektiv.

Es ist ein Problem beim löten gewesen.

Ich habe jetzt mal den Lötkolben ganz runter gedreht und dann hat es 
perfekt geklappt.

Also die WS2812B sind ja echt sehr Temperaturempfindlich,

aber jetzt klappt es :-)

Danke nochmals

von Stefan (Gast)


Lesenswert?

Das Problem ist nicht WS2812-spezifisch, sondern betrifft sehr viele 
moderne Leds. Interessant ist bei Dir, daß anscheinend nicht nur die Led 
selber betroffen ist, sondern auch der integrierte Controller. Ansonsten 
würde das DOUT-Signal ja weitergegeben werden und andere Leds nach dem 
fail wären nicht betroffen.

Viele Grüße, Stefan

von Daniel H. (Firma: keine) (commander)


Lesenswert?

Michi schrieb:
> Ich habe jetzt mal den Lötkolben ganz runter gedreht und dann hat es
> perfekt geklappt.

Hallo,

bei welcher Temperatur hast du denn vorher, und bei welcher jetzt 
gelötet? Ich habe bald eine Lötorgie mit 120 WS2812B vor mir, da wäre 
das ganz gut zu wissen wenn ich hinterher nicht jede x-te wieder 
tauschen will.

Viele Grüße
Daniel

von Michi (Gast)


Lesenswert?

also 270°C bis 280°C hat perfekt geklappt.

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Michi schrieb:
> Also dann werde ich den Lötkolben noch weiter runter fahren.

Michi schrieb:
> Ich habe jetzt mal den Lötkolben ganz runter gedreht und dann hat es
> perfekt geklappt.

 Mannomann, mit wieviel hast du den angefangen ? ;-)

von Marcus W. (marcusaw)


Angehängte Dateien:

Lesenswert?

Marc Vesely schrieb:
> Michi schrieb:
>> Also dann werde ich den Lötkolben noch weiter runter fahren.
>
> Michi schrieb:
>> Ich habe jetzt mal den Lötkolben ganz runter gedreht und dann hat es
>> perfekt geklappt.
>
>  Mannomann, mit wieviel hast du den angefangen ? ;-)

ganz normal bei 475 - 650 Grad, so genau gehts ja bei dem Lötkolben im 
Anhang auch nicht :D

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.