Ich verzichte auf das modulo, weil es nicht das macht, was Du willst. Wenn Du (der Code) den Zeitpunkt verpasst, an dem Deine Bedingung zutriffft, bleibt die Anzeige bis zum nächsten Umlauf und evtl. noch länger stehen.
Ich prüfe, ob die Zeit (interval) abgelaufen ist. Das kann zu jeder Zeit passieren.
Dann addiere ich auf tik eines auf - ist die Obergrenze erreicht, wird tik=0.
Ich merke mir die Zeit wann der letzte Umschaltpunkt war (lastMillis) und dann heisst es warten, bis interval wieder erfüllt ist.
Und alles beginnt von Vorn.
Der Rest ist vermutlich klar.