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.
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
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
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:
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.
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.
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.
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".
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.
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...
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.