Adafruit_NeoPixel et pixels.setBrightness(100);

Bonjour

J'essaye d'avoir 2 pixels de luminosité différentes sans succes :

#include <Adafruit_NeoPixel.h>

#define PIN        5 // On Trinket or Gemma, suggest changing this to 1
#define NUMPIXELS 144 // Popular NeoPixel ring size
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);


void setup() {
 
pixels.begin();

    pixels.setBrightness(255);
    pixels.setPixelColor(100, pixels.Color(0, 0, 255));// RVB
    pixels.show();
    pixels.setBrightness(5);
    pixels.setPixelColor(101, pixels.Color(0, 0, 255));// RVB
    pixels.show(); 

}

void loop() {

}

c'est le premier setBrightness qui est pris en compte..
J'ai doubler le .show sans succes...

Où est l'erreur ?

Merci

Essaie de changer la couleur plutôt que la luminosité, par exemple

pixels.setPixelColor(101, pixels.Color(0, 0, 50));// RVB

Es-tu sûr de la valeur 101 ?
Pas besoin du show à chaque fois, tu peux le mettre uniquement à la fin.

Bonjour

101 c'est le numéro de la led sur le strip

@+

Bonjour,

setBrightness est global et agit sur tous les pixels.
C'est plus qu'étonnant que ce soit le premier setBrightness qui est pris en compte. Verifies, ce devrait être le dernier.

Si tu veux modifier l'intensité pixel par pixel, il faut jouer avec setPixelColor

Bonjour,

j'ai essayer de rajouter une variable pour le Brightness.

pixels.setPixelColor(101, pixels.Color(0, 0, 50),255);// RVB

en essayant la valeur 255 à différent endroit mais ça ne compile pas,

logiquement à cause de:
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

j'ai regarder sur le net mais je trouve pas .

logiquement ce sont bien les leds qui controle leur propre luminosité ?

@+

Il ne faut pas ajouter un paramètre dans setPixelColor.
Si tu veux réduire l'intensité, il faut réduire toutes les valeurs des couleurs dans les mêmes proportions.

Du coup les leds ne sont pas modifiable individuellement avec cette librairie ?

@+

Essaie de voir l'impact de changer les valeurs de couleurs, par exemple comme ça

for (int i=0; i<NUMPIXELS;i++) pixels.setPixelColor(i, 0, 0, i);
pixels.show();

Tu verras si tu obtiens l'effet lumineux que tu cherches. Si oui, il te suffit de choisir la valeur qui te convient en comptant les leds jusqu'à celle dont la luminosité est bonne.

for (int i=0; i<NUMPIXELS;i++) pixels.setPixelColor(i, 0, 0, i);
pixels.show();

Ne fonctionne pas...

for (int i=0; i<NUMPIXELS;i++) {pixels.setPixelColor(i, 0, 0, i);
pixels.show();}

Ni comme ça..

mais j'ai compris le prcincipe en jouant sur les couleurs

Merci

Si ça fonctionne, mais au dessus d'une certaine valeur il est difficile de voir la différence de luminosité.