[Résolu] Eclairs

Bonjour à tous !

Je travaille actuellement sur un projet de simulation d'éclairs avec leds de haute puissance 1W.

Le projet est sortie de terre (pour des éclairs, c'est balot...) mais un petit soucis est apparu...
J'utilise les sorties pwm pour faire varier l'intensité lumineuse de mes leds, mais je n'arrive qu'à faire fonctionner en ON-OFF ces leds. Niveau programmation, elles s'allument à partir de la valeur 150 sur le PWM et jusqu'à 255, néanmoins, je n'ai pas de variation d'intensité entres ces valeurs, d'où mon problème.
le PWM s'occupe de la variation, et je commande un ULN qui me permet de faire la coupure sèche au niveau des leds

Le schéma à suivre pour plus de détail.

J'avais initialement testé mon montage sur breadboard avec des leds 3mm et sans alim externe, j'avais bien ma variation d'intensité lumineuse.

J'ai ensuite testé différents solutions proposées sur internet sans résultat.

Si quelqu'un a une idée !

bonjour,
sur tes bc327 la 3eme patte est reliée dans le vide. ou je suis miro.
si je ne me trompe pas, on met en sortie si le - les bc

EDIT :
le programme?

Pour rentrer plus dans le détail du projet, je veux pouvoir gérer indépendamment chaque intensité lumineuse de mes leds.

Je bosse avec un programme de débug tout simple

void setup() {
  pinMode(2, OUTPUT);
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);
  pinMode(8, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(31, OUTPUT);
  pinMode(33, OUTPUT);
  pinMode(35, OUTPUT);
  pinMode(37, OUTPUT);
  pinMode(39, OUTPUT);
  pinMode(41, OUTPUT);
  pinMode(43, OUTPUT);
  pinMode(45, OUTPUT);
  analogWrite(31, 0);
  analogWrite(33, 0);
  analogWrite(35, 0);
  analogWrite(37, 0);
  analogWrite(39, 0);
  analogWrite(41, 0);
  analogWrite(43, 0);
  analogWrite(45, 0);
  digitalWrite(2, LOW);
  digitalWrite(3, LOW);
  digitalWrite(4, LOW);
  digitalWrite(5, LOW);
  digitalWrite(6, LOW);
  digitalWrite(7, LOW);
  digitalWrite(8, LOW);
  digitalWrite(9, LOW);
}

void loop() 
{
  digitalWrite(2, HIGH);
  for (int pwm=150 ; pwm < 255 ; pwm = pwm + 10)
     {
      analogWrite(31, pwm);
      delay(80);
     }
  digitalWrite(2, LOW);
  analogWrite(31, 0);
  delay(1000);
}

Sur les bc327, les pattes sont reliées au +

avec ton code, tu te retrouve en 800 ms au maxi et tu éteind juste après.
donc tu ne peux voir la différence.
incrément de 1 et mets un delay de 1s pour voir la différence

j'ai fait le test de +1 toutes les secondes, ca m'a permis d'identifier plus précisément la valeur seuil pour l'allumage de la led à PWM = 130, mais elle s'allume plein pot direct sans variation d'intensité sur les secondes suivantes

bon ok, je mérite un coup sur les doigts !!!

Après relecture complète du programme, je me suis aperçu que j'avais inversé mes sorties pwm et digital...

mon nouveau code modifié et allégé

void setup() {

  pinMode(2, OUTPUT);
  pinMode(31, OUTPUT);
  digitalWrite(2, LOW);
  analogWrite(31, 0);
}

void loop()
{
  digitalWrite(31, HIGH);
  analogWrite(2, 255); //luminosité la plus sombre
  delay(500);
  analogWrite(2, 170); // luminosité intermédiaire
  delay(500);
  analogWrite(2, 0); // luminosité la plus forte
  delay(500);
}

Ma variation d'intensité lumineuse se fait bien, entre 0 (intensité la plus forte) et 255 (intensité la plus faible), mais je pensais avoir une plus grande plage de luminosité, c'est à dire une plus grande différence de lumière en 0 et 255.
Est-ce normal qu'il y est si peu de différence ?

zoubiz:
Ma variation d'intensité lumineuse se fait bien, entre 0 (intensité la plus forte) et 255 (intensité la plus faible), mais je pensais avoir une plus grande plage de luminosité, c'est à dire une plus grande différence de lumière en 0 et 255.
Est-ce normal qu'il y est si peu de différence ?

bonjour
si l'intensité lumineuse max semble faible , c'est peut etre aussi que le circuit de commande est mal adapté
un PWM à 0 ou un PWM à 255 c'est la meme chose que de mettre le pin de sortie à GND ou à VCC.
tu parle de led 1W , il ne faut pas oublier aussi qu'une led ça se commande en courant, pas en tension

Artouste:
bonjour
si l'intensité lumineuse max semble faible , c'est peut etre aussi que le circuit de commande est mal adapté
un PWM à 0 ou un PWM à 255 c'est la meme chose que de mettre le pin de sortie à GND ou à VCC.
tu parle de led 1W , il ne faut pas oublier aussi qu'une led ça se commande en courant, pas en tension

je pensais plutôt à l'intensité minimale, j'ai vraiment l'impression qu'elle possède un seuil élevé à l'allumage. Lorsque je commande ma led à PWM = 0, elle est plein pot; lorsque je passe le PWM = 255, l'intensité diminue mais elle ne s'éteint pas.

Artouste:
tu parle de led 1W , il ne faut pas oublier aussi qu'une led ça se commande en courant, pas en tension

commande en courant pour les leds inférieur à 1W je suis d'accord. Mais en passant sur des leds dites de "haute puissance", le pilotage se fait par variation de tension.

A titre d'information, je me suis inspiré de cet article pour mon projet
http://blog.tkjelectronics.dk/2011/08/arduino-rgb-led-controller/

Le montage cité n'utilise pas des LED de puissance. Entre des LED "classiques" et des LED de puissance il y a un rapport 10 dans le courant.
Comme le dit pepe les BC327 doivent pas être complètement saturés du fait d'une résistance de base trop élevée. Je pense même qu'ils sont sous dimensionnés pour l'application.

je prend bien note de toutes les remarques, et je vous en remercie.

pepe:
et également de faire un montage correcte au niveau de leds, qui risquent alors d'appeler un courant beaucoup plus important.

qu'entends tu par montage correct ? J'avoue que je suis totalement perdu maintenant. Loin de moi l'idée de me faire mâcher le travail, mais je pensais avoir justement fait un montage correct au niveau de mes leds...

pepe:
Si tu penses avoir fait un montage correct, alors je serais intéressé de connaître la valeur des caractéristiques des composants, des grandeurs électriques, et (surtout !) des tolérances associées que tu as utilisées pour le calcul des résistances de 3,3 Ω.

j'ai appliqué la loi d'ohm.
Sous 4V et 350mA, j'obtiens 2.85ohm, avec une tolérance à 5%.

Avec mon faible niveau en électronique, je ne vois pas où je bug...

J'ai refais un schéma en retirant l'uln et en modifiant la valeur de la résistance sur la base de mon transistor.
Néanmoins, comme je n'ai pas compris où tu voulais en venir pepe avec mes résistance 3ohm, je les ai laissé.

Dans l'absolu, je n'ai toujours pas compris pourquoi je n'arrivais pas à éteindre mes leds avec le pwm dans mon ancien montage.

schéma principe eclair.jpg

je me demande également si l'utilisation d'un IRL540N ne serait pas une meilleure idée que mes bc327.

Qu'en pensez vous ?

zoubiz:
je me demande également si l'utilisation d'un IRL540N ne serait pas une meilleure idée que mes bc327.

Qu'en pensez vous ?

bonsoir
L'IRL540 à l'avantage là d'etre un N Mosfet en logic level , tu evacue d'emblée tous les calculs de R base des bipolaire

je déterre un peu le sujet pour remercier tous les gens qui m'ont aidé - et en particulier pepe pour sa patience - à concrétiser ce projet.

Après une longue absence dû à mon boulot, j'ai pu enfin finir le projet, et tout fonctionne à la perfection. Je m'amuse maintenant à faire différents scénarios pour l'allumage et l'extinction des leds.