Paso 3: El RTClib
http://Arduino-info.wikispaces.com/DS1307_RealTime_Clock_Brick
El RTC vendrá cargado con el tiempo; a veces con la hora local de China; para cambiar la hora, ir a th, conecte su RTC (el sitio web mostrará el diagrama) y ejecute el siguiente código:
Arduino 1.0 + sólo
Arduino 1.0 + sólo
#include "Wire.h"
#define DS1307_ADDRESS 0x68
byte cero = 0 x 00; solución para problema #527
void setup() {}
Wire.Begin();
Serial.Begin(9600);
setDateTime(); DEBE CONFIGURAR EN FUNCIÓN
}
void loop() {}
printDate();
Delay(1000);
}
void setDateTime() {}
Editar aquí la fecha y hora
byte = segundo 20; 0-59
minutos de byte = 27; 0-59
hora de byte = 22; 0-23
día de la semana byte = 26; 1-7
byte monthDay = 22; 1-31
mes de byte = 11; 1-12
año de byte = 13; 0-99
Wire.beginTransmission(DS1307_ADDRESS);
Wire.Write(Zero); dejar de oscilador
Wire.Write(decToBcd(Second));
Wire.Write(decToBcd(minute));
Wire.Write(decToBcd(hour));
Wire.Write(decToBcd(weekDay));
Wire.Write(decToBcd(monthDay));
Wire.Write(decToBcd(month));
Wire.Write(decToBcd(Year));
Wire.Write(Zero); Inicio
Wire.endTransmission();
}
byte decToBcd(byte val) {}
Convierte a números decimales normales a binario codificado decimal
regresar ((val/10 * 16) + (val % 10));
}
byte bcdToDec(byte val) {}
Convertir a binario codificado decimal a números decimales normales
regresar ((val/16 * 10) + (val % 16));
}
void printDate() {}
Restablece el puntero de registro
Wire.beginTransmission(DS1307_ADDRESS);
Wire.Write(Zero);
Wire.endTransmission();
Wire.requestFrom (DS1307_ADDRESS, 7);
int = segundo bcdToDec(Wire.read());
int minutos = bcdToDec(Wire.read());
int hora = bcdToDec(Wire.read() & 0b111111); Horario de 24 horas
día de la semana int = bcdToDec(Wire.read()); 0-6-> el domingo - el sábado
int monthDay = bcdToDec(Wire.read());
int mes = bcdToDec(Wire.read());
int año = bcdToDec(Wire.read());
imprimir la fecha CE 01/03/11 23:59:59
Serial.Print(month);
Serial.Print("/");
Serial.Print(monthDay);
Serial.Print("/");
Serial.Print(Year);
Serial.Print("");
Serial.Print(hour);
Serial.Print(":");
Serial.Print(minute);
Serial.Print(":");
Serial.println(Second);
}