Bonjour,
J'ai des leds témoins que j'allume ou éteint selon certains critères avec le code suivant qui fonctionne :
{
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 :
{
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