Press "Enter" to skip to content

NeoPixel – keď červená nie je červená

MiroRi 0

💡 AHA! Moment: Keď červená nie je červená (NeoPixel záhada)
Stalo sa vám niekedy, že ste v kóde nastavili pre NeoPixel krásnu červenú farbu pixels.Color(255, 0, 0), ale váš pásik sa namiesto toho rozsvietil nazeleno?

Nepanikárte, váš kód je v poriadku a LED pásik nie je pokazený!

V čom je problém?
Svet NeoPixelov (čipov WS2812B, WS2811 a ďalších) nie je zjednotený. Rôzni výrobcovia ukladajú farebné čipy (červený, zelený, modrý) do puzdra diódy v rôznom poradí:

GRB: Najbežnejšie (Green-Red-Blue)

RGB: Časté pri starších modeloch (Red-Green-Blue)

BRG: Menej časté, ale existuje

Ak pošlete dáta v poradí „Červená-Zelená“, ale pásik ich očakáva ako „Zelená-Červená“, farby sa jednoducho prehodia.

Rýchla oprava (The „AHA“ Solution)
Namiesto prepisovania celého kódu a manuálneho menenia hodnôt, stačí zmeniť jeden parameter pri inicializácii knižnice v časti setup:

// ❌ Ak sú farby prehodené (pôvodné nastavenie):

Adafruit_NeoPixel pixels(NUM_LEDS, LED_PIN, NEO_GRB + NEO_KHZ800);

// ✅ Ak chcete opraviť poradie na správne:

Adafruit_NeoPixel pixels(NUM_LEDS, LED_PIN, NEO_RGB + NEO_KHZ800);

Pro Tip: Ak máte pásik, kde vám nesedí ani jedna z týchto možností, vyskúšajte experimentovať s parametrami ako NEO_BRG. Knižnica Adafruit NeoPixel podporuje takmer všetky kombinácie!

<< Translate