Si tú también eres de los que utiliza la función delay cada vez que quieres dejar un LED, motor, etc. encendido durante un tiempo determinado, este post es para ti. En esta ocasión te voy a hablar de las consecuencias de utilizar esta función en tus proyectos, de lo que pierdes cada vez que usas la función delay en Arduino y cómo minimizar su efecto.
Cada vez que se ejecuta esta función en tu proyecto el microcontrolador de tu Arduino se para, espera a que transcurra el tiempo que hayas establecido y ejecuta la siguiente instrucción.
Esto provoca varios problemas.
- Tu Arduino No Puede Detectar Eventos
- Mientras tu placa Arduino está ejecutando un delay no puedes, por ejemplo, leer sensores.
- La Función Delay Es Incompatible Con Las Interrupciones.
- Siempre Que Puedas Elige La Función Millis()
La función millis no es la panacea que curará todos los males de tu proyecto, de hecho, si te has decidido a leer el post que te recomendé antes (sobre las interrupciones en Arduino), habrás podido comprobar que la función millis también puede provocarte problemas. Aun así, es lo más cerca que estarás de trabajar de forma paralela con Arduino, es decir, lo más cerca que estarás de hacer dos cosas a la vez.
Gracias a la función millis, en vez de esperar un tiempo sin hacer nada (sin modificar ningún parámetro), puedes contar el tiempo que está transcurriendo y ejecutar instrucciones en función de eso. La ventaja de este método es que mientras tu Arduino está contando internamente el tiempo que pasa, puede seguir ejecutando instrucciones.
Una respuesta a Razones Para No Usar La Función Delay En Arduino