Timbre Programable Automático - Arduino UNO - DS3231 - la floresta

#include <DS3231.h> // libreria con las funciones del modulo reloj DS3231
#include <Wire.h> // libreria con la funciones del puerto de comunicaciones I2c
 
DS3231 Clock; 
 
byte year, month, date, DoW, hour, minute, second;
 
void setup() {
  // Se inicial la interfaz I2c
  Wire.begin();
  // Se inicia la Comunicación Serial
  Serial.begin(9600);
  // inicializar pin digital 13 (led), y 4(buzzer - en el futuro aca va un rele) como Salida.
  pinMode(13, OUTPUT);
  //pinMode(4, OUTPUT);
  pinMode(2, OUTPUT); //aca va enchufado el rele

  //Se establece el modo horario en 12 horas (false = 24h)
  //Clock.setClockMode(false); 
  //Se establece el año
  //Clock.setYear((byte)(17));
  //Mes
  //Clock.setMonth((byte)9);
  //Dia de la semana (el día de la semana 1 corresponde al lunes, 2 martes 3 miercoles 4 jueves 5 viernes 6 sabado 7 domingo)
  //Clock.setDoW((byte)2); 
  //Día
  //Clock.setDate((byte)12);
  //Hora
  //Clock.setHour((byte)10);
  //Minutos
  //Clock.setMinute((byte)20);
  //Segundos
  //Clock.setSecond((byte)0);
}
 
void loop() {
 
  delay(1000); //esperar 1 segundo
  //Se obtiene la información del reloj
  Clock.getTime(year, month, date, DoW, hour, minute, second);
  //Se imprime en monitor serie
  Serial.print(date, DEC);
  Serial.print("/");
  Serial.print(month, DEC);
  Serial.print("/");
  Serial.print(year, DEC);
  Serial.print("  ");
  Serial.print(hour, DEC);
  Serial.print(":");
  Serial.print(minute, DEC);
  Serial.print(":");
  Serial.println(second, DEC);
  Serial.print("--");
  Serial.println(DoW, DEC);
  
  digitalWrite(2, HIGH);  // apagar rele
 //configuracion de timbres horario turno matutino
 if (DoW!=6 || DoW!=7){ //comprobamos si el dia de la semana es diferente a sabado o domingo
  if (hour==7 && minute==45 && second==0 || hour==9 && minute==10 && second==0 || hour==9 && minute==20 && second==0 || hour==10 && minute==05 && second==0 
  || hour==10 && minute==10 && second==0 || hour==10 && minute==55 && second==0 || hour==11 && minute==0 && second==0 || hour==11 && minute==45 && second==0
  || hour==11 && minute==50 && second==0 || hour==13 && minute==20 && second==0 || hour==13 && minute==25 && second==0 || hour==14 && minute==10 && second==0
  || hour==14 && minute==50 && second==0 || hour==14 && minute==55 && second==0 || hour==15 && minute==40 && second==0 || hour==15 && minute==45 && second==0
  || hour==16 && minute==30 && second==0 || hour==16 && minute==35 && second==0 || hour==17 && minute==20 && second==0 || hour==17 && minute==25 && second==0 
  || hour==18 && minute==55 && second==0)
    {
    //digitalWrite(4, HIGH);   // Encender el Buzzer(zumbador) (HIGH (ALTO) es el nivel de voltaje)
    digitalWrite(13, HIGH);  // Encender el LED (HIGH (ALTO) es el nivel de voltaje)
    digitalWrite(2, LOW);  // Encender el rele
    Serial.println("TIMBRE SONANDO");
    delay(6000); // esperar 6 segundos
  
    digitalWrite(13, LOW);  // Apagar el LED haciendo que el voltaje sea BAJO
    //digitalWrite(4, LOW);   // Apagar el Buzzer(zumbador) haciendo que el voltaje sea BAJO
    digitalWrite(2, HIGH);    // apagar el rele
    delay(500);               // esperar medio segundo
    }

    //horarios modulos

    if (hour==8 && minute==30 && second==0 || hour==12 && minute==35 && second==0 || hour==14 && minute==05 && second==0 || hour==18 && minute==10 && second==0)
    {
    //digitalWrite(4, HIGH);   // Encender el Buzzer(zumbador) (HIGH (ALTO) es el nivel de voltaje)
    digitalWrite(13, HIGH);  // Encender el LED (HIGH (ALTO) es el nivel de voltaje)
    digitalWrite(2, LOW);  // Encender el rele
    Serial.println("TIMBRE SONANDO");
    delay(1500); // esperar 2 segundos
  
    digitalWrite(13, LOW);  // Apagar el LED haciendo que el voltaje sea BAJO
    //digitalWrite(4, LOW);   // Apagar el Buzzer(zumbador) haciendo que el voltaje sea BAJO
    digitalWrite(2, HIGH);    // apagar el rele
    delay(500);               // esperar medio segundo
    }
 }
}
Comments