Hallo,
ich habe keine Ahnung vom programmieren und habe mir einen Code für 2 LED-Effekte zusammen kopiert.
Wenn ich den LED-Strip anschalte, erscheint nur der "rainbow"-Effekt.
Kommentiere ich //rainbow(wait); aus, wird auch der "updateLed"-Effekt angezeigt.
Ich möchte aber erst den "updateLed"-Effekt sehen und danach den "rainbow"-Effekt.
Könnt ihr mir bitte helfen?
Gruß
Conny
#include <Adafruit_NeoPixel.h>
#define PIN 6
#define NUM_LED 60
#define SEG_LEN 1
Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LED, PIN, NEO_GRB + NEO_KHZ800);
int wait = 110;
int wait2 = 10;
int num_segments = NUM_LED / SEG_LEN;
int num_colors = 3;
int colors[3][3];
int offset = 0;
void setup() {
strip.begin();
strip.show();
}
void loop() {
offset = (offset+1)%NUM_LED;
updateLed(offset,wait);
rainbow(wait);
}
void updateLed(int offset,int wait){
colors[0][0] = 0;
colors[0][1] = 0;
colors[0][2] = 255;
int i;
for(i=0; i<num_segments; i++){
strip.setPixelColor((i*SEG_LEN+offset)%60,
strip.Color(colors[i%num_colors][0],
colors[i%num_colors][1],
colors[i%num_colors][2]));
}
strip.show();
delay(wait);
}
void rainbow(uint8_t wait) {
uint16_t i, j, d;
for(d=0; d < 20; d++){
for(j=0; j<256; j++) {
for(i=0; i<strip.numPixels(); i++) {
strip.setPixelColor(i, Wheel((i+j) & 255));
}
strip.show();
delay(wait2);
}
}
}
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);
}
}