RPM Interrupiones, nuestro de 10 ms

No uses la función delay() porque detienes la ejecución de todo el boceto.

Hay dos alternativas:

  1. 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;
   }
}
  1. Usar interrupciones programadas.