Erfahrungsbericht sehr komisch reagierende WS2812

Hallo
Heute mal was mit heute passiert ist.
Ich zeige heute jemanden wie man WS2812 mit einem Orginal Arduino UNO R3 ansteuert.

Auf einem MAC die neuste Arduino IDE frisch installiert und Adafruit Neopixel Bibliothek über Bibliothekmanager dazu-installiert und das "simple.ino " Beispiel der Bibliothek verwendet.

Sketch: Adafruit_NeoPixel/simple.ino at master · adafruit/Adafruit_NeoPixel · GitHub
Schnell mal einen 90 Led langen Streifen mit GND (Digital-Pin Seite) , 5V und Pin 6 verbunden und damit die USB nicht schlapp macht die Anzahl der NEOPIXEL im Sketch auf 8 reduziert.

Mit verschiedenen Farbeinstellungen probiert.
Statt daß die ersten 8 LED nacheinander aufleuchten, leuchten die LED 2 bis 9 (LED 1 ist aus) bei Ansteuerung der roten LED, grün blinkt und blau glimmt gerade noch daß man sie erahnt.

Rot geht, grün fast und blau gar nicht.

Also Multimeter genommen und die 5V am LED-Streifen kontrollliert Da sind 2,2V DC mit einem guten Meßgerät (Flunke 187). 5V am Arduino nicht kontrolliert. Upload funktioniert aber einwandfrei.

Um den MAC auszuschließen eine Powerpack geholt. Symptome gleich auch Spannung bleibt bei 2,2V.

Also nochmal die Symptome:

  • LED 2-9 leuchten statt 1-8
  • rot geht normal
  • grün blinkt
  • blau glimmt kaum wahrnehmbar
  • die 5V am LED-Streifen waren 2,2V

Wollt Ihr raten oder gebe ich die Lösung?
Mache wir so daß ich Morgen abend die Lösung gebe. Wer raten will kann es tun die anderen müssen warten.
Grüeß Uwe

1 Like

Zumindest die 82 weiteren Controller in den WS2812 ziehen Strom, auch wenn sie keine der LEDs durchsteuern. Und der Anlaufstrom ist auch nochmal höher, bis die 90 Stützkondensatoren geladen sind (allerdings sind das ja nur 90uF).

Ein Ratespiel - wie schön :slight_smile:
Laut diesem Datenblatt (pdf) sollen die WS2812 (ohne B!) ja 800kHz können, aber das Minimum liegt bei 400.
Ich tippe also auf Zeile 20 im Sketch und würde statt 800 mal 400kHz ausprobieren:

Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ400);

Gruß Walter

Es war nur 1 Fehler und die 2 bisher genannten waren es nicht.
Grüße Uwe

Vermutung: für den Arduino war der Code genauso unsichtbar wie für uns?

Also 2-9 leiden schon an Unterversorgung, rot braucht am wenigsten und läuft noch, grün hat wohl zyklische Spannungszusammenbrüche und blau bekommt nie genügend.
Schuss ins Blaue: Die erste WS2812 ist falsch verdrahtet?

Da es nur ein Fehler ist, und die LED 2-9 leuchten obwohl 1-8 laut Code angesprochen werden, lässt sich ein Code Problem doch ausschließen, da es auch noch Probleme mit der Spannung gibt. Da die erste LED die Daten einfach weiter gibt, als wäre sie nicht existent, vermute ich Kontakt zwischen DIN und DOUT. Also vermute ich auch einen Hardwarefehler an der ersten LED, so das dort noch zusätzlich die Spannung zusammenbricht.

Auch wenn ich falsch liege, bin ich schon gespannt auf die Lösung.

GND und PIN6 vertauscht?

Habe versucht alles so gut wie möglich nachzubauen (natürlich ist das nicht ganz gelungen):

Extra meinen original UNO R3 verwendet und genau wie beschrieben verkabelt.
Hab zurzeit nur noch einen Rest Streifen WS2812, mit etwa 70 "Pixeln" (nicht 90).
Mein einziger Mac (es gibt sonst mehrfach Linux und Windows) ist auch schon in die Jahre gekommen und somit etwas von "aktueller Hardware" entfernt. :slight_smile:
Arduino IDE: 1.8.6

Mit oben beschriebenem Aufbau und dem verlinkten Sketch funktioniert es wie erwartet - also ohne Probleme (im Bild: Blau: 150).
Spannungsmessung von VCC - GND am Streifen zeigt 4,8 ... 4,9 Volt.

Bin schon sehr neugierig auf die Auflösung :slight_smile:

Edit: Bei Uwes Aufbau vermute ich einen Hardwaredefekt, mein Tipp: Pixel 1 defekt.
Das kann ich aber nur schwer "nachbauen" bzw. möchte ich dafür nicht den ersten Pixel meines Streifens "zerschießen". :slight_smile: :slight_smile:

1 Like

Hab den Link auf Github geschrieben.

Hab ich auch zuerst geglaubt. Darum Spannungsmessung und Powerpack. Die WS2812 sind ein Streifen wo ich am ersten 3 Stiftleisten angelötet habe. Hatte den Streifen in anderer Gelegenheit schon am Arduino (NANO) Nachbau und da funktionierte der erste gut.

Warm

Danke uxomm für den Nachbau.

Der Fehler war, daß der GND des WS2812 Streifens versehentlich in D13 gesteckt wurde. Habs nicht selbst gemacht aber zugeschaut; also nichts rauszureden.
Richtig angesteckt und alles funktionierte wie erwartet. Sogar der erste WS2812 hat überlebt.

Der Fehler war so irrational, unerwartet und komisch daß ich ihn Euch zeigen wollte.

Grüße Uwe

2 Likes

Ich hatte auf das Pinout geschaut und hab erst überlegt ob da nicht GND sondern VIN dran hing... Das auf der anderen Seite der GND aufgetackert (und an dessen Stelle 13 angesteckt) wurde ist natürlich tricky...

Danke für die Auflösung!
Schöner Fehler :slight_smile:

Ja, warum sollte er nicht?

Weil ich keinen Widerstand auf der Datenleitung hatte und ein Teil das Stromes von +5V über Din und Pin D6 auf Masse gelaufen ist. Ok D6 hat da den Strom auf ca 80mA begrenzt.

Grüße Uwe

1 Like

Ahh - stimmt.
Na denne.
Schönes foul :wink:

:sweat_smile: :rofl: :joy:

...und mit der üblichen Frage nach einem Foto des Aufbaus hätten wir das ohne Uwes Auflösung gefunden?

Muss zugeben: Ich vermutlich nicht.

Danke Uwe, wieder was gelernt!

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.