Hallo, kurz zum SETUP: ich habe einen ESP8266 (genau: https://www.amazon.de/dp/B01N9RXGHY) auf diesen läuft ein Programm, bei welchen 20 LEDs (WS2812B) im Sekundentakt nach und nach das Komplette Farbspektrum durchfaden (also über Rot nach Grün nach Blau zu Rot also dauert ein Durchgang ca. 764 Sekunden). Das Programm funktioniert einwandfrei und tut genau was es soll! Allerdings ist es jetzt so, dass wenn ich das ganze über USB anstecke, funktioniert das... wenn ich das ganze über ein Netzteil 1A/5V direkt am PINOUT anschließe übernimmt er IMMER WIEDER (ca. jedes 5. mal) komplett falsche Farben (in den anderen 4 Sekunden tut er was er soll). => Das Programm ist bereits minimalisiert... zuerst dachte ich, die Leistung reicht nicht aus (was aber wenig Sinn macht, weil die gesetzten Farben teils sogar heller / kräftiger sind), aber auch ein Dickeres Netzteil hilft nicht. Auch ein Kondensator 120µF am 5V Eingang brachte hier keine Besserungen. Die 5V scheinen Stabil zu sein... => Selbst wenn ich im Sekundentakt immer die Farbe 255,0,0 oder 255,255,255 setze, kommen immer wieder Falschfarben (bunt gemischt über alle LEDs) und wenn ich nur eine einzige LED ansteuer, werden die anderen einfach gesetzt... <- das heißt, dass ja irgendwie "Störungen" auf meine Datenleitung kommen muss!? Hat jemand einen Tipp wie ich hier "Fehlersuchen" kann, wo ich ansetzen kann oder welche Informationen ich euch geben muss dass ihr mir nen Tipp geben könnt? Vielen Dank
wie gesagt, am code liegts nicht... hier der original DEMO-CODE von Adafruid (welcher die selben Probleme macht)
1 | #include <Adafruit_NeoPixel.h> |
2 | |
3 | |
4 | // Which pin on the Arduino is connected to the NeoPixels?
|
5 | // On a Trinket or Gemma we suggest changing this to 1
|
6 | |
7 | // How many NeoPixels are attached to the Arduino?
|
8 | #define NUMPIXELS 20
|
9 | |
10 | // When we setup the NeoPixel library, we tell it how many pixels, and which pin to use to send signals.
|
11 | // Note that for older NeoPixel strips you might need to change the third parameter--see the strandtest
|
12 | // example for more information on possible values.
|
13 | Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, D3, NEO_GRB + NEO_KHZ800); |
14 | |
15 | int delayval = 500; // delay for half a second |
16 | |
17 | void setup() { |
18 | |
19 | pixels.begin(); // This initializes the NeoPixel library. |
20 | }
|
21 | |
22 | void loop() { |
23 | |
24 | // For a set of NeoPixels the first NeoPixel is 0, second is 1, all the way up to the count of pixels minus one.
|
25 | |
26 | for(int i=0;i<NUMPIXELS;i++){ |
27 | |
28 | // pixels.Color takes RGB values, from 0,0,0 up to 255,255,255
|
29 | pixels.setPixelColor(i, pixels.Color(0,150,0)); // Moderately bright green color. |
30 | |
31 | pixels.show(); // This sends the updated pixel color to the hardware. |
32 | |
33 | }
|
34 | |
35 | delay(1000); |
36 | |
37 | }
|
habe nun testhalber auch mal das ESP ausgetauscht gegen ein Nagelneues... <- selbe Probleme... USB-TOP, 5V Anschluss macht Probleme.
Der Elko allein kanns nicht reißen. Hat jedes Pixel so dicht wie möglich einen 100n KerKo sitzen? Auf den Stripes sind die eigentlich verlötet, aber wir wissen ja nicht, ob du ein eigenes Konstrukt hast. Wie lang ist die Data Leitung vom µC zum 1. Pixel? Wenn ich mich recht erinnere, arbeitet der ESP mit 3,3V, entsprechend niedrig ist auch der Logikpegel, den er ausgibt. Ein Arduino arbeitet in den meisten Fällen mit 5V, sein Logikausgang ist entsprechend störsicherer.
baer schrieb: > Das Programm funktioniert einwandfrei und tut genau was es soll! Das weisst du nicht. Alles was du weisst ist: Ist macht *unter bestimmten Umständen*, was es soll. > Hat jemand einen Tipp wie ich hier "Fehlersuchen" kann Qualifizierte Fehlersuche erfordert hier ein Speicher-Oszi. Entweder sind es Glitches auf der Versorgung oder beim Timing der Ansteuerung. Beides kann man ohne Speicheroszi nicht zuverlässig nachweisen. Alles was man ohne Speicheroszi, also sozusagen "auf Verdacht" machen könnte: alle paar LEDs ein 100nF-Kerko zwischen den Versorgungspins der LED einlöten. Normalerweise sind schon solche Stütz-Kondensatoren verbaut, aber vielleicht einfach nicht genug für die Qualität deiner Versorgung. Und wenn's nicht hilft, so schaden diese zusätzlichen Stützkondensatoren zumindest auch nicht.
Geh mal mit der Versorgungsspannung etwas runter. Vielleicht eine Diode in Reihe dazu. Wenn Du sie mit 3.3V ansteuerst, sollten sie zwar gehen, sind aber trotzdem fuer 5V spezifiziert.
baer schrieb: > Allerdings ist es jetzt so, dass wenn ich das ganze über USB anstecke, > funktioniert das ist das via USB incl der Datenleitungen angeschlossen? oder sind die dabei nicht mit dran und hast nur den Strom aus der USB-Buchse? Bleibt es beim Wechsel der Stromquelle das selbe Kabel? das Netzteil "hört" sich ja stärker an als eine USB-Buchse mit 500mA. Zu schwach ist das also nicht. Wie alt ist das Netzteil, wie aufgebaut -müsste man alles wissen, um was sagen zu können
Seriellen Widerstand (33 - 220 Ohm) in die Datenleitung einfügen. Verhindert Reflexionen (und passt notfalls den Pegel an). Wie ist die Gnd-Verbindung? Am besten mit Foto.
baer schrieb: > Auch ein Kondensator 120µF am 5V Eingang brachte hier keine Besserungen. > Die 5V scheinen Stabil zu sein... "scheinen stabil zu sein" ist kein gutes Kriterium. Die WLAN Sendepulse des ESP8266 sind so kurz, dass du da schon ein bisschen genauer gucken musst, um ggf. einen Spannungseinbruch zu sehen. Der Sendepuls erfordert größenordnungsmäßig 1mAs, d.h. wenn du die Ladung alleine aus den 120µF holen willst, würde die Spannung um 10V einbrechen - das schafft der also nicht. Wie hoch ist die Stromaufnahme deiner Schaltung? Außerdem braucht jedes Pixel seinen Abblockkondensator.
Die neopixel zeigen immer falsche Farben an, wenn die Stromstärke deutlich höher ist als benötigt
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.