// ***************************************
// * Breakout board RTC esterno I2C *
// * Marca: APKLVSR *
// * Modello: DS3231 *
// * Memoria: AT24C32 32 Gb *
// * Pin GND: GND *
// * Pin VCC: alimentazione DC 3,3 o 5 V *
// * Pin SDA: input analogico *
// * Pin SCL: input analogico *
// * Pin SQW: output ad onda quadra *
// * Pin 32K: output analogico 32 Khz *
// * LED: PWR (power) *
// * Batteria tampone: CR2032 *
// * Indirizzi I2C del modulo: *
// * 87 (0x57) *
// * 104 (0x68) *
// ***************************************
#include <Arduino.h>
#include <Wire.h>
#include <SPI.h>
#include "RTClib.h"
RTC_DS3231 objRtc;
//char *res = malloc(5);
char *res = (char*)malloc(5 * sizeof(char));
String pad(int n)
{
sprintf(res, "%02d", n);
return String(res);
}
void setup()
{
Serial.begin(9600);
while(!objRtc.begin())
{
Serial.println("Controlla le connessioni alla breakout board RTC esterna");
}
if (objRtc.lostPower())
{
Serial.println("Imposto data/ora");
objRtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
// rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0));
}
}
void loop()
{
DateTime now = objRtc.now();
Serial.print(pad(now.day()));
Serial.print('/');
Serial.print(pad(now.month()));
Serial.print('/');
Serial.print(now.year(), DEC);
Serial.print(" - ");
Serial.print(pad(now.hour()));
Serial.print(':');
Serial.print(pad(now.minute()));
Serial.print(':');
Serial.print(pad(now.second()));
Serial.println();
delay(5000);
}