Diferencia entre revisiones de «TimeAlarms»

De ArduWiki
Saltar a: navegación, buscar
(Sintaxis)
(Ejemplo)
Línea 79: Línea 79:
 
void setup(){
 
void setup(){
 
   Serial.begin(9600);
 
   Serial.begin(9600);
   setTime(8,29,0,1,1,11); // set time to Saturday 8:29:00am Jan 1 2011
+
   setTime(8,29,0,1,7,19);     //Poner tiempo a las 8:29:00 am del -JUL-2019
  // create the alarms
+
   Alarm.alarmRepeat(8,30,0, MorningAlarm);   //Todos los dias a las 8:30
   Alarm.alarmRepeat(8,30,0, MorningAlarm); // 8:30am every day
+
   Alarm.alarmRepeat(17,45,0, EveningAlarm);  //Todos los dias a las 5:45pm
   Alarm.alarmRepeat(17,45,0,EveningAlarm);  // 5:45pm every day
+
   Alarm.alarmRepeat(dowSaturday,8,30,30, WeeklyAlarm);  //Cada sabado a las 8:30:30am
   Alarm.alarmRepeat(dowSaturday,8,30,30,WeeklyAlarm);  // 8:30:30 every Saturday
+
   Alarm.timerRepeat(15, Repeats);            //Cada 15 segundos
   Alarm.timerRepeat(15, Repeats);            // timer for every 15 seconds   
+
   Alarm.timerOnce(10, OnceOnly);            //Dentro de 10 segundos
   Alarm.timerOnce(10, OnceOnly);            // called once after 10 seconds
 
 
}
 
}
  
 
void  loop(){   
 
void  loop(){   
   digitalClockDisplay();
+
   relog();
   Alarm.delay(1000);          // wait one second between clock display
+
   Alarm.delay(1000);          //Espera 1 segundo
 
}
 
}
  
 
// functions to be called when an alarm triggers:
 
// functions to be called when an alarm triggers:
 
void MorningAlarm(){
 
void MorningAlarm(){
   Serial.println("Alarm: - turn lights off");     
+
   Serial.println("Alarma: apaga luces");     
 
}
 
}
  
 
void EveningAlarm(){
 
void EveningAlarm(){
   Serial.println("Alarm: - turn lights on");           
+
   Serial.println("Alarma: prende luces");           
 
}
 
}
  
 
void WeeklyAlarm(){
 
void WeeklyAlarm(){
   Serial.println("Alarm: - its Monday Morning");    
+
   Serial.println("Alarma: Es lunes temprano");
 
}
 
}
  
 
void ExplicitAlarm(){
 
void ExplicitAlarm(){
   Serial.println("Alarm: - this triggers only at the given date and time");       
+
   Serial.println("Alarma: - this triggers only at the given date and time");       
 
}
 
}
  
 
void Repeats(){
 
void Repeats(){
   Serial.println("15 second timer");         
+
   Serial.println("Temporizador: cada 15 segundos.");         
 
}
 
}
  
 
void OnceOnly(){
 
void OnceOnly(){
   Serial.println("This timer only triggers once");   
+
   Serial.println("Temporizador: solo una vez.");   
 
}
 
}
  
void digitalClockDisplay(){
+
void relog(){
   //digital clock display of the time
+
   if (hour() < 10){
 +
      Serial.print('0');
 +
  }
 
   Serial.print(hour());
 
   Serial.print(hour());
   printDigits(minute());
+
   Serial.print(':');
   printDigits(second());
+
   if (minute() < 10){
  Serial.println();  
+
      Serial.print('0');
}
+
  }
 
+
  Serial.print(minute());
void printDigits(int digits){
+
   Serial.print(':');
   Serial.print(":");
+
   if (second() < 10){
   if (digits < 10){
 
 
       Serial.print('0');
 
       Serial.print('0');
 
   }
 
   }
   Serial.print(digits);
+
  printDigits();
 +
   Serial.println(second());  
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>

Revisión del 17:49 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

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