hi all, i am new in coding and just begin to learn fastled, hope someone in this forum can
solve my problem. thank you.
Sequence_onepixel_per_segment(); => work fine no problem
Sequence_group_segment(); => sequence do not work. only first pixel light up. how to make sequence work?
wipe(); =>work fine without millis. how to change code into millis?
Thank you
#include <FastLED.h>
#define NUM_LEDS 20
#define Data_Pin 3
#define chipset NEOPIXEL
#define BRIGHTNESS 50
#define group_segment 4
#define led_segment 5
uint8_t x =0;
uint8_t k =0;
uint8_t r=random8(25,225);
uint8_t g=random8(25,225);
uint8_t b=random8(25,225);
// segment
CRGB rawleds[NUM_LEDS];
CRGBSet leds(rawleds, NUM_LEDS);
CRGBSet seg1(leds(0,4));
CRGBSet seg2(leds(5,9));
CRGBSet seg3(leds(10,14));
CRGBSet seg4(leds(15,19));
//group of segment
struct CRGB * group_of_segment[] ={seg1,seg2,seg3,seg4};
//=============================
void setup() {
delay(2000); // power-up safety delay
FastLED.addLeds<chipset, Data_Pin>(leds, NUM_LEDS);
FastLED.setBrightness(BRIGHTNESS);
}
//==============================
void loop() {
//Sequence_onepixel_per_segment();
//black();
//Sequence_group_segment();
//black();
//wipe();
// black();
}
//========sequencing one pixel every segment
void Sequence_onepixel_per_segment()
{
EVERY_N_MILLIS(100)
{
x++;
if (x >=led_segment ) {x = 0;}
//fill_solid(leds,NUM_LEDS, CRGB::Red);
fadeToBlackBy( leds, NUM_LEDS, 100);
seg1[x] =CRGB::Blue ;
seg2[x] =CRGB::Magenta ;
seg3[x] =CRGB::Blue ;
seg4[x] =CRGB::Green ;
FastLED.show();
}
}
//========sequencing group_of_segment
void Sequence_group_segment()
{
EVERY_N_MILLIS(100)
{
x++;
if (x >=group_segment ) { x = 0;}
//fill_solid(leds,NUM_LEDS, CRGB::Red);
fadeToBlackBy( leds, NUM_LEDS, 100);
leds[group_of_segment[x][led_segment]]= CRGB::Blue;
FastLED.show();
}
}
//led wipe random color from first to last pixel
void wipe ()
{
/* //WITHOUT MILLIS
for (int i = 0; i < NUM_LEDS; i++)
{
leds[i] = CRGB(r,g,b); //color work. but not random only one color, why??
FastLED.show();
delay(75);
}
for (int i = 0; i < NUM_LEDS; i++)
{
leds[i] = CRGB(r,g,20);
FastLED.show();
delay(75);
}*/
EVERY_N_MILLIS(100)
{
x++;
if (x>=NUM_LEDS ) {x=0;
leds[x] =CRGB::Blue ;}
// LEDS.show();}
else if (k>=NUM_LEDS ) {k=0;
leds[k] =CRGB(r,g,b) ; x=k;
}
LEDS.show();}
//}
}
void black(){
fill_solid(leds,NUM_LEDS, CRGB::Black);
LEDS.show();
LEDS.delay(25);
}