Forum: Mikrocontroller und Digitale Elektronik NEOPIXEL übernimmt manchmal falsche Farben


von baer (Gast)


Lesenswert?

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

von A.. P. (arnonym)


Lesenswert?

Ein Stückchen Code hilft oft ungemein…

von baer (Gast)


Lesenswert?

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
}

von baer (Gast)


Lesenswert?

habe nun testhalber auch mal das ESP ausgetauscht gegen ein 
Nagelneues... <- selbe Probleme...
USB-TOP, 5V Anschluss macht Probleme.

von Jörg R. (solar77)


Lesenswert?

baer schrieb:
> 5V Anschluss macht Probleme.

Was heißt das? Bricht die Spannung ein?

von Gerald B. (gerald_b)


Lesenswert?

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.

von c-hater (Gast)


Lesenswert?

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.

von Mark W. (kram) Benutzerseite


Lesenswert?

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.

von ●DesIntegrator ●. (Firma: FULL PALATINSK) (desinfector) Benutzerseite


Lesenswert?

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

von Tippgeber (Gast)


Lesenswert?

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.

von Wolfgang (Gast)


Lesenswert?

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.

von Ni k (Gast)


Lesenswert?

Die neopixel zeigen immer falsche Farben an, wenn die Stromstärke 
deutlich höher ist als benötigt

von ●DesIntegrator ●. (Firma: FULL PALATINSK) (desinfector) Benutzerseite


Lesenswert?

is' mittlerweile egal - glaubich

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
Noch kein Account? Hier anmelden.