Hilfe bei Timer

(deleted)

Wenn millis (nicht Lillis) und int dein Problem ist, warum verwendest du nicht einfach long statt int ?

Den Sketch habe ich mir nicht weiter angesehen, da notwendige Kommentare fehlen.

(deleted)

Bei richtigem Einsatz von millis gibt es kein Problem.

Sieh dir doch mal das Beispiel "BlinkWithoutDelay" in der IDE an.
Da ist es doch genau vorgegeben.

Edit:

Du musst auch an passender Stelle den aktuellen millis-Wert holen.

Nicht nur die Startzeit wird zu groß für int, auch deine anderen Zeitwerte werden zu groß. Die musst Du alle entsprechend als long definieren. Das ist zwingend, und da passiert auch nichts wenn millis() überläuft ( 'zurückgesetzt' wird es nie ). Das machst Du mit deiner Abfrage schon richtig.

Und um einen Bewegungmelder abzufragen braucht man keinen Interrupt. Den kannst Du bequem im loop abfragen.
Den Hinweis von Dieter zu den Kommentaren solltest Du auf jeden Fall beherzigen - nicht nur für die Helfer, sondern auch später für dich.

(deleted)

(deleted)

Wenn du unsigned long verwendest, wird die Differenz in

if (millis()-letzteZeit >= INTERVALL) {
    letzteZeit = millis();
    // hier alles was einmal je INTERVALL gemacht werden soll
}

immer, auch bei einem Überlauf von millis(), richtig gerechnet.

Statt Kommentar sind auch Variablennamen die nicht val heissen, empfehlenswert. :wink: