Diferencia entre revisiones de «TimeAlarms»
De ArduWiki
(→Sintaxis) |
(→Ejemplo) |
||
Línea 79: | Línea 79: | ||
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> |
Revisión del 21:49 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.
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
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); | 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