NEOPIXEL übernimmt manchmal falsche Farben

Gast #5193529
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
Gast
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
}
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.
Gast
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.
(Firma: FULL PALATINSK) Persönliche Seite
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
Gast
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.
Gast
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 9 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.