TimeAlarms

De ArduWiki
Revisión del 21:49 15 jul 2019 de Kike GL (Discusión | contribuciones) (Ejemplo)

Saltar a: navegación, buscar

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

Alarm.alarmRepeat (8,30,0, MorningAlarm);  //Todos los dias a las 8:30 am
Alarm.alarmRepeat (dowMonday, 9,15,0, MondayMorningAlarm);  //Los lunes a las 9:15
Alarm.alarmOnce (8,30,0, MorningAlarm);  //Una sola vez mañana a las 8:30
Alarm.timerRepeat (15, Repeats);    //Tarea del temporizador cada 15 segundos
Alarm.timerOnce (10, OnceOnly);          //Llama una vez después de 10 segundos
Alarma.triggerOnce (time_t value, explicitAlarm); // valor especifica una fecha y hora
Alarm.delay (periodo);                   //Similar a Arduino delay()

Parametros

dia
Dia de la semana
hh
Hora
mm
Minutos
ss
Segundos
ms
Milisegundos
valor
Valor de tiempo tipo time_t
Tipo
Puede ser AlarmFunction o TimerFunction.

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); Ejemplo
enable(ID); Ejemplo
write(ID, value); Ejemplo
read(ID); Ejemplo
readType(ID); Ejemplo
getTriggeredAlarmId(); Ejemplo

Comentarios

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