• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
ws2812b (ARGB) Zmiana trybów przyciskiem
#7
Możesz pozbyć się delay() w każdej funkcji odpowiedzialnej za świecenie np.
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
  }
}
Tak musisz zrobić dla funkcji:
Kod:
void colorWipe(uint32_t color) // znika ", int wait)"
void void theaterChase(uint32_t color)
void rainbow()
void theaterChaseRainbow()
Wszędzie likwidujesz delay oraz parametr "wait".

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;
      }
Daj znać, czy pomogło.
 
Odpowiedź
  


Wiadomości w tym wątku
RE: ws2812b (ARGB) Zmiana trybów przyciskiem - przez MadMrQ - 21-05-2023, 11:59

Skocz do:


Przeglądający: 1 gości