En el fascinante mundo de Arduino, medir el tiempo es una tarea fundamental. Ya sea para realizar acciones periódicas, controlar eventos o generar retardos precisos, contar con una forma confiable y precisa de medir el tiempo es esencial. En este artículo te enseñaremos cómo utilizar la función millis en Arduino para medir el tiempo de forma precisa y eficiente, sin depender de la función delay que podría afectar el rendimiento de tu proyecto. ¡Sigue leyendo para descubrir cómo se puede usar esta poderosa función y llevar tus proyectos al siguiente nivel!
¿Qué es la función millis en Arduino?
Millis es una función importante y versátil dentro del entorno de Arduino. Básicamente, nos permite medir el tiempo transcurrido desde que se enciende la placa Arduino en milisegundos (1 segundo = 1000 milisegundos). A diferencia de la función delay, la cual detiene la ejecución del programa por una cantidad determinada de tiempo, millis nos permite realizar otras tareas mientras estamos esperando que se cumpla un intervalo de tiempo específico.
Cuando utilizamos la función millis, no bloqueamos la ejecución del programa
Millis es una función importante y versátil dentro del entorno de Arduino. Básicamente, nos permite medir el tiempo transcurrido desde que se enciende la placa Arduino en milisegundos (1 segundo = 1000 milisegundos). A diferencia de la función delay, la cual detiene la ejecución del programa por una cantidad determinada de tiempo, millis nos permite realizar otras tareas mientras estamos esperando que se cumpla un intervalo de tiempo específico.
Cuando utilizamos la función millis, no bloqueamos la ejecución del programa, lo que nos da la posibilidad de realizar múltiples tareas y mantener nuestro proyecto reactivo y rápido.
Te recomendamos también
Controla el flujo con Arduino y un sensor de flujo ¡Aprende cómo hacerlo!Pasos para utilizar la función millis en Arduino
Paso 1: Incluir la biblioteca correspondiente
Para poder utilizar la función millis en Arduino, es necesario incluir la biblioteca Arduino.h. Esta biblioteca ya viene preinstalada en el entorno de desarrollo de Arduino, por lo que no debemos preocuparnos por descargarla o instalarla.
Para incluir la biblioteca, simplemente debemos agregar la siguiente línea de código al principio de nuestro programa:
#include <Arduino.h>
Paso 2: Declarar variables
Para poder utilizar la función millis correctamente, necesitamos declarar algunas variables en nuestro programa:
- unsigned long startTime: Esta variable almacenará el valor devuelto por la función millis al inicio de nuestro programa.
- unsigned long currentTime: Esta variable almacenará el valor devuelto por la función millis en cada iteración del bucle principal del programa.
- unsigned long elapsedTime: Esta variable almacenará la diferencia entre el valor actual de millis y el valor inicial (startTime).
Declaramos estas variables de la siguiente manera:
unsigned long startTime;
unsigned long currentTime;
unsigned long elapsedTime;
Paso 3: Inicializar la función millis
Antes de empezar a utilizar la función millis, necesitamos inicializarla en nuestro programa. Para ello, asignamos el valor actual de millis a la variable startTime en el inicio del programa:
Te recomendamos también
Controla el flujo con Arduino y un sensor de flujo ¡Aprende cómo hacerlo!
Dónde encontrar libros de Arduino Aprende programación y electrónicavoid setup() {
// Inicializamos la función millis
startTime = millis();
}
Paso 4: Utilizar la función millis para medir el tiempo
Una vez que hemos incluido la biblioteca, declarado nuestras variables y realizado la inicialización de la función millis, estamos listos para utilizarla para medir el tiempo en nuestro programa.
Podemos utilizar la función millis en diferentes aspectos de nuestro proyecto, como la generación de retardos precisos, el control de eventos o el parpadeo de LEDs, entre otros.
Usos avanzados de la función millis en Arduino
Usar la función millis para generar retardos con precisión
Uno de los usos más comunes de la función millis es generar retardos precisos en nuestros proyectos de Arduino. En lugar de utilizar la función delay, que bloquea la ejecución del programa, podemos utilizar la función millis para crear retardos sin detener nuestra aplicación.
A continuación, se muestra un ejemplo de cómo utilizar la función millis para generar un retardo de 3 segundos:
void loop() {
currentTime = millis();
elapsedTime = currentTime - startTime;
if (elapsedTime >= 3000) {
// Realizar la acción requerida después de 3 segundos
// Reiniciar el tiempo inicial
startTime = millis();
}
}
En este ejemplo, comparamos la diferencia entre el tiempo actual (currentTime) y el tiempo inicial (startTime) con el valor de retardo deseado (3000 milisegundos para 3 segundos). Cuando la diferencia supera o iguala el valor de retardo, realizamos la acción requerida y reiniciamos el tiempo inicial.
Te recomendamos también
Controla el flujo con Arduino y un sensor de flujo ¡Aprende cómo hacerlo!
Dónde encontrar libros de Arduino Aprende programación y electrónica
Domina la luz con Arduino: Cómo controlarla de forma eficiente ⚡Usar la función millis para cronometrar eventos
Otro uso interesante de la función millis es cronometrar eventos en nuestros proyectos de Arduino.
Veamos un ejemplo práctico. Supongamos que queremos activar un motor durante 5 segundos después de presionar un botón:
const int buttonPin = 2;
const int motorPin = 3;
void setup() {
pinMode(buttonPin, INPUT);
pinMode(motorPin, OUTPUT);
}
void loop() {
if (digitalRead(buttonPin) == HIGH) {
digitalWrite(motorPin, HIGH); // Activamos el motor
startTime = millis();
while (millis() - startTime <= 5000) {
// Esperamos 5 segundos
}
digitalWrite(motorPin, LOW); // Desactivamos el motor
}
}
En este caso, utilizamos la función millis dentro de un bucle while para esperar durante 5 segundos antes de desactivar el motor. La condición del bucle while (millis() – startTime <= 5000) nos permite esperar el tiempo necesario antes de continuar con el resto del programa.
Usar la función millis para controlar el parpadeo de LEDs
El parpadeo de LEDs es un ejemplo clásico en proyectos de Arduino, y con la función millis podemos lograr efectos de parpadeo más complejos y controlados.
A continuación, se muestra cómo utilizar la función millis para controlar el parpadeo de un LED en intervalos de 1 segundo:
Te recomendamos también
Controla el flujo con Arduino y un sensor de flujo ¡Aprende cómo hacerlo!
Dónde encontrar libros de Arduino Aprende programación y electrónica
Domina la luz con Arduino: Cómo controlarla de forma eficiente ⚡
Domina la conexión y uso de un módulo SD en Arduino Megaconst int ledPin = 13;
int ledState = LOW;
void setup() {
pinMode(ledPin, OUTPUT);
}
void loop() {
currentTime = millis();
elapsedTime = currentTime - startTime;
if (elapsedTime >= 1000) {
ledState = !ledState; // Cambiamos el estado del LED
digitalWrite(ledPin, ledState);
startTime = millis(); // Reiniciamos el tiempo inicial
}
}
En este ejemplo, cambiamos el estado del LED cada vez que el tiempo transcurrido (elapsedTime) es mayor o igual a 1 segundo. Para realizar este cambio, utilizamos el operador lógico NOT (!) para invertir el estado actual del LED (ledState) entre encendido y apagado.
Recursos adicionales
Si deseas profundizar en el uso de la función millis en Arduino, te recomendamos revisar los siguientes recursos:
- Documentación oficial de Arduino sobre la función millis
- Sitio web oficial de Arduino
- Tutorial en video: «Cómo utilizar la función millis en Arduino»
- Plataforma en línea Tinkercad para simular proyectos de Arduino
Conclusiones
La función millis es una poderosa herramienta que nos permite medir el tiempo de forma precisa y eficiente en proyectos de Arduino. Al utilizar esta función en lugar de delay, podemos mantener nuestras aplicaciones responsivas y evitar bloqueos innecesarios. Ya sea para generar retardos precisos, controlar eventos o controlar el parpadeo de LEDs, la función millis es una aliada indispensable en tu caja de herramientas de Arduino. ¡Así que empieza a experimentar y diviértete creando proyectos cada vez más impresionantes!
