This is my code, well working on my other ribbon. The teensy is not connected yet.
I wanted to test the ribbon first. Will be connected to the input side indeed. Wasnt clever to link it to the output side on the schema without a quote.
#include "FastLED.h"
#define NUM_LEDS 31
#define DATA_PIN 2
#define CLOCK_PIN 1
#define RAINBOW_DELAY 0
#define GLOW_DELAY 1000
CRGB leds[NUM_LEDS];
void led_set_color_int( int LED_id, int Red, int Green, int Blue, int Red_i, int Green_i, int Blue_i)
{
leds[LED_id].r = (int)(Red*Red_i*(255./100.));
leds[LED_id].g = (int)(Green*Green_i*(255./100.));
leds[LED_id].b = (int)(Blue*Blue_i*(255./100.));
FastLED.show();
}
void set_strip_color(int Red, int Green, int Blue, int Red_i, int Green_i, int Blue_i)
{
int i;
for ( i=0 ; i<=NUM_LEDS ; i++)
led_set_color_int( i, Red, Green, Blue, Red_i, Green_i, Blue_i );//led_set_color_int( i, 0, 0, 0, 0, 0, 0 );
//for ( i=0 ; i<=NUM_LEDS ; i++)
//{
// if ( i%1 == 0 )
// led_set_color_int( i, Red, Green, Blue, Red_i, Green_i, Blue_i );
// if ( i%2 == 0 )
// led_set_color_int( i, 1, 1, 1, 229/2.55, 204/2.55, 100);//led_set_color_int( i, 1, 1, 1, 100, 51/2.55, 204/2.55 );
//}
}
void glow(int LED_id, int step)
{
while(1){
int i,j;
for ( i=0 ; i<=100 ; i+=step)
{
for ( j=0 ; j<=NUM_LEDS ; j++){
led_set_color_int( j, 1, 1, 1, i, i, i );
//delay(1);
}
}
for ( i=100 ; i>=0 ; i-=step)
{
for ( j=0 ; j<=NUM_LEDS ; j++){
led_set_color_int( j, 1, 1, 1, i, i, i );
//delay(1);
}
}}
}
void glow_strip(int step)
{
while(1)
{
glow( 0, step);
glow( 1, step);
glow( 2, step);
glow( 3, step);
glow( 4, step);
glow( 5, step);
glow( 6, step);
glow( 7, step);
glow( 8, step);
glow( 9, step);
glow( 10, step);
glow( 11, step);
glow( 12, step);
glow( 13, step);
glow( 14, step);
glow( 15, step);
glow( 16, step);
glow( 17, step);
glow( 18, step);
glow( 19, step);
glow( 20, step);
glow( 21, step);
glow( 22, step);
glow( 23, step);
glow( 24, step);
glow( 25, step);
glow( 26, step);
glow( 27, step);
glow( 28, step);
glow( 29, step);
glow( 30, step);
delay(GLOW_DELAY);
}
}
void rainbow()
{
int i;
while(1)
{
for ( i=0 ; i<NUM_LEDS ; i+=7 )
{
led_set_color_int( i+0, 1, 0, 0, 100, 0 , 0 );
delay(RAINBOW_DELAY);
led_set_color_int( i+6, 0, 0, 0, 0, 0, 0);
led_set_color_int( i+1, 1, 1, 0, 100, 50 , 0 );
delay(RAINBOW_DELAY);
led_set_color_int( i+0, 0, 0, 0, 0, 0, 0);
led_set_color_int( i+2, 1, 1, 0, 100, 100 , 50 );
delay(RAINBOW_DELAY);
led_set_color_int( i+1, 0, 0, 0, 0, 0, 0);
led_set_color_int( i+3, 0, 1, 0, 0 , 100 , 0 );
delay(RAINBOW_DELAY);
led_set_color_int( i+2, 0, 0, 0, 0, 0, 0);
led_set_color_int( i+4, 0, 0, 1, 0 , 0 , 100);
delay(RAINBOW_DELAY);
led_set_color_int( i+3, 0, 0, 0, 0, 0, 0);
led_set_color_int( i+5, 1, 0, 1, 30 , 0 , 51);
delay(RAINBOW_DELAY);
led_set_color_int( i+4, 0, 0, 0, 0, 0, 0);
led_set_color_int( i+6, 1, 0, 1, 54 , 0 , 100);
delay(RAINBOW_DELAY);
led_set_color_int( i+5, 0, 0, 0, 0, 0, 0);
led_set_color_int( i+6, 0, 0, 0, 0, 0, 0);
}
}
}
void setup() {
delay(2000);
FastLED.addLeds<WS2801, RGB>(leds, NUM_LEDS);
//rainbow();
//glow_strip(1);
//while(1){glow(0,1);}
//set_strip_color( 1, 1, 1, 38, 128, 217 );
glow(10, 1);
}