Diferencia entre revisiones de «TimeAlarms»
De ArduWiki
(→Tipos de tareas) |
(→Referencias externas) |
||
(No se muestran 20 ediciones intermedias del mismo usuario) | |||
Línea 1: | Línea 1: | ||
== Descripción == | == Descripción == | ||
[https://github.com/PaulStoffregen/TimeAlarms TimeAlarm] es una libreria de Paul Stoffregen y es un complemento de la libreria Time para realizar tareas a intervalos especificos. | [https://github.com/PaulStoffregen/TimeAlarms TimeAlarm] es una libreria de Paul Stoffregen y es un complemento de la libreria Time para realizar tareas a intervalos especificos. | ||
+ | |||
+ | {{Tip|Los intervalos a programar pueden ir desde 1 segundo hasta años. Para intervalor mas cortos vea la libreria [http://www.arduino.cc/playground/Code/TimedAction TimedAction] de Alexander Brevig.}} | ||
== Tipos de tareas == | == Tipos de tareas == | ||
Línea 10: | Línea 12: | ||
== Sintaxis == | == Sintaxis == | ||
<pre> | <pre> | ||
− | Alarm.alarmRepeat ( | + | #include <Time.h> |
− | Alarm.alarmRepeat ( | + | #include <TimeAlarms.h> |
− | Alarm.alarmOnce ( | + | setTime(hh,mm,ss,d,m,a); |
− | Alarm.timerRepeat ( | + | |
− | Alarm.timerOnce ( | + | Alarm.alarmRepeat([dia,]hh,mm,ss, funcion1); |
− | Alarma.triggerOnce ( | + | Alarm.alarmRepeat(valor, funcion2); |
− | Alarm.delay ( | + | 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); | ||
</pre> | </pre> | ||
+ | |||
+ | == 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 | ||
+ | |||
+ | == Retorno == | ||
+ | Lo que hace cada una de estos métodos es activar la función asociada. | ||
+ | |||
+ | == Métodos == | ||
+ | {| class="wikitable" | ||
+ | |+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 == | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |+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 == | == Comentarios == | ||
+ | * Esta libreria requiere de la liberia [[Time]] | ||
+ | * Los intervalos a programar pueden ir desde 1 segundo hasta años. | ||
== Advertencias == | == Advertencias == | ||
Línea 31: | Línea 93: | ||
void setup(){ | void setup(){ | ||
Serial.begin(9600); | Serial.begin(9600); | ||
− | setTime(8,29,0,1, | + | 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(8,30,0, MorningAlarm); | + | Alarm.alarmRepeat(17,45,0, EveningAlarm); //Todos los dias a las 5:45pm |
− | Alarm.alarmRepeat(17,45,0,EveningAlarm); // 5:45pm | + | Alarm.alarmRepeat(dowSaturday,8,30,30, WeeklyAlarm); //Cada sabado a las 8:30:30am |
− | Alarm.alarmRepeat(dowSaturday,8,30,30,WeeklyAlarm); // 8:30: | + | Alarm.timerRepeat(15, Repeats); //Cada 15 segundos |
− | Alarm.timerRepeat(15, Repeats); // | + | Alarm.timerOnce(10, OnceOnly); //Dentro de 10 segundos |
− | Alarm.timerOnce(10, OnceOnly); // | ||
} | } | ||
void loop(){ | void loop(){ | ||
− | + | relog(); | |
− | Alarm.delay(1000); // | + | 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(" | + | Serial.println("Alarma: apaga luces"); |
} | } | ||
void EveningAlarm(){ | void EveningAlarm(){ | ||
− | Serial.println(" | + | Serial.println("Alarma: prende luces"); |
} | } | ||
void WeeklyAlarm(){ | void WeeklyAlarm(){ | ||
− | Serial.println(" | + | Serial.println("Alarma: Es lunes temprano"); |
} | } | ||
void ExplicitAlarm(){ | void ExplicitAlarm(){ | ||
− | Serial.println(" | + | Serial.println("Alarma: - this triggers only at the given date and time"); |
} | } | ||
void Repeats(){ | void Repeats(){ | ||
− | Serial.println("15 | + | Serial.println("Temporizador: cada 15 segundos."); |
} | } | ||
void OnceOnly(){ | void OnceOnly(){ | ||
− | Serial.println(" | + | Serial.println("Temporizador: solo una vez."); |
} | } | ||
− | void | + | void relog(){ |
− | + | if (hour() < 10){ | |
+ | Serial.print('0'); | ||
+ | } | ||
Serial.print(hour()); | Serial.print(hour()); | ||
− | + | Serial.print(':'); | |
− | + | if (minute() < 10){ | |
− | + | Serial.print('0'); | |
− | } | + | } |
− | + | Serial.print(minute()); | |
− | + | Serial.print(':'); | |
− | Serial.print( | + | if (second() < 10){ |
− | if ( | ||
Serial.print('0'); | Serial.print('0'); | ||
} | } | ||
− | Serial. | + | printDigits(); |
+ | Serial.println(second()); | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Línea 91: | Línea 154: | ||
== Referencias externas == | == Referencias externas == | ||
− | [[ | + | * [https://www.arduinolibraries.info/libraries All Libraries] |
+ | * [http://playground.arduino.cc/code/time Time] de Paul Stoffregen | ||
+ | * [https://github.com/PaulStoffregen/TimeAlarms TimeAlarms] de Paul Stoffregen | ||
+ | * [https://github.com/PaulStoffregen/TimerOne TimerOne] de Paul Stoffregen | ||
+ | * [http://www.arduino.cc/playground/Code/TimedAction TimedAction] de Alexander Brevig | ||
+ | |||
+ | [[Category:Librerias]] | ||
+ | [[Category:Libreria Time]] |
Revisión actual del 22:22 15 jul 2019
Contenido
Descripción
TimeAlarm es una libreria de Paul Stoffregen y es un complemento de la libreria Time para realizar tareas a intervalos especificos.
Tip: Los intervalos a programar pueden ir desde 1 segundo hasta años. Para intervalor mas cortos vea la libreria TimedAction de Alexander Brevig.
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
Retorno
Lo que hace cada una de estos métodos es activar la función asociada.
Métodos
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
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
- All Libraries
- Time de Paul Stoffregen
- TimeAlarms de Paul Stoffregen
- TimerOne de Paul Stoffregen
- TimedAction de Alexander Brevig