Está en la página 1de 2

FUNCIONES DE GESTIÓN DE TIEMPO

Estas funciones no pertenecen a ningún objeto (no son funciones miembro), así que se
escriben directamente.

millis(): devuelve el número de milisegundos (ms) desde que la placa Arduino empezó a
ejecutar el sketch actual. Este número se reseteará a cero aproximadamente después de
50 días (cuando su valor supere el máximo permitido por su tipo, que es “unsigned long”).
No tiene parámetros.

micros(): devuelve el número de microsegundos (µs) desde que la placa Arduino empezó a
ejecutar el sketch actual. Este número –de tipo “unsigned long” – se reseteará a cero
aproximadamente después de 70 minutos. Esta instrucción tiene una resolución de 4 µs
(es decir, que el valor retornado es siempre un múltiplo de cuatro). Recordar que 1000 µs
es un milisegundo y por tanto, 1000000 µs es un segundo. No tiene parámetros.

delay(): pausa el sketch durante la cantidad de milisegundos especificados como


parámetro –de tipo “unsigned long”–. No tiene valor de retorno.

delayMicroseconds(): pausa el sketch durante la cantidad de microsegundos especificados


como parámetros –de tipo “unsigned long”–. Actualmente el máximo valore que se puede
utilizar con precisión es de 16383. Para esperas mayores a esta, se recomienda usar la
función delay(). El mínimo valor que se puede utilizar con precisión es de 3 µs. No tiene
valor de retorno.

Ejemplo 1: Un código sencillo de alguna de las funciones anteriores es este.

unsigned long tiempo;


void setup(){
Serial.begin(9600);
}

void loop(){
tiempo = micros();
Serial.println(tiempo);
delay(1000);
}

Si se ejecuta el código anterior se puede ver por el “Serial monitor” cómo va aumentando
el tiempo que pasa desde que se puso en marcha el sketch. El valor observado va aumentando
aproximadamente un segundo cada vez.
Ejemplo 2: Otro código ilustrativo es el siguiente.

unsigned long inicio, fin, transcurrido;


void setup(){
Serial.begin(9600);
}

void loop(){
inicio = millis();
delay(1000);
fin = millis();
transcurrido = fin - inicio;
Serial.println(transcurrido);
delay(500);
}

En el código anterior se puede ver una manera de contar el tiempo transcurrido entre dos
momentos determinados. El procedimiento es guardar en una variable el valor devuelto por millis()
en el momento inicial, y guardar en otra variable diferente el valor devuelto por millis() en el
momento final, para seguidamente restar uno del otro y averiguar así el lapso de tiempo
transcurrido (que en el ejemplo debería de ser aproximadamente un segundo). Este cálculo en el
código anterior se realiza cada medio segundo.

También podría gustarte