21-05-2023, 11:59
Możesz pozbyć się delay() w każdej funkcji odpowiedzialnej za świecenie np.
Tak musisz zrobić dla funkcji:
Wszędzie likwidujesz delay oraz parametr "wait".
Później musisz zmienić sposób wywoływania funkcji:
Daj znać, czy pomogło.
Kod:
void colorWipe(uint32_t color) { // znika parametr wait
for(int i=0; i<strip.numPixels(); i++) {
strip.setPixelColor(i, color);
strip.show();
// znika linijka z delay
}
}
Kod:
void colorWipe(uint32_t color) // znika ", int wait)"
void void theaterChase(uint32_t color)
void rainbow()
void theaterChaseRainbow()
Później musisz zmienić sposób wywoływania funkcji:
Kod:
switch(mode) { // Start the new animation...
case 0:
colorWipe(strip.Color( 0, 0, 0)); // Black/off
break;
case 1:
colorWipe(strip.Color(255, 0, 0)); // Red
break;
case 2:
colorWipe(strip.Color( 0, 255, 0)); // Green
break;
case 3:
colorWipe(strip.Color( 0, 0, 255)); // Blue
break;
case 4:
theaterChase(strip.Color(127, 127, 127)); // White
break;
case 5:
theaterChase(strip.Color(127, 0, 0)); // Red
break;
case 6:
theaterChase(strip.Color( 0, 0, 127)); // Blue
break;
case 7:
rainbow();
break;
case 8:
theaterChaseRainbow();
break;
}