[RESOLU] Led qui ne veulent pas s'éteindre


bonjour,

j'ai des leds témoins que j'allume ou éteint selon certains critères avec le code suivant qui fonctionne :

code: [select]
{
      if (hprog >= 1100 && hprog <= 1130)
        {
          analogwrite(ledbleue, valupledbleue); digitalwrite(ledeclledbleue, high); lcd.setcursor(9,1); lcd.print("ok"); c = 1; // allumage progressif de l'éclairage led bleue et allumage de la led témoin
        }
        
      else if (hprog > 1130 && hprog <= 1200)
        {
          analogwrite(ledbleue, 255); digitalwrite(ledeclledbleue, high); lcd.setcursor(9,1); lcd.print("ok"); c = 1;
        }
      else if (hprog > 1200 && hprog <= 1230)
        {
          analogwrite(ledbleue, valdownledbleue); digitalwrite(ledeclledbleue, high); lcd.setcursor(9,1); lcd.print("ok");  c = 1;  
        }
      else if (hprog >= 2115 && hprog <= 2145) // si il est 21h15
        {
          analogwrite(ledbleue, valupledbleue); digitalwrite(ledeclledbleue, high); lcd.setcursor(9,1); lcd.print("ok"); c = 1;
        }
      else if (hprog > 2145 && hprog <= 2230)
        {
          analogwrite(ledbleue, 255); digitalwrite(ledeclledbleue,high); lcd.setcursor(9,1); lcd.print("ok"); c = 1;
        }
      else if (hprog > 2230 && hprog <=2300)
        {
          analogwrite(ledbleue, valdownledbleue); digitalwrite(ledeclledbleue,high); lcd.setcursor(9,1); lcd.print("ok"); c = 1;
        }
    
  
      else
        {
          analogwrite(ledbleue, 0);digitalwrite(ledeclledbleue, low); lcd.setcursor(9,1); lcd.print("no"); c = 0;
        }
      }


afin d'éviter d'écrire à chaque ligne : "lcd.setcursor(9,1); lcd.print("ok"); c = 1;" je l'ai modifié comme suit :

code: [select]
{
      if (hprog >= 1100 && hprog <= 1130)  
        {
          analogwrite(ledbleue, valupledbleue); digitalwrite(ledeclledbleue, high); c = 1; // allumage progressif de l'éclairage led bleue et allumage de la led témoin
        }
        
      else if (hprog > 1130 && hprog <= 1200)
        {
          analogwrite(ledbleue, 255); digitalwrite(ledeclledbleue, high); c = 1;
        }
      else if (hprog > 1200 && hprog <= 1230)        {
          analogwrite(ledbleue, valdownledbleue); digitalwrite(ledeclledbleue, high);   c = 1;  
        }
      else if (hprog >= 2115 && hprog <= 2145)
        {
          analogwrite(ledbleue, valupledbleue); digitalwrite(ledeclledbleue, high);  c = 1; // allumage progressif de l'éclairage led bleue
        }
      else if (hprog > 2145 && hprog <= 2230)  // si il est entre 21h45 et 22h00
        {
          analogwrite(ledbleue, 255); digitalwrite(ledeclledbleue,high);  c = 1;
        }
      else if (hprog > 2230 && hprog <=2300)
        {
          analogwrite(ledbleue, valdownledbleue); digitalwrite(ledeclledbleue,high);  c = 1;  //  extinction progressive des leds bleues
        }
      else if (c == 1)
        {
          lcd.setcursor(9,1); lcd.print("ok");
         }
  
      else
        {
          analogwrite(ledbleue, 0);digitalwrite(ledeclledbleue, low); lcd.setcursor(9,1); lcd.print("no"); c = 0; // eteint la led témoin et l'éclairage leds bleues
        }


et là ça ne fonctionne pas, la led témoin "ledeclledbleue" ne s'éteint plus. la variable c me sert également pour vérifier l'état de l'éclairage quand j'appuie sur un bp pour éteindre ou allumer manuellement l'éclairage bleu.

comme je suis novice en code (comme vous pouvez le voir), je n'arrive pas à trouver ce qui bloque.

si quelqu'un peut m'aider,

merci


si vous gardez le else pour la partie lcd alors il ne sera pas exécuté si un des if au dessus été exécuté 


pour mieux comprendre votre code ressemble  cela :

si condition1 faire action1
sinon si condition2 faire action2
sinon si condition3 faire action3
sinon si condition4 faire action4


vous voyez bien que si condition2 est vraie alors action2 sera exécutée et à cause des "sinon" la condition4 ne sera même pas évaluée et action4 donc pas exécutée

alors que si vous écrivez

si condition1 faire action1
sinon si condition2 faire action2
sinon si condition3 faire action3
si condition4 faire action4


dans ce cas condition4 sera évaluée indépendamment des conditions précédentes


Arduino Forum > International > Français (Moderators: jfs, Snootlab) > [RESOLU] Led qui ne veulent pas s'éteindre


arduino

Comments

Popular posts from this blog

Flip address is out of range arduino uno r3

Arduino Uno not uploading

Indesign and MathType fonts