INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
WS2812 Programmierproblem
12.12.2020, 08:56 (Dieser Beitrag wurde zuletzt bearbeitet: 12.12.2020 16:10 von Bitklopfer.)
Beitrag #1
WS2812 Programmierproblem
Hallo,

ich (eher meine Frau Big Grin) möchte eine Reihe von acht 2812 in langsam wechselnden Farben haben. Ich bin programmiermäßig nicht so gut und hatte mir dazu folgendes Script besorgt;
Code:
#include <Adafruit_NeoPixel.h>

#define PIN 6
#define PIXELS 8


#define SPEED 500
#define BRIGHT 100

// Parameter 1 = number of pixels in strip
// Parameter 2 = pin number (most are valid)
// Parameter 3 = pixel type flags, add together as needed:
//   NEO_KHZ800  800 KHz bitstream (most NeoPixel products w/WS2812 LEDs)
//   NEO_KHZ400  400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers)
//   NEO_GRB     Pixels are wired for GRB bitstream (most NeoPixel products)
//   NEO_RGB     Pixels are wired for RGB bitstream (v1 FLORA pixels, not v2)
Adafruit_NeoPixel strip = Adafruit_NeoPixel(PIXELS, PIN, NEO_GRB + NEO_KHZ800);

void setup() {
  strip.begin();
  strip.show(); // Initialize all pixels to 'off'
  delay (1000);
  strip.setBrightness(BRIGHT);
  }

void loop() {
  rainbowCycle(SPEED);
}

void rainbowCycle(uint8_t wait) {
  uint16_t i, j;

  for(j=0; j<256*5; j++) { // 5 cycles of all colors on wheel
    for(i=0; i< strip.numPixels(); i++) {
      strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) & 255));
    }
    strip.show();
    delay(wait);
  }
}



// Input a value 0 to 255 to get a color value.
// The colours are a transition r - g - b - back to r.
uint32_t Wheel(byte WheelPos) {
  if(WheelPos < 85) {
   return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0);
  } else if(WheelPos < 170) {
   WheelPos -= 85;
   return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3);
  } else {
   WheelPos -= 170;
   return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3);
}
}

Das Script läuft prima, jede LED leuchtet in anderen Farben, langsamer Farbwechsel. Aber: sie möchte dass alle LEDs gleichzeitig in denselben Farben leuchten, Farben wechseln, und das bekomme ich nicht hin.
Könnte mir jemand bitte einen Tipp geben?

Danke und Gruß, Hajo.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.12.2020, 10:21
Beitrag #2
RE: Programmierproblem
Dann zeig doch mal, was du bisher versucht hast. Evtl. kann man darauf aufbauen.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.12.2020, 10:31
Beitrag #3
RE: Programmierproblem
Hallo Dieter,
ich habe versucht, in dem Programmteil wheel Sachen zu ändern, es wurde nur chaotisch.
Zeigen kann ich leider garnichts, das Ganze ist einfach zu komplex für mich.
Gruß, Hajo.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.12.2020, 10:39
Beitrag #4
RE: Programmierproblem
Hallo Hajo,
du musst die Anpassung in "rainbowCycle" vornehmen.
Die jeweilige Led ist "numPixels".
Die Funktion muss so umgebaut werden, das du "setPixelColor" für jede Led aufrufst.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.12.2020, 10:46
Beitrag #5
RE: Programmierproblem
Versuche mal folgendes (ungetestet):
Code:
// Ersetze
    for(i=0; i< strip.numPixels(); i++) {
      strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) & 255));
    }
    strip.show();

// durch folgendes
    fill(Wheel(((i * 256 / strip.numPixels()) + j) & 255), 0, strip.numPixels());
    strip.show();

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.12.2020, 12:57
Beitrag #6
RE: Programmierproblem
Hallo Tommy,

danke erstmal. Aber:

'fill' was not declared in this scope

Gruß, Hajo.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.12.2020, 13:01
Beitrag #7
RE: Programmierproblem
Klar. Da ist auch noch ein anderer Fehler drin:

Code:
void rainbowCycle(uint8_t wait) {
  uint16_t i, j;

  for(j=0; j<256; j++) { // 5 cycles of all colors on wheel
      strip.fill(Wheel(j));
      strip.show();
    }
    delay(wait);
  }
}

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.12.2020, 13:03
Beitrag #8
RE: Programmierproblem
Ein strip. davor und schon funktioniert alles SUPER!!
Jetzt kann meine Frau ihre 3D gedruckte große Schneeflocke in Betrieb nehmen.

Tausend Dank Thommy.
Schöne Weihnachten.

Gruß, Hajo.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Ws2812 Farbwechsel JoGre 4 933 28.10.2020 21:48
Letzter Beitrag: JoGre
  Lauftext mit WS2812, der über Seriellen Monitor eingegeben wird Bastian 3 1.523 12.05.2020 16:47
Letzter Beitrag: Tommy56
  Sketch für WS2812 klappt nicht ThorstenP 9 2.024 02.04.2020 14:50
Letzter Beitrag: ThorstenP
  Sketch Beispiel für WS2812 ThorstenP 5 1.480 23.03.2020 14:22
Letzter Beitrag: Tommy56
  Helligkeit drosseln bei WS2812 LED`s senseman 3 1.739 05.12.2019 09:11
Letzter Beitrag: senseman
  WS2812 Helligkeit Mannu 6 4.092 21.10.2018 22:34
Letzter Beitrag: Mannu
  900 WS2812 ansteuern b_mertke 6 2.885 31.08.2018 12:45
Letzter Beitrag: Hilgi
  Neuling kommt nicht weiter, ws2812 If abfragen Tabata 8 4.308 19.04.2018 14:07
Letzter Beitrag: Tommy56
  ws2812 lecker16 19 6.256 25.01.2017 08:13
Letzter Beitrag: renid55
  WS2812 Helligkeit einzelner LEDs steuern mavericklp 3 4.722 11.03.2016 09:32
Letzter Beitrag: torsten_156

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste