millis() | Arduino Documentation millis() values are skipped For accurate timing over short intervals, consider using micros() millis() will wrap around to 0 after about 50 days (micros in about 70 minutes) Reconfiguration of the microcontroller’s timers may result in inaccurate millis() readings See also Blink Without Delay
How to use millis() instead of delay() | Arduino FAQs Fortunately, we can use millis () instead of delay () to solve all the above issues We will learn how to use millis () instead of a single delay () and multiple delay () We can also apply it for multitasking