controler driver led pwm

bonjour a tous
je cherche a controler un driver pwm pour led ( http://www.sureelectronics.net/goods.php?id=1320 )
j'ai testé different code trouvé mais rien ne marche
peut etre moi qui est pas comprit la notice du drivers ^^
voici ce qui est dit dessus

PWM terminal. When applied with +5v    or suspended, full amount of current will be output and when connected with    ground, output current will be 0.

donc si je comprends bien si je met du 5V la led s'eclaire a fond et si je la met a la masse elle ne s'eclaire pas
et la je voit vraiment pas comment la controler ^^
j'ai pensé a un bete TIP31 mais bon je pense que ya mieux comme transistor pour ca ( et surtout plus petit )
j'ai testé ce code qui peut etre interessant mais comme je m'en douté ne marche pas

//i/o pin declarations
int rpin = 9;
int gpin = 10;
int bpin = 11;

//function prototypes
void solid(int r, int g, int b, int t);
void fade(int r1, int g1, int b1, int r2, int g2, int b2, int t);

void setup()
{
//empty
}
void loop()
{
  //colour sequence instructions

  //Example sequence one: Rainbow fade over 12 seconds:
  solid(255,0,0,1000); // Maintain pure red 1 sec
  fade(255,0,0,0,255,0,3000); //fade from red to green over 3 seconds
  solid(0,255,0,1000); // Maintain pure green 1 sec
  fade(0,255,0,0,0,255,3000); //fade from green to blue over 3 seconds
  solid(0,0,255,1000); // Maintain pure blue 1 sec
  fade(0,0,255,255,0,0,3000); //fade from blue to red over 3 seconds
}

//function holds RGB values for time t milliseconds
void solid(int r, int g, int b, int t)
{

  //map values - arduino is sinking current, not sourcing it
//  r = map(r, 0, 255, 255, 0);
//  g = map(g, 0, 255, 255, 0);
//  b = map(b, 0, 255, 255, 0);

  //output
  analogWrite(rpin,r);
  analogWrite(gpin,g);
  analogWrite(bpin,b);

  //hold at this colour set for t ms
  delay(t);
}

//function fades between two RGB values over fade time period t
//maximum value of fade time = 30 seconds before gradient values
//get too small for floating point math to work? replace floats
//with doubles to remedy this?
void fade(int r1, int g1, int b1, int r2, int g2, int b2, int t)
{
  float r_float1, g_float1, b_float1;
  float r_float2, g_float2, b_float2;
  float grad_r, grad_g, grad_b;
  float output_r, output_g, output_b;

  //declare integer RGB values as float values
  r_float1 = (float) r1;
  g_float1 = (float) g1;
  b_float1 = (float) b1;
  r_float2 = (float) r2;
  g_float2 = (float) g2;
  b_float2 = (float) b2;

  //calculate rates of change of R, G, and B values
  grad_r = (r_float2-r_float1)/t;
  grad_g = (g_float2-g_float1)/t;
  grad_b = (b_float2-b_float1)/t;

  //loop round, incrementing time value "i"
  for ( float i=0; i<=t; i++ )
  {
    output_r = r_float1 + grad_r*i;
    output_g = g_float1 + grad_g*i;
    output_b = b_float1 + grad_b*i;

    //map values - arduino is sinking current, not sourcing it
//    output_r = map (output_r,0,255,255,0);
//    output_g = map (output_g,0,255,255,0);
//    output_b = map (output_b,0,255,255,0);

    //output
    analogWrite(rpin, (int)output_r);
    analogWrite(gpin, (int)output_g);
    analogWrite(bpin, (int)output_b);

    //hold at this colour set for 1ms
    delay(1);
  }
}

si vous avez une idée pour controler ca je suis preneur
merci beaucoup

Bonjour,

De toute évidence c'est un bête interface de puissance (enfin je pense).
Niveau câblage tente ceci :

Arduino -> Breakout
D3 -> EN
GND -> GND

Alim 9v -> Breakout
VCC -> VIN
GND -> GND

et pour finir
LED -> Breakout
anode -> LED+
cathode -> LED-

Avec comme code :

void setup()
{
  pinMode(3, OUTPUT);
}

void loop()
{
  byte i;
  for(i = 0; i < 256; i++){ // fade in
    analogWrite(3, i);
    delay(10);
  }
  delay(1000); // pause
  for(i = 255; i >= 0; i--){ // fade out
    analogWrite(3, i);
    delay(10);
  }
}

Normalement la led connecté à ton module devrait "pulser" si tout va bien.

ouep je tente ca mais explique moi ce que tu veux dire par breakout ??
EDIT: erreur a la compilation
sketch_aug12a.cpp: In function 'void loop()':
sketch_aug12a:9: error: 'value' was not declared in this scope
sketch_aug12a:14: error: 'value' was not declared in this scope

Zut j'ai fait le morceau de code directe dans le post sans remarquer cette erreur :blush: j'edit !

ouep ca marche ^^
je m'attendais a utilisé des transistor mais nan meme pas ^^
sinan une idée pour faire une variation de couleur avec des boutons comme ce que on voit en magasin avec leur télécommande qui controle une ampoule a led rgb

Bonjour.

En fait ton interface se comporte comme un transistor, tu allume ou éteint tes leds en appliquant un 5V ou un 0V sur l'entrée EN de l'interface (ENable de la sortie de "puissance"). L'interface permet donc de commuter tes leds à partir d'une sortie "faible courant" de ton Arduino.

Maintenant, la partie PWM (Pulse Width Modulation, Modulation par Largeur d'Impulsion en français): si tu commutes suffisamment rapidement tes leds (l'interface permet de monter à 1kHz), ton oeil ne voit pas les phases ON/OFF mais la valeur moyenne. En jouant sur la proportion TON/TOFF, tu fais donc varier la luminosité apparente de tes leds, entre éteinte (TON=0% du temps) à allumée (TON=100% du temps).
Le PWM est souvent utilisé pour générer un signal "analogique", à partie d'une sortie tout ou rien.
La commande AnalogWrite se sert d'ailleurs de cela, en "sortant" un niveau réglable de 0 à 5V en jouant sur le PWM.

Pour ton interface, tu dois donc envoyer un signal 0/1 sur l'entrée EN, à une fréquence maximale de 1kHz. Le rapport entre le temps à 0 et la période totale te donneras la proportion de luminosité de tes leds.

Bons essais!
FT

j'ai pas tout comprit mais bon ^^
logiquement avec le code que j'ai mit sur mon premier post je doit pouvoir faire changé de couleur ma led
soucis ca ne fait rien ^^
la led allume toute les couleurs en meme temps et c'est tout