Avec une boucle for allant de de 257 à 322. Ça ne se fait pas en une fois sans doute (mais on ne sait pas quel arduino, quelle alim, quelle code etc…)
La rédaction de votre message ne répond pas aux critères attendus. Il n’aura sans doute pas de réponse tant que vous n’aurez pas pris en compte et mis en application les recommandations listées dans « Les bonnes pratiques du Forum Francophone”
Je suis sur un arduino nano v3. Les led sont alimenter en extérieur.
Après si ne me trompe, le reste du code ne sert à rien. étant donner que je cherche une solution pour faire un effect de flash sur la deuxième série de led.
Mais je post ici mon code complet.
#include <Adafruit_NeoPixel.h>
#define MOSFET_PIN 5
#define LED_PIN 6
#define LED_COUNT 256
long randNumber; //Pixel random number variable
long randNumberR; //RED random number variable
long randNumberG; //GREEN random number variable
long randNumberB; //BLUE random number variable
int numPixels = 256;
Adafruit_NeoPixel strip(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800);
unsigned long time=0;
void setup() {
pinMode(MOSFET_PIN, OUTPUT);
digitalWrite(MOSFET_PIN,0);
Serial.begin(115200);
strip.begin();
strip.show();
strip.setBrightness(5);
time=millis();
randomSeed(analogRead(0));
}
unsigned long delta;
unsigned long seconds=0;
unsigned led1effect=15;
unsigned mosfeteffect=10;
unsigned ledmode=0;
unsigned ledidx=0;
void loop()
{
delta=millis()-time;
if(delta>1000)
{
Serial.println("tick");
time=millis();
seconds++;
led1effect--;
mosfeteffect--;
if(mosfeteffect==0)
{
strip.show();
mosfeteffect=10;
digitalWrite(MOSFET_PIN,1);
delay(20);
digitalWrite(MOSFET_PIN,0);
}
if(led1effect==0)
{
led1effect=15;
ledmode=(ledmode+1)%3;
Serial.print("effect ");
Serial.println(ledmode);
if(ledmode==0)
{
for(int i=17;i<32;i++)
{
strip.setPixelColor(i,0xFFFFFF);
}
for(int a=224;a<240;a++)
{
strip.setPixelColor(a,0xFFFFFF);
}
delay(10);
}
else if(ledmode==1)
{
for(int i=17;i<32;i++)
{
strip.setPixelColor(i,0xfe1b00);
}
for(int b=224;b<240;b++)
{
strip.setPixelColor(b,0xfe1b00);
}
delay(10);
}
else if(ledmode==2)
{
for(int i=60;i<200;i++)
{
strip.setPixelColor(i,0xFF0000);
}
}
}
}
if(led1effect==0)
{
randNumber = random(0, numPixels); //pick random pixel between 0 and maximum number of pixels
randNumberR = random(0, 128); //Random RED value
randNumberG = random(0, 128); //Random GREEN value
randNumberB = random(0, 128); //Random BLUE value
randomPixel(strip.Color(randNumberR, randNumberG, randNumberB), 100);
}
delay(10);
}
void randomPixel(uint32_t c, uint8_t wait)
{
for (int i = 0; i < strip.numPixels(); i = i++)
{
strip.setPixelColor(randNumber, c); //turn random pixel on
}
}
Est ce il serai préférable de séparer de pin les deux série de led ?