Sei sulla pagina 1di 5

Conozcamos la librera Time.

La librera Time la desarrollo Arduino, aunque no viene por defecto en el ide de


Arduino. Para usarla solo hay que instalarla segn el procedimiento normal de
instalacin de libraras.

En esta librera lo primero que se hace es declarar un tipo especial de variable


llamada time_t de 32 bits. Esta variable es la responsable de que todo funcione.

El principio fundamental de funcionamiento de esta librera es que la variable


time_t almacena en un formato especial los segundos transcurridos desde el 1 de
enero de 1970 hasta hoy. Este mtodo es el mismo que usa sistemas operativos
basados en Linux.

Las conversiones son automaticas, por lo que no hay que complicarse haciendo
calculos largos y complejos.

La ventaja principal de manejar esta librera es que al convertir la fecha y lahora


en un numero de segundos, podemos operar libremente con este nmero, resta o
sumando fechas y horas y el resusltado seguira siendo una fecha y una hora.
El principal inconveniete es que no podemos trabajar con fecha anteriores al 1 de
enero de 1970.

Para empezar a manejar la librera el primer paso es insertar la fecha desde la que
queremos empezar a contar, esto lo hacemos con la siguiente funcin:

//Formato: hora, minutos, segundos, das, mes, ao


setTime(19,28,50,20,10,2015);

A continuacin declaramos la variable time_t T y la igualamos a la funcin now().


Esta funcin contiene la fecha que antes insertamos.

time_t t = now();//Declaramos la variable time_t t


Prcticas con la librera.
Esta es la parte que nos gusta a todos, la parte de experimetar.
El siguiente cdigo representa la fecha y la hora en el monitor serial.

#include <Time.h>//Incluimos la librera Time

void setup()
{
Serial.begin(115200);//Inicializamos el puerto serie.
//Anotamos la hora y la fecha desde la que nuestro programa empezar a contar.
//Formato: hora, minutos, segundos, das, mes, ao
setTime(19,28,50,20,10,2015);
}
void loop()
{
time_t t = now();//Declaramos la variable time_t t

//Imprimimos la fecha y lahora


Serial.print(day(t));
Serial.print(+ "/") ;
Serial.print(month(t));
Serial.print(+ "/") ;
Serial.print(year(t));
Serial.print( " ") ;
Serial.print(hour(t));
Serial.print(+ ":") ;
Serial.print(minute(t));
Serial.print(":") ;
Serial.println(second(t));
delay(1000);//Esperamos 1 segundo

En la imagen de abajo se observa como la hora aumenta segundo a segundo


desde la fecha de inicio que le marcamos.
Una prueba que podeis hacer es comprobar como al aumentar el tiempo de delay,
el reloj sigue contando correctamente los segundos, aunque no los representa
todos.

#include <Time.h>//Incluimos la librera Time

void setup()
{
Serial.begin(115200);//Inicializamos el puerto serie.
//Anotamos la hora y la fecha desde la que nuestro programa empezar a contar.
//Formato: hora, minutos, segundos, das, mes, ao
setTime(19,28,50,20,10,2015);
}
void loop()
{
time_t t = now();//Declaramos la variable time_t t

//Imprimimos la fecha y la hora


Serial.print(day(t));
Serial.print(+ "/") ;
Serial.print(month(t));
Serial.print(+ "/") ;
Serial.print(year(t));
Serial.print( " ") ;
Serial.print(hour(t));
Serial.print(+ ":") ;
Serial.print(minute(t));
Serial.print(":") ;
Serial.println(second(t));
delay(3000);//Esperamos 3 segundos

En la siguiente captura de pantalla del monitor serial se puede ver como el reloj sigue pasando
corrctamente aunque el delay aumente.
Por ltimo programaremos una alarma a una hora concreta y con una duracin de
un minuto.

#include <Time.h>//Incluimos la librera Time

void setup()
{
Serial.begin(115200);//Inicializamos el puerto serie.
//Anotamos la hora y la fecha desde la que nuestro programa empezar a contar.
//Formato: hora, minutos, segundos, das, mes, ao
setTime(19,28,50,20,10,2015);
}
void loop()
{
time_t t = now();//Declaramos la variable time_t t

//Imprimimos la fecha y lahora


Serial.print(day(t));
Serial.print(+ "/") ;
Serial.print(month(t));
Serial.print(+ "/") ;
Serial.print(year(t));
Serial.print( " ") ;
Serial.print(hour(t));
Serial.print(+ ":") ;
Serial.print(minute(t));
Serial.print(":") ;
Serial.println(second(t));
delay(1000);//Esperamos 1 segundo

//Programamos la hora a la que la alarma se activar en este caso 19:30


if(hour(t)==19 && minute(t)==30)
{
Serial.println("Alarma") ;
}

En la siguiente imagen vemos como la alarma se activa en la hora programada.


En nuestro caso hemos representado la palabra alarma en el monitor serial
cuando ha llegado a la hora programada, pero al igual que representamos esta
palabra, podramos haber activado una salida digital para activar algun tipo de
zumbador o led.

Potrebbero piacerti anche