When it is time to move away from delay(), it’s time to learn how to properly use millis(). If you’ve had trouble following my millis() examples, maybe a live tutorial will help.
In this AddOhms Livestream, I go through 4 code examples:
1. Blink, the one with delay(), as a starting point.
2. Blink Without Delay, line by line, what is it doing
3. PWM Fading without delay() (and with buttons)
4. Binary counter that uses buttons to speed up and slow down.