code arduino :
[//SPI Library
#include <SPI.h>
//RGB LED Library
#include <Adafruit_WS2801.h>
//Light Control Pins
const int light_data = 11;
const int light_clk = 13;
//Set Strip Constants
const int length = 100;
uint32_t Couleur[25];
const int NbrPlageAmp=25;
const byte RougeBasseClaire=0;
const byte VertBasseClaire=0;
const byte BleuBasseClaire=80;
const byte RougeBasseFonce=0;
const byte VertBasseFonce=23;
const byte BleuBasseFonce=234;
float CoeffRouge;
float CoeffVert;
float CoeffBleu;
float MinRouge;
float MinVert;
float MinBleu;
// Create a 24 bit color value from R,G,B
uint32_t Color(byte r, byte g, byte b)
{
uint32_t c;
c = r;
c <<= 8;
c |= g;
c <<= 8;
c |= b;
return c;
}
//Library Setup
Adafruit_WS2801 strip = Adafruit_WS2801(length, light_data, light_clk);
int array[2] = {0,0};
void setup ()
{
//vert
Couleur[0]=Color(0,255,0);
Couleur[1]=Color(0,255,0);
Couleur[2]=Color(0,255,0);
Couleur[3]=Color(0,255,0);
Couleur[4]=Color(0,255,0);
Couleur[5]=Color(0,255,0);
Couleur[6]=Color(0,255,0);
Couleur[7]=Color(0,255,0);
Couleur[8]=Color(0,255,0);
Couleur[9]=Color(0,255,0);
Couleur[10]=Color(0,255,0);
Couleur[11]=Color(0,255,0);
Couleur[12]=Color(0,255,0);
// jaune
Couleur[13]=Color(255,255,0);
Couleur[14]=Color(255,230,0);
Couleur[15]=Color(255,200,0);
Couleur[16]=Color(255,175,0);
Couleur[17]=Color(255,150,0);
//orange
Couleur[18]=Color(255,128,0) ;
Couleur[19]=Color(255,96,0);
Couleur[20]=Color(255,64,0);
Couleur[21]=Color(255,32,0);
//rouge
Couleur[22]=Color(255,0,0) ;
Couleur[23]=Color(150,0,0);
Couleur[24]=Color(80,0,0);
CoeffRouge=(RougeBasseFonce-RougeBasseClaire)/NbrPlageAmp;
CoeffVert=(VertBasseFonce-VertBasseClaire)/NbrPlageAmp;
CoeffBleu=(BleuBasseFonce-BleuBasseClaire)/NbrPlageAmp;
if (RougeBasseFonce<RougeBasseClaire){MinRouge=RougeBasseFonce;}else {MinRouge=RougeBasseClaire;}
if (VertBasseFonce<VertBasseClaire){MinVert=VertBasseFonce;}else {MinVert=VertBasseClaire;}
if (BleuBasseFonce<BleuBasseClaire){MinBleu=BleuBasseFonce;}else {MinBleu=BleuBasseClaire;}
Serial.begin(9600);
strip.begin();
// Update LED contents, to start they are all 'off'
strip.show();
}
void loop()
{
int blue;
int green;
int red;
int i;
int j;
int k;
int l;
uint32_t CouleurAigu;
if(Serial.read() == 0xff){
for(k=0; k<2; k++){
array[k] = Serial.read();
Serial.println (array[k]);
}
}
for(j=0; j<2; j++){
if (j==0) {
//Basse
blue=BleuBasseClaire+(CoeffBleu*array[j]);
green=VertBasseClaire+(CoeffVert*array[j]);
red=RougeBasseClaire+(CoeffRouge*array[j]);
for ( i = 25; i < 75; ++i)
{
//set pixel color
strip.setPixelColor(i,0,Color(red,green,blue));
}
}else{
for ( l = 0; l < 25; ++l)
{
if (array[j]>l){
CouleurAigu=Couleur[l];
}else{
CouleurAigu=0;
}
//set pixel color
strip.setPixelColor(l,0,CouleurAigu);
strip.setPixelColor(length-l-1,0,CouleurAigu);
}
}
}
strip.show();
}
void stop()
{
}