ejecutar varias ordenes en el void loop

Buenos días!!! Estimados este es mi primer foro y por ende mi primer consulta, espero pueda encontrar un respuesta a mi duda. Estoy armando un proyecto con un sensor ultrasonico y un sensor DHT11 y quiero que ambos se sensores se ejecuten en tiempos diferentes por ejemplo quiero que el sensor ultasonico haga una lectura o emita una señal cada 3 segundo y el sensor DHT11 haga una lectura cada 5 minutos si los ejecuto en el void loop de forma normal el sensor ultrasonico emite una señal espera 3 segundo y hace la lectura del sensor dht11 espera 5 minutos y vuelve a leer el sensor ultrasonido y lo que yo quiero es que uno se este ejecutando cada 3 seg y el otro cada 5 minutos como hago o que sentencias tengo que usar.
desde ya muchas gracias!!!

Hola, bienvenido!! :wink: Lo que quieres hacer se puede hacer perfectamente. Para ello tendrás que usar el comando millis() y luego "jugar" con los tiempos. Millis() es un contador de tiempo que empieza cuando la placa arranca y se reinicia cuando el tipo de variable usada se desborda, es decir, cuando llega a su límite.

Te dejo un enlace a un hilo recopilatorio de tutoriales en los que hay información e ideas de cómo usar esta función. Básicamente, el planteamiento sería el siguiente:

-Cuenta el tiempo con millis() expresado en milisegundos
-Almacena el tiempo actual de millis() en una variable y súmale 3s
-Cuando millis() llegue a ese tiempo almacenado en la variable, ejecutas la orden de leer el sensor

Aplicable tanto a los tres segundos como a los cinco minutos

NOTA: Para estos tiempos tan largos, aunque la gente tiende a usar el comando delay(), no es recomendable usarlo, ya que pausas el programa completo y un delay de cinco minutos para un sensor, hace que no pueda funcionar el sensor de los tres segundos. Delay se puede usar para pausar un programa unos milisegundos en concreto o para algo especial, pero para varios segundos y con más tareas por hacer, ya hay que usar millis() aunque sea un poco más complejo. :wink:

Listado de tutoriales y ejemplos

comando millis()

millis() no es un comando, es una función.

En la sección Documentación => Indice de temas tutoriales => millis()

hay buenos tutoriales con cosas similares a las que buscas.