Hi Could some one be kind enough to advise me how to get a

Hi
Could some one be kind enough to advise me how to get a meteor effect to run down on few parallel lines please. All I managed to get, is to run down lines. Would this be possible without a matrix configuration.
Using FastLed and OctoWS2811 on a teensy 3.1
Any advice is appreciated, thanks

Just to clarify your setup, and what you’re trying to do…

Are your LED lines setup as one long strip or several strips?

Are you wanting a meteor effect to travel down one of the center lines, maybe with some glow out to the side lines? Or are you wanting it to travel on some sort of angled path across multiple lines?

I agree with Marc Miller, it is difficult to help with limited details about your actual setup.

How are the pixels actually wired to the Teensy ? IE: how are they addressed ?

Next to know is what is the physical organisation of these pixels. Number of strips ? Pixels per strip ? Are the strips equally spaced forming a 2-D array ?

Also do clarify exactly what you mean by ‘meteor effect’ !! To me a meteor effect is a huge crater in the ground !!! :wink:

Indeed, there are many types. :wink:

Chithru, perhaps post a link to an image of some look or effect you’re going for.

Thanks for the replies
What I have is 8 long horizontal, parellel strips(equal length 300 LEDs)per strip connected to a Teensy controller and
Want to run a pattern (meteor effect/raindrop effect )coming down/vertically the 8 strips.
I will try to see if I could put some more information. Thanks for your help.

@Chithru_Mihiripenna

I’m assuming you are using something similar to the following code to setup your LEDs:
#include “FastLED.h”
#define NUM_STRIPS 8
#define NUM_LEDS_PER_STRIP 300
CRGB leds[NUM_STRIPS][NUM_LEDS_PER_STRIP];
and in the setup section:
void setup() {
FastLED.addLeds<NEOPIXEL, 2>(leds[0], NUM_LEDS_PER_STRIP); // 1st horizontal strip (the highest)
FastLED.addLeds<NEOPIXEL, 14>(leds[1], NUM_LEDS_PER_STRIP);
FastLED.addLeds<NEOPIXEL, 7>(leds[2], NUM_LEDS_PER_STRIP);
FastLED.addLeds<NEOPIXEL, 8>(leds[3], NUM_LEDS_PER_STRIP);
FastLED.addLeds<NEOPIXEL, 6>(leds[4], NUM_LEDS_PER_STRIP);
FastLED.addLeds<NEOPIXEL, 20>(leds[5], NUM_LEDS_PER_STRIP);
FastLED.addLeds<NEOPIXEL, 21>(leds[6], NUM_LEDS_PER_STRIP);
FastLED.addLeds<NEOPIXEL, 5>(leds[7], NUM_LEDS_PER_STRIP); // 8th horizontal strip (the lowest)
}

If this is the case then… Here’s a very very basic, single raindrop (or meteor) animation that will move horizontally…
void loop() {
// This outer loop will go over each column, one LED at a time
for(int x = 0; x < NUM_LEDS_PER_STRIP; x++) {
// This inner loop will go over each strip, one at a time
for(int i = 0; i < NUM_STRIPS; i++) {
leds[i][x] = CRGB::Red;
FastLED.show();
leds[i][x] = CRGB::Black;
delay(10); // Some delay to slow down the process
}
}
}

@Chithru_Mihiripenna

Please note that the above code is from the existing FastLED example of multiple controllers, Array of LED arrays !!!

I only did some basic cut & paste with very minor editing !!

This may works for you,
#include “FastLED.h”
#define LED_COUNT 300
#define LED_PIN 2
struct CRGB leds[LED_COUNT];
uint8_t hue = 32;
byte idex = 255;
byte meteorLength = 16; //set this to 16,24, or 32 or 64 …the pixel lenght
void setup() {
LEDS.addLeds<WS2811, LED_PIN, RGB>(leds, LED_COUNT);
LEDS.setBrightness(200);
}
void loop(){
meteorShower();
}
void meteorShower(){
memmove8( &leds[1], &leds[0], (LED_COUNT - 1) * 3 );// slide all the pixels down one in the array
idex++;// increment the meteor display frame
if ( idex > meteorLength ) {// make sure we don’t drift into space
idex = 0;
hue += 32; // cycle through hues in each successive meteor tail
}
// this switch controls the actual meteor animation, i.e., what gets placed in the
// first position and then subsequently gets moved down the strip by the memmove above
switch ( idex ) {
case 0:
leds[0] = CRGB(200,200,200);
break;
case 1:
leds[0] = CHSV((hue - 20), 255, 210);
break;
case 2:
leds[0] = CHSV((hue - 22), 255, 180);
break;
case 3:
leds[0] = CHSV((hue - 23), 255, 150);
break;
case 4:
leds[0] = CHSV((hue - 24), 255, 110);
break;
case 5:
leds[0] = CHSV((hue - 25), 255, 90);
break;
case 6:
leds[0] = CHSV((hue - 26), 160, 60);
break;
case 7:
leds[0] = CHSV((hue - 27), 140, 40);
break;
case 8:
leds[0] = CHSV((hue - 28), 120, 20);
break;
case 9:
leds[0] = CHSV((hue - 29), 100, 20);
break;
default:
leds[0] = CRGB::Black;
}
FastLED.show();
delay(30); // control the animation speed/frame rate
}

wow! thanks for all the support, let me try these.

It’s not my work
I just pass it to you
I forgot the creator name !!!

Hi Roy / Hung
Thank you so much for your support, the issue I have is that I want to use one Teensy controller to run the 8 strips but the effect to work down wards from each strip.
I posted a Drawing to show what I have been trying to get.
could you kindly have look and tell me if this is possible or not please.
thanks again.