Effekte für LED-Strip nacheinander ausführen

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);
  }
}

So wie ich das sehe, wird updateLed() schon ausgeführt.
Aber du wirst nur ein kurzes blitzen sehen, weil der Effekt nach 110ms wieder überschrieben wird.

mach doch mal nach dem updateLed() aufruf ein delay(1000); rein. Dann müßtest du was sehen.

Mit delay(1000); hat es auch nicht geklappt.
Led waren nur an. Es gab kein Lauf-Effekt.
So geht es:

int i;
  for(i=0; i<NUM_LED; i++){
	offset = (offset+1)%NUM_LED;
	updateLed(offset,wait);
  }
rainbow(wait);