Você está na página 1de 3

#include <Wire.

h> // incluye libreria para interfaz I2C

#include <RTClib.h> // incluye libreria para el manejo del modulo RTC

#include <Servo.h>

RTC_DS3231 rtc; // crea objeto del tipo RTC_DS3231

bool alarma = true; // variable de control con valor verdadero

int i;

Servo servo2;

void setup () {

servo2.attach(4); // se asigna el pin

Serial.begin(9600); // inicializa comunicacion serie a 9600 bps

if (! rtc.begin()) { // si falla la inicializacion del modulo

Serial.println("Modulo RTC no encontrado !"); // muestra mensaje de error

while (1); // bucle infinito que detiene ejecucion del programa

void loop () {

DateTime fecha = rtc.now(); // funcion que devuelve fecha y horario en formato

// DateTime y asigna a variable fecha

if ( fecha.hour() == 1 && fecha.minute() == 18 ){ // si hora = 14 y minutos = 30

if ( alarma == true ){

// si alarma tiene un valor verdadero

Serial.println( "Alarma" ); // imprime en monitor serie texto Alarma


for(i=0;i<=180;i++)

servo2.write(i);//se le colca la posición entre 0 y180 grados

delay(5);

delay(1000);

for(i=180;i>0;i--)

servo2.write(i);//se le colca la posición entre 0 y180 grados

delay(5);

delay(1000);

alarma = false; // carga valor falso en variable de control

} // para evitar ingresar mas de una vez

Serial.print(fecha.day()); // funcion que obtiene el dia de la fecha completa

Serial.print("/"); // caracter barra como separador

Serial.print(fecha.month()); // funcion que obtiene el mes de la fecha completa

Serial.print("/"); // caracter barra como separador

Serial.print(fecha.year()); // funcion que obtiene el año de la fecha completa

Serial.print(" "); // caracter espacio en blanco como separador

Serial.print(fecha.hour()); // funcion que obtiene la hora de la fecha completa

Serial.print(":"); // caracter dos puntos como separador

Serial.print(fecha.minute()); // funcion que obtiene los minutos de la fecha completa

Serial.print(":"); // caracter dos puntos como separador

Serial.println(fecha.second()); // funcion que obtiene los segundos de la fecha completa


delay(1000); // demora de 1 segundo

if ( fecha.hour() == 2 && fecha.minute() == 0 ) // si hora = 2 y minutos = 0 restablece valor de

alarma = true; // variable de control en verdadero

Você também pode gostar