Problème fader led ne redémarre pas à zero dans le loop

Bonjour voici un code tout simple de fader sur une led ça fonctionne mais quand on a fait une fois le loop la led se rallume à fond de suite et pourtant quand on démarre une fois le programme la led s'allume lentement et s'éteind lentement. Une idée pour résoudre ce problème? Voici le code `// LED borne 10
const int ledb = 10;

void setup() {

// la led est configuree en sortie

pinMode(ledb, OUTPUT);

}

void loop() {

// variation lumiere augmente de 0 (min) a 255 (max)

for (int brightness = 0; brightness <= 255; brightness++) {
analogWrite(ledb, brightness);
delay(40);
}
// variation lumiere diminue de 255 a 0
for (int brightness = 255; brightness <= 255; brightness--) {
analogWrite(ledb, brightness);
delay(40);

}
int brightness = 0; //on remet a zero

}`

Ta seconde boucle for doit plutôt être
for (int brightness = 255; brightness >=0; brightness--)
Et cette ligne est inutile
int brightness = 0; //on remet a zero

Merci super avec votre correction ça fonctionne parfaitement. j'ai modifié pour que l'augmentation et la diminution de l'effet FADER soit plus rapide ainsi au lieu de brightness++ ou -- j'ai mis brightness+10 et -10 pour avoir des pas de 10 au lieu de 1 mais ça ne fonctionne pas je suppose que je dois faire un système de comptage style for i= 1 to 255 step 10? Une idée pour moi afin de bien orthographier ce code svp? Merci

brightness++ veut dire brightness = brightness + 1

il faudrait plutôt faire brightness += 10, voir brightness = brightness + 10

Merci je vais regarder cette possibilité

Merci ça fonctionne comme votre proposition. Voici le code for (int brightness = brightness + 40; brightness <= 255; brightness++) { analogWrite(ledr, brightness); delay(40);
Encore merci pour votre aide, cordialement

J'aurais pensé plutôt à ça :

for (int brightness = 0; brightness <= 255; brightness = brightness + 40) { analogWrite(ledr, brightness); delay(40); }

Oui ça fonctionne aussi mais en mieux du faite que la led part de zéro lumière merci

@didiersee ça fait un moment que tu es inscrit sur ce forum, je pense que tu as eu largement le temps de lire les "Bonnes pratiques du forum" ce serait bien de les appliquer.
Merci de poster le code entre balise comme demandé

:+1:

Nouveau problème mon code ci-dessous fonctionne bien sur Arduino nano j'ai transféré ce code sur arduino pro mini 168 et la séquence n'est plus respectée je reste tout le temps en fin de code avec les 3 leds allumées??? Une idée pour moi? Merci

/*
RGB Fader
*/
// LED borne 10

const int ledr = 8;
const int ledv = 9;
const int ledb = 10;
void setup() {

  // la led est configuree en sortie

  pinMode(ledr, OUTPUT);
  pinMode(ledb, OUTPUT);
  pinMode(ledv, OUTPUT);
}

void loop() {

  // variation lumiere augmente de 0 (min) a 255 (max) pour led rouge

  for (int brightness = 0; brightness <= 255; brightness++) {
    analogWrite(ledr, brightness);
    delay(10);
  }
  // variation lumiere diminue de 255 a 0 pour led rouge
for (int brightness = 255; brightness >=0; brightness--) {
    analogWrite(ledr, brightness);
    delay(10);
   
}
// variation lumiere augmente de 0 (min) a 255 (max) pour led verte

  for (int brightness = 0; brightness <= 255; brightness++) {
    analogWrite(ledv, brightness);
    delay(10);
  }
 
   // variation lumiere diminue de 255 a 0 pour led verte
for (int brightness = 255; brightness >=0; brightness--) {
    analogWrite(ledv, brightness);
    delay(10);
   
}
// variation lumiere augmente de 0 (min) a 255 (max) pour led bleu

  for (int brightness = 0; brightness <= 255; brightness++) {
    analogWrite(ledb, brightness);
    delay(10);
  }
 
  // variation lumiere diminue de 255 a 0 pour led bleu
for (int brightness = 255; brightness >=0; brightness--) {
    analogWrite(ledb, brightness);
    delay(10);
   
}
// variation lumiere augmente de 0 (min) a 255 (max) pour leds verte et bleu

  for (int brightness = 0; brightness <= 255; brightness++) {
    analogWrite(ledb, brightness);
    analogWrite(ledv, brightness);
    delay(10);
  }
  // variation lumiere diminue de 255 a 0 pour leds verte et bleu
for (int brightness = 255; brightness >=0; brightness--) {
    analogWrite(ledb, brightness);
    analogWrite(ledv, brightness);
    delay(10);
   
}
// variation lumiere augmente de 0 (min) a 255 (max) pour leds verte et rouge

  for (int brightness = 0; brightness <= 255; brightness++) {
    analogWrite(ledr, brightness);
    analogWrite(ledv, brightness);
    delay(10);
  }
  // variation lumiere diminue de 255 a 0 pour leds verte et rouge
for (int brightness = 255; brightness >=0; brightness--) {
    analogWrite(ledr, brightness);
    analogWrite(ledv, brightness);
    delay(10);
   
}
// variation lumiere augmente de 0 (min) a 255 (max) pour leds bleu et rouge

  for (int brightness = 0; brightness <= 255; brightness++) {
    analogWrite(ledb, brightness);
    analogWrite(ledr, brightness);
    delay(10);
  }
  // variation lumiere diminue de 255 a 0 pour leds bleu et rouge
for (int brightness = 255; brightness >=0; brightness--) {
    analogWrite(ledb, brightness);
    analogWrite(ledr, brightness);
    delay(10);
   
}
// variation lumiere augmente de 0 (min) a 255 (max) pour les 3 leds

  for (int brightness = 0; brightness <= 21010; brightness++) {
    analogWrite(ledr, brightness);
    analogWrite(ledv, brightness);
    analogWrite(ledb, brightness);
    delay(10);
  }
  // variation lumiere diminue de 21010 a 0 pour les 3 leds
for (int brightness = 0; brightness >=255; brightness++) {
    analogWrite(ledr, brightness);
    analogWrite(ledv, brightness);
    analogWrite(ledb, brightness);
    delay(10);
   
}
// variation lumiere diminue de 255 a 0 pour leds bleu et rouge
for (int brightness = 255; brightness >=0; brightness--) {
    analogWrite(ledr, brightness);
    analogWrite(ledv, brightness);
    analogWrite(ledb, brightness);
    delay(10);
}
}

A froid, je dirais que ça vient des pins qui peuvent faire du PWM, qui sont différentes sur cette carte. Voici ce qu'on trouve ici :

PWM: 3, 5, 6, 9, 10, and 11. Provide 8-bit PWM output with the analogWrite function.

Si ce n'est pas la bonne carte, cherche avec la bonne référence quelles sont les pins qui font du PWM : ce sont celles que tu dois utiliser dans ton code.

Merci pcq même à froid vous avez raison. c'est corrigé sur le pro mini ce sont 9/10/11 entre autre qui sont PWM. Encore merci Lesept

Cool, bonne continuation !

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.