Problema funzione Millis() e servo

Ciao a tutti, PaoloP grazie per avermi risposto e per aver aggiornato il mio codice,
per quando riguarda l'altro problema che avevo e un po che ci sbatto la testa
e non riesco propio a capire come gestire più cose contemporaneamente con la funzione millis()
eppure sono sicuro che non dovrebbe essere niente di tanto complicato, ma non sono molto espero in programmazione.

In poche parole io ho questa funzione:

void programma_3()
{
  digitalWrite(ledR, valueR);
  digitalWrite(ledG, valueG);
  digitalWrite(ledB, valueB);

  if (millis() -  previousMillsR > interval ) {   
    previousMillsR = millis();
    if(valueR == HIGH) {
      valueR = LOW;
    } 
    else {
      valueR = HIGH;
    }
  }
  if (millis() -  previousMillsG > interval ) {   
    previousMillsG = millis();
    if(valueG == HIGH) {
      valueG = LOW;
    } 
    else {
      valueG = HIGH;
    }
  }
  if (millis() -  previousMillsB > interval ) {   
    previousMillsB = millis();
    if(valueB == HIGH) {
      valueB = LOW;
    } 
    else {
      valueB = HIGH;
    }
  }
}

questa funzione non fa altro che accendere e spegnere tutti i colori dei led rgb con la funzione millis()
ora io in questa funzione dovrei fare in modo che i servo ruotino da 0 a 180 gradi in loop, e contemporaneamente
continuare ad accendere e spegnere i led...

In che modo potrei risolvere questo problema??

Grazie un saluto a tutti.