Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Reloj RTC I2c Con Arduino
Reloj RTC I2c Con Arduino
Presentado por:
Karen Mariana Anaya Guillen
Fabian Guillermo Jerez Quiñonez
Presentado a:
ELEMENTOS UTILIZADOS
Arduino uno.
Protoboard.
Cables
Zumbador.
DESARROLLO
1. Para la elaboración del reloj con arduino, primero que todo nos toca
presentar la nueva librería RTClib librería para Arduino (esta hará que todas
la funciones sean válidas) que nos facilitara la comunicación entre el
modulo y arduino (. El módulo que emplearemos es el Tiny RTC I2C que
incorpora un reloj de tiempo realDS1307, una batería para memorizar los
datos y una pequeña memoria EEPROM 24C32).
Nota: Hay que tener en cuenta que el reloj interno se reinicia cada 50 días
aproximadamente, y además si cortamos la corriente a nuestro Arduino, cuando lo
volvemos a conectar inicia en la hora en el cual fue desconectado pero si la
batería no funciona o se desconecta algún clave del circuito reinicia el reloj a la
fecha 2000/01/01 y hora 00:00:00.
#include <Wire.h>
#include "RTClib.h"
#include <LiquidCrystal.h>
LiquidCrystal lcd(8,9,4,5,6,7);
RTC_DS1307 RTC;
int minutos_alarma1 = 20;
int hora_alarma1 = 21;
int minutos_alarma2 = 23;
int hora_alarma2 = 21;
int minutos_alarma3 = 25;
int hora_alarma3 = 21;
boolean all_minutes = true;
boolean all_hour = true;
void setup () {
Wire.begin();
RTC.begin();
RTC.adjust(DateTime(__DATE__, __TIME__));
lcd.begin(16,2);
lcd.print("Fecha:");
lcd.setCursor(0,1);
lcd.print("Hora:");
lcd.setCursor(1,1);
}
void loop(){
DateTime now = RTC.now();
lcd.setCursor(6,0);
lcd.print(now.year(), DEC);
lcd.print('/');
lcd.print(now.month(), DEC);
lcd.print('/');
lcd.print(now.day(), DEC);
lcd.setCursor(5,1);
lcd.print(now.hour(), DEC);
lcd.print(':');
lcd.print(now.minute(), DEC);
lcd.print(':');
lcd.print(now.second(), DEC);
lcd.println();
lcd.setCursor(5,1);
delay(1000);
if (hora_alarma1 == now.hour() ) {
if (minutos_alarma1 == now.minute() ){
analogWrite(A3,255);
delay(5000);
analogWrite(A3,0);
delay(54000);
}
else
{
analogWrite(A3,0);
}
}
if (hora_alarma2 == now.hour() ) {
if (minutos_alarma2 == now.minute() ){
analogWrite(A3,255);
delay(5000);
analogWrite(A3,0);
delay(54000);
}
else
{
analogWrite(A3,0);
}
}
if (hora_alarma3 == now.hour() ) {
if (minutos_alarma3 == now.minute() ){
analogWrite(A3,255);
delay(5000);
analogWrite(A3,0);
delay(54000);
}
else
{
analogWrite(A3,0);
}
}
}
Wire.begin();
RTC.begin();
RTC.adjust(DateTime(__DATE__, __TIME__));
Esta función establecerá la fecha y hora en nuestro reloj. La fecha y hora usada
para cargarla en nuestro modulo, será la fecha de creación del archivo .hex
generado al compilar el sketch.
delay(1000);