Gestión de tiempo

      No hay comentarios en Gestión de tiempo

Resumen en vídeo de la primera parte

https://youtu.be/JIkj6dWG9js

Temporizadores

Existen diferentes opciones a la hora de gestionar el tiempo con Arduino. En el artículo Enviar datos al ordenador y bloque “Ejecutar cada” se muestra como usar el bloque Ejecutar cada para realizar operaciones cada cierto tiempo, y en el artículo Salidas digitales y bloque esperar, se explica el funcionamiento del bloque Esperar.

El mencionado bloque Esperar es ámpliamente utilizado en Arduino.  Lo que se hace al insertarlo, es dejar la placa en el estado en el que estaba justo antes de la espera, durante el tiempo que ésta dure. El problema de la función Esperar es que deja la placa bloqueada en el estado anterior durante ese tiempo de espera, es decir, no recibe ni envía nuevas órdenes en ese tiempo. Es por esto que hay que tener cuidado al utilizarlo. Si bien es verdad, que es muy fácil y cómodo de usar para infinidad de aplicaciones simples.

Otra forma mas profesional de gestionar tiempos es usar los bloques “Tiempo transcurrido” y “Cronómetro”, que se encuentran también en el apartado Tiempo. Para entender cómo funcionan, hay que conocer una particularidad de la gestión de tiempo en Arduino:

  • En el momento en el que se enciende la placa, se pone en marcha un temporizador interno que va contando los milisegundos que han pasado desde que la placa se encendió. Este temporizador se reinicia cuando llega a su máximo, que es de 4294967295 segundos,  lo que equivale a unos 50 días de funcionamiento ininterrumpido.

No hay problema en que este número se reinicie, nosotros vamos a usar la diferencia de tiempos, no el tiempo transcurrido desde el inicio de la placa.

El bloque Cronometro actúa precisamente como un cronómetro desde que se activa hasta que se resetea. 

Es importante destacar que el bloque Reiniciar el cronómetro vale tanto para reiniciarlo (como su nombre indica), como para ponerlo en marcha por primera vez.

EL bloque cronómetro se puede usar tanto con variables como directamente en comparadores, etc.:

Las función cronómetro explicada, se ha realizado utilizando la función “tiempo transcurrido”, que también se puede usar con el mismo objetivo, aunque el programa conlleva un poco mas de elaboración. La idea es, establecer una variable con un tiempo inicial, y luego, comparar ese valor con un nuevo tiempo transcurrido:

Tranquilos que es mas fácil de lo que parece. Vamos a ver el uso de cada alternativa mediante los siguientes ejemplos.

Programa: Comparación entre Esperar y Ejecutar cada

El bloque Esperar se puede utilizar también para las funciones de impresión vistas con el bloque Ejecutar cada, pero, teniendo en cuenta que ahora la placa queda bloqueada casi todo el tiempo.

Para ver este problema, se va a realizar el siguiente programa:

  • Se establece una condición para que mientras esté accionado el pulsador, se mantenga encendido el led conectado al puerto 4, y cuando no se esté accionando, permanezca apagado. Además, cada 4 segundos se va a imprimir la palabra “Imprimiendo”.
  • Esquema de conexión:

  • Versión del programa con la función Esperar:

Tras cargar el programa, trata de encender el led accionando el pulsador, verás que es muy complicado que se encienda. Esto es debido a que en los 4 segundos de espera, la placa no “escucha” nada, permanece bloqueada en el estado anterior, que era con el led apagado. Solo se encenderá o apagará el led en los instantes en los que imprime el dato en pantalla.

En este caso, cada ciclo dura un poco mas de 4 segundos (por la espera de 4 segundos), en lugar de durar las milésimas de segundo habituales. Por tanto, solo tienes una brevísima oportunidad cada 4 segundos de cambiar el estado de la salida.

  • Versión del programa con la función Ejecutar cada:

Con este programa comprueba que el led se puede activar y apagar en cualquier momento, independientemente de la impresión del dato en pantalla.

Resumen en vídeo de la segunda parte:

https://youtu.be/UnKSBp7cWrU

Programa: Apertura de puerta eléctrica

A continuación se muestra el programa de apertura de una puerta con abrepuertas eléctrico. Al accionar un pulsador conectado al pin 2 (solo con un pulso), el abrepuertas conectado al puerto 4 se encenderá y permanecerá abierto durante 4 segundos. Tras este tiempo, el puerto 4 se apaga y el abrepuertas se cierra.

El esquema de conexión es el mismo que el utilizado en el programa anterior, en el que el abrepuertas se simula con un led.

El mismo programa realizado con la función Esperar (para comparar), se muestra a continuación.

Finalmente, se incluye el mismo programa utilizando las funciones Tiempo transcurrido

Preguntas, sugerencias, propuestas…

Realiza cualquier cuestión, sugerencia o propuesta sobre el artículo o vídeo, en el foro del curso. Muchas gracias.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *