[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 :
afin d'éviter d'écrire à chaque ligne : "lcd.setcursor(9,1); lcd.print("ok"); c = 1;" je l'ai modifié comme suit :
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
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
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
Post a Comment