Blink Without Delay and "Multiple Loops"

This is to follow up on “Blink Without Delay Revisited” - where discussion of scheduled function calls was fairly well derailed by concerns about millis() overflow.

If anyone is interested, I’ve put together another four sketches - each of which adds a little more capability until the fourth is capable of running however many tasks you can shoehorn into available memory - with a sketch that demonstrates running what amounts to two concurrent loop constructs at once.

To not repeat my earlier mistake, the time used in these sketches is guaranteed not to overflow for at least a half-million years - and discussion of time units will be “off topic” (and can be addressed in other threads if desired).

Anyone interested?

Is this something newbies can wrap their heads around? If so, I'm interested. Nonetheless, thank You for your effort. - Scotty

I'd be interested.

@scottyjr - the first three shouldn't be much strain. If it's any encouragement, the more involved fourth sketch is such that newbies can use without wrapping their heads around. I'll encourage questioning anything you don't understand.

@dxw00d - Thanks. I'll try presenting each sketch as a separate topic (blink102, blink103, blink104, and blink105) to avoid confusion in discussion.

Each sketch will consist of three files: a blink10*.ino file, a blink.h header file for definitions, and a subs.ino file for subordinate functions that I don't want to clutter the blink10*.ino source.

Here goes...