LED im Unterprog einschalten und nach Zeitablauf wider ausschalten !ohne! delay

Das war der entscheidende Hinweis ardubu. Im Prinzip ist es eine Ausschaltverzögerung.

ich habe es soweit geändert. Immerhin leuchtet die LED bei Statusänderung und geht wieder aus... alles
OK soweit. Allerdings bleibt die LED nicht immer gleich lang an, mal 3 Sekunden und mal 8 Sekunden, mal 10 Sekunden. Ich weis nicht woran es liegt. Falls Ihr das ganze Programm braucht kann ich es posten, allerdings ist es noch nicht ganz fertig, möchte erst die einzelnen Funktionen haben.

In Kurzform sieht es so aus:

unsigned long ausZeit = 10000;  // (10 Sekunden)
etc.


void loop()
{

HGBLaus();   // Unterprogramm zum LED ausschalten


if Zähler = n1
Status = sowieso1  Text auf LCD schreiben
HGBLan();                                          //Hintergrundbeleuchtung an


if Zähler = n2        Text auf LCD schreiben
Status = sowieso2
HGBLan();                                          //Hintergrundbeleuchtung an

usw.


void HGBLan()      // Unter"programm" LED an
{ 
digitalWrite(HBL,HIGH);  // LED ein.
}


void HGBLaus()   // Unterprogramm LED aus
{

    unsigned long currentMillis = millis();
    if (currentMillis - previousMillis >= ausZeit) {

    previousMillis = currentMillis;
    digitalWrite(HBL,LOW);
   
  
   }

   
}