Escolar Documentos
Profissional Documentos
Cultura Documentos
#include <Wire.h>
#include "RTClib.h"
#include <LiquidCrystal_I2C.h>
const int timbre = 7; // Pin 7 encargado de activar el timbre, se conecta al Rele
int segundo;
int minuto;
int hora;
int tiempo_timbre=5000; // Tiempo continuo que dura el timbre sonando, en milisegundos 5000
= 5 segundos
// se pueden programar 16 timbres por cada horario, _c1 indica que es el horario 1
void setup () {
Wire.begin();
lcd.init();
}
void loop(){
int contacto1 = analogRead(A0); //Lee el valor de los contactos para escoger el horario
int contacto4 = analogRead(A3); // contacto que activa o desactiva los fines de semana
Serial.print(now.year(), DEC); // A¤o
Serial.print('/');
Serial.print('/');
Serial.print(' ');
Serial.print(':');
Serial.print(':');
Serial.println();
lcd.setCursor(0,0);
lcd.print("D:");
lcd.print(now.year(), DEC);
lcd.print("/");
lcd.print(now.month(), DEC);
lcd.print("/");
lcd.print(now.day(), DEC);
lcd.print(" ");
lcd.setCursor(0,1);
lcd.print("T: ");
lcd.print(now.hour(), DEC);
lcd.print(":");
lcd.print(now.minute(), DEC);
lcd.print(":");
lcd.print(now.second(), DEC);
segundo=now.second();
minuto=now.minute();
hora=now.hour();
if (contacto4 <= 1000){ // si el contacto 4 esta desactivado, despliega -e- entre semana
funciona el timbre
lcd.setCursor(12,0);
lcd.print("e");
Serial.print("-e-");
}
lcd.setCursor(12,0);
lcd.print("F");
Serial.print("-F-");
}
}
else {
if (contacto1 >= 1000) // Si el contacto 1 esta activo (Horario 1)
}
lcd.print(" ");
lcd.setCursor(8,1);
lcd.print(" ");
}
void activar_timbre(){
digitalWrite(timbre, HIGH);
lcd.setCursor(0,0);
Serial.println("Timbre Activo");
delay(tiempo_timbre);
int dia_de_semana(){
int n_dia;
int r_dia;
int n_mes;
int t_mes;
int n_anno;
int d_anno;
int t_siglo=6;
lcd.setCursor(13,1);
n_anno=(now.year()-2000);
d_anno=n_anno/4;
n_dia=now.day();
n_mes=now.month();
switch (n_mes) {
case 1:
t_mes=0;
break;
case 2:
t_mes=3;
break;
case 3:
t_mes=3;
break;
case 4:
t_mes=6;
break;
case 5:
t_mes=1;
break;
case 6:
t_mes=4;
break;
case 7:
t_mes=6;
break;
case 8:
t_mes=2;
break;
case 9:
t_mes=5;
break;
case 10:
t_mes=0;
break;
case 11:
t_mes=3;
break;
case 12:
t_mes=5;
break;
default:
t_mes=t_mes;
break;
}
r_dia=n_dia+t_mes+n_anno+d_anno+t_siglo;
r_dia = r_dia % 7;
switch (r_dia) {
case 1:
lcd.print("Lun");
break;
case 2:
lcd.print("Mar");
break;
case 3:
lcd.print("Mie");
break;
case 4:
lcd.print("Jue");
break;
case 5:
lcd.print("Vie");
break;
case 6:
lcd.print("Sab");
break;
case 0:
lcd.print("Dom");
break;
default:
lcd.print("---");
Serial.print(" ---");
break;
}
return r_dia;
void horario_1(){
lcd.setCursor(13,0);
lcd.print("1");
Serial.print("Horario_1 ");
void horario_2(){
lcd.setCursor(14,0);
lcd.print("2");
Serial.print("Horario_2 ");
void horario_3(){
lcd.setCursor(15,0);
lcd.print("3");
Serial.print("Horario_3 ");
}
CODIFICACION DE LA APLICACIÓN DE NOTIFICACION DE CAMBIO DE HORA AL
DOCENTE