scratch85:
Ich glaube ich habe das "Problem" gefunden, wobei sich mir der Zusammenhang nicht erschließt!
In der Arduino IDE war der Teensy auf 24Mhz eingestellt.
Mit dem RGBW-Juwel von Adafruit kann ich das Problem nicht reproduzieren, ich habe alle Frequenzen mit USB durchprobiert. Normal verwende ich "96 MHz optimized (overclock)".
Den möglichen Zusammenhang hat mir freundlicherweise der Entwickler von FastLED erklärt, als ich mit einem I2C-Levelshifter versuchte, WS2812 Lichtpunkte anzusteuern. Der zeitliche Ablauf für das Kommunikationsprotokoll wird je nach Takt unterschiedlich erzeugt. Daher unterscheidet sich das Ergebnis ein wenig, was normalerweise nicht auffällt. Kommt nun aber ein weiterer Fehler hinzu (bei mir verschliffenes Signal, bei Dir zu geringer Spannungspegel), kann es bei einer Frequenz gerade noch so funktionieren, bei einer anderen nicht. Mit einem Oszilloskop kann man sich solche Dinge schön ansehen.
Mit einem Levelshifter sollten auch 24 MHz möglich sein.
scratch85:
220 bis 1000 Ohm, von was ist es abhängig, was man am besten nimmt? Vielleicht Kabellänge (Distanz vom Arduino/Teensy zum Stripe?), usw...?
Lady Ada schreibt im Adafruit NeoPixel Überguide "Adding a ~470 ohm resistor between your microcontroller's data pin and the data input on the NeoPixels can help prevent spikes on the data line that can damage your first pixel." und "Place a 300 to 500 Ohm resistor between the Arduino data output pin and the input to the first NeoPixel. The resistor should be at the end of the wire closest to the NeoPixel(s), not the microcontroller."
Hier im Forum wurde der Widerstand als Schutz der Dioden im Lichtpunkt beschrieben. An DIN darf nur eine Spannung von VCC+0,6V liegen. Wird das Netzteil der LEDs ausgeschaltet, geht VCC auf 0V, vom Arduino, der von USB versorgt wird, kommt aber ein 5V-Signal an DIN, dann brennt da eine Diode (?) durch. Der Widerstand soll das verhindern.
Vertrauen wir Lady Ada, die weiß normalerweise, was sie schreibt.