Arduino ¿Usar delays o evitarlos?

Últimamente he visto mucha confusión sobre lo que hace realmente la función delay(ms)[1] de arduino, y he recibido muchas preguntas sobre si debe usarse o no en ciertas ocasiones. En este tema intentaré despejar todas estas dudas.

¿Debo usar la función delay en mi código?

La respuesta a esta pregunta es: depende. Esta función esta definida en la librería estándar de arduino y lo que hace es bloquear el bucle principal de ejecución del programa. A mayores esta función devuelve el control al planificador de tareas, pero si no estar usando el planificador o no sabes lo que es puedes obviar esta parte.

Para verlo más claro vamos a analizar la definición de la función que se encuentra Sigue leyendo