Mi Arduino

Menu
  • Inicio
  • Categorías
    • Características de los Arduinos
    • General
    • Programación para Arduinos
    • Tutoriales de uso de los Arduinos
  • Legales y Contacto
    • Política de Privacidad y Condiciones de Uso
    • Contacto
    • Política de Cookies
    • Acerca de Nosotros
Home
General
⏱️ Domina Arduino con millis: Mide el tiempo como un experto
General

⏱️ Domina Arduino con millis: Mide el tiempo como un experto

Desiree K. Aguero 7 de noviembre de 2023

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!

índice de Contenidos

Toggle
  • ¿Qué es la función millis en Arduino?
  • Pasos para utilizar la función millis en Arduino
    • Paso 1: Incluir la biblioteca correspondiente
    • Paso 2: Declarar variables
    • Paso 3: Inicializar la función millis
    • Paso 4: Utilizar la función millis para medir el tiempo
  • Usos avanzados de la función millis en Arduino
    • Usar la función millis para generar retardos con precisión
    • Usar la función millis para cronometrar eventos
    • Usar la función millis para controlar el parpadeo de LEDs
  • Recursos adicionales
  • Conclusiones

¿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!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!Controla el flujo con Arduino y un sensor de flujo ¡Aprende cómo hacerlo!
Te recomendamos también Dónde encontrar libros de Arduino   Aprende programación y electrónicaDónde encontrar libros de Arduino Aprende programación y electrónica
void 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!Controla el flujo con Arduino y un sensor de flujo ¡Aprende cómo hacerlo!
Te recomendamos también Dónde encontrar libros de Arduino   Aprende programación y electrónicaDónde encontrar libros de Arduino Aprende programación y electrónica
Te recomendamos también Domina la luz con Arduino: Cómo controlarla de forma eficiente ⚡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!Controla el flujo con Arduino y un sensor de flujo ¡Aprende cómo hacerlo!
Te recomendamos también Dónde encontrar libros de Arduino   Aprende programación y electrónicaDónde encontrar libros de Arduino Aprende programación y electrónica
Te recomendamos también Domina la luz con Arduino: Cómo controlarla de forma eficiente ⚡Domina la luz con Arduino: Cómo controlarla de forma eficiente ⚡
Te recomendamos también Domina la conexión y uso de un módulo SD en Arduino MegaDomina la conexión y uso de un módulo SD en Arduino Mega
const 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!

Share
Tweet
Email
Prev Article
Next Article

Related Articles

Construye tu propio semáforo inteligente con Arduino
¿Qué es un semáforo inteligente? Un semáforo inteligente es un …

Construye tu propio semáforo inteligente con Arduino

Guía completa: uso del dato float en Arduino
En la programación de Arduino, el tipo de dato float …

Guía completa: uso del dato float en Arduino

About The Author

Desiree K. Aguero

¡Hola! Soy Desiree Aguero, estudiante de Ingeniería y apasionada del mundo de la tecnología. En este blog, comparto mi amor por Arduino y la electrónica, explorando proyectos innovadores y soluciones creativas. Mi objetivo es hacer que la tecnología sea accesible para todos, proporcionando tutoriales detallados y recursos útiles. Únete a mí en este emocionante viaje de aprendizaje y descubrimiento. ¡Juntos, haremos grandes cosas con Arduino!

Leave a Reply

Lo siento, debes estar conectado para publicar un comentario.

Mi Arduino

Todo Referente a los Arduinos
Copyright © 2026 Mi Arduino
Todos Los Derechos Reservados
Gestionar consentimiento
Para ofrecer las mejores experiencias, utilizamos tecnologías como las cookies para almacenar y/o acceder a la información del dispositivo. El consentimiento de estas tecnologías nos permitirá procesar datos como el comportamiento de navegación o las identificaciones únicas en este sitio. No consentir o retirar el consentimiento, puede afectar negativamente a ciertas características y funciones.
Funcional Siempre activo
El almacenamiento o acceso técnico es estrictamente necesario para el propósito legítimo de permitir el uso de un servicio específico explícitamente solicitado por el abonado o usuario, o con el único propósito de llevar a cabo la transmisión de una comunicación a través de una red de comunicaciones electrónicas.
Preferencias
El almacenamiento o acceso técnico es necesario para la finalidad legítima de almacenar preferencias no solicitadas por el abonado o usuario.
Estadísticas
El almacenamiento o acceso técnico que es utilizado exclusivamente con fines estadísticos. El almacenamiento o acceso técnico que se utiliza exclusivamente con fines estadísticos anónimos. Sin un requerimiento, el cumplimiento voluntario por parte de tu proveedor de servicios de Internet, o los registros adicionales de un tercero, la información almacenada o recuperada sólo para este propósito no se puede utilizar para identificarte.
Marketing
El almacenamiento o acceso técnico es necesario para crear perfiles de usuario para enviar publicidad, o para rastrear al usuario en una web o en varias web con fines de marketing similares.
  • Administrar opciones
  • Gestionar los servicios
  • Gestionar {vendor_count} proveedores
  • Leer más sobre estos propósitos
Ver preferencias
  • {title}
  • {title}
  • {title}