Quando é necessário executarmos várias tarefas ao mesmo tempo, precisamos
limitar a utilização do delay() no código fonte, e utilizarmos mais a
função millis().
A função millis() retorna o tempo que o microcontrolador está ligado,
em milissegundos.
Guardando o valor de tempo que o processo foi executado e comparando com o
valor de tempo atual, poderemos calcular quando deve ser executado novamente.
Para facilitar a lógica, fiz a biblioteca
MillisTimerLib
que faz o gerenciamento das variáveis para cada processo que for utilizar.