No uses la función delay() porque detienes la ejecución de todo el boceto.
Hay dos alternativas:
- Usar millis() para medir el tiempo de cuando ejecutar tareas.
unsignet long t = 0;
unsignet long t1 = 100; //Periodo 1
unsignet long t2 = 200; //Periodo 2
unsignet long t10 = 0; //Ultima ejecución evento 1
unsignet long t20 = 0; //Ultima ejecución evento 2
void setup() {
/Lo que corresponda
}
void loop(){
t = millis();
if (t - t10) > t1){
//Ejecuta evento 1
t10 = t;
}
if (t - t20) > t2){
//Ejecuta evento 2
t20 = t;
}
}