¿Cómo sustituir Delay para hacer multitarea?

Conozco la función millis(), sé que cuenta el tiempo desde que se ejecuta el programa hasta el instante en el que le pides algo. Pero me está rayando muchísimo hacerlo, y sinceramente no soy capaz. Cuando busco en español, me encuentro con foros con la misma pregunta, pero con ejercicios mucho más difíciles y una programación enorme (y en inglés lo mismo). He buscado en webs y no lo entiendo tampoco...

Imaginad el siguiente programa:

void setup(){
  pinMode(1, OUTPUT);
}
void loop(){
  digitalWrite(1, HIGH);
  delay(1000);
}

Un LED que se enciende 1 segundo (no se apaga) y se vuelve a ejecutar el programa. La idea no es hacerlo parpadear, sino conseguir yo una forma mecánica de sustituir cada delay con un bloque de programación, y no tener que usar las 2 neuronas que me quedan.

Hola Juiso, pasate por la sección de DOCUMENTACION y leete el tutorial Entender millis y no morir en el intento a ver si te es de ayuda.

victorjam:
Hola Juiso, pasate por la sección de DOCUMENTACION y leete el tutorial Entender millis y no morir en el intento a ver si te es de ayuda.

Gracias Víctor, a ver... Pensaba que esto iba ser más fácil, los que dicen que Arduino es fácil mienten. Muchas cosas pensaba que iban a estar automatizadas, esto es prácticamente C++

El 100% de código de arduino es C/C++ puro y duro.

Existen cientos de librerias que te facilitan el trabajo pero hay que entender la libreria. Por ejemplo, yo no trabajo con millis nunca, simplemente hice una libreria de timers por software que uso para la ocasion (que hace uso de millis()), pero tengo claro como funciona.

Y con una buena libreria de máquinas de estados y otra buena de temporizadores sabiendolo manejar no se resiste ningún código.

victorjam:
Hola Juiso, pasate por la sección de DOCUMENTACION y leete el tutorial Entender millis y no morir en el intento a ver si te es de ayuda.

Pues con tu hilo lo estoy entendiendo dpm, mejor las cosas poco a poco y bien explicadas que lo que he visto en otras páginas. Es que quiero iluminar progresivamente usando varios pines, pero para eso tengo que usar delay (para que sea visible el cambio de intensidad lumínica). Entonces como son 2 instrucciones con 2 pines diferentes y hay delay de por medio... No sale a la vez, y quiero hacer precisamente eso. Te cuento si lo consigo entre hoy y mañana

Ese tutorial es uno de una serie que estoy haciendo a ratos sueltos, con ese y estos otros veras cosas utiles:

Como NO leer un botón y como SI debemos hacerlo.

Ejercicios de millis y botones

Una forma sencilla de realizar secuencias.

Te recomendaría que los leyeras y verás cosas utiles (sobre todo en el apartado de ejercicios).