Diferencia entre revisiones de «TimeAlarms»

De ArduWiki
Saltar a: navegación, buscar
(Funciones de bajo nivel)
(Comentarios)
Línea 75: Línea 75:
  
 
== Comentarios ==
 
== Comentarios ==
 +
* Esta libreria requiere de la liberia [[Time]]
 +
* Los intervalos a programar pueden ir desde 1 segundo hasta años.
  
 
== Advertencias ==
 
== Advertencias ==

Revisión del 18:11 15 jul 2019

Descripción

TimeAlarm es una libreria de Paul Stoffregen y es un complemento de la libreria Time para realizar tareas a intervalos especificos.

Tipos de tareas

Existen dos tipos de tareas que se pueden crear para que se repitan continuamente o para que se realicen una sola vez.

Alarmas
Las tareas programadas a una hora particular del día.
Temporizadores
Las tareas programadas una vez transcurrido un intervalo de tiempo.

Sintaxis

#include <Time.h>
#include <TimeAlarms.h>
setTime(hh,mm,ss,d,m,a);

Alarm.alarmRepeat([dia,]hh,mm,ss, funcion1);
Alarm.alarmRepeat(valor, funcion2);
Alarm.alarmOnce([dia,]hh,mm,ss, funcion3);
Alarm.alarmOnce(valor, funcion4);
Alarm.timerRepeat(hh,mm,ss, funcion5);
Alarm.timerRepeat(valor, funcion6);
Alarm.timerOnce(hh,mm,ss, funcion7);
Alarm.timerOnce(valor, funcion8);
Alarma.triggerOnce(valor, funcion9);
Alarm.delay(ms);

Parámetros

dia
Dia de la semana. dowMonday, dowSaturday.
hh
Hora
mm
Minutos
ss
Segundos
ms
Milisegundos
valor
Valor de tiempo tipo time_t
Funcion
Nombre de la función que se invoca al cumplirse el tiempo

Métodos

Metodos de libreria TimeAlarm
Método Descripción
Alarm.alarmRepeat([dia,]hh,mm,ss, AlarmFunction); Alarma continua todos los dias
Alarm.alarmOnce([dia,]hh,mm,ss, AlarmFunction); Alarma que se activa la proxima ves que ocurra.
Alarm.triggerOnce(value, AlarmFunction); Una sola alarma determinada por valor time_t
Alarm.timerRepeat(hh,mm,ss, TimerFunction); Llama continuamente a TimerFunction
Alarm.timerOnce(hh,mm,ss, TimerFunction); Llama una sola vez a TimerFunction
Alarm.delay(periodo) Similar de delay() de Arduino, periodo dedo en milisegundos.

Funciones de bajo nivel

Metodos de libreria TimeAlarm
Método Descripción
disable(ID); evitar que la alarma asociada con la ID dada se dispare.
enable(ID); habilita la alarma con el ID dado.
write(ID, valor); Sobreescribe la alarma ID con el valor
read(ID); Lee la alarma ID
readType(ID); Retorna el tipo de alarma
getTriggeredAlarmId(); Retorna el ID de la alarma activa.

Comentarios

  • Esta libreria requiere de la liberia Time
  • Los intervalos a programar pueden ir desde 1 segundo hasta años.

Advertencias

Ejemplo

#include <Time.h>
#include <TimeAlarms.h>

void setup(){
   Serial.begin(9600);
   setTime(8,29,0,1,7,19);     //Poner tiempo a las 8:29:00 am del -JUL-2019
   Alarm.alarmRepeat(8,30,0, MorningAlarm);   //Todos los dias a las 8:30
   Alarm.alarmRepeat(17,45,0, EveningAlarm);  //Todos los dias a las 5:45pm
   Alarm.alarmRepeat(dowSaturday,8,30,30, WeeklyAlarm);  //Cada sabado a las 8:30:30am
   Alarm.timerRepeat(15, Repeats);            //Cada 15 segundos
   Alarm.timerOnce(10, OnceOnly);             //Dentro de 10 segundos
}

void  loop(){  
   relog();
   Alarm.delay(1000);          //Espera 1 segundo
}

// functions to be called when an alarm triggers:
void MorningAlarm(){
   Serial.println("Alarma: apaga luces");    
}

void EveningAlarm(){
   Serial.println("Alarma: prende luces");           
}

void WeeklyAlarm(){
   Serial.println("Alarma: Es lunes temprano");
}

void ExplicitAlarm(){
   Serial.println("Alarma: - this triggers only at the given date and time");       
}

void Repeats(){
   Serial.println("Temporizador: cada 15 segundos.");         
}

void OnceOnly(){
   Serial.println("Temporizador: solo una vez.");  
}

void relog(){
   if (hour() < 10){
      Serial.print('0');
   }
   Serial.print(hour());
   Serial.print(':');
   if (minute() < 10){
      Serial.print('0');
   }
   Serial.print(minute());
   Serial.print(':');
   if (second() < 10){
      Serial.print('0');
   }
   printDigits();
   Serial.println(second()); 
}

Vea también


Referencias externas

Cotegory:Librerias