#include <SPI.h>
#include <SD.h>
#include <DS3232RTC.h>
File myFile;
DS3232RTC rtc;
int button = A0;
int LED = A1;
int CS = 10;
int currentButtonState;
int lastButtonState;
void setup() {
pinMode(button, INPUT);
pinMode(LED, OUTPUT);
pinMode(CS, OUTPUT);
Serial.begin(9600);
rtc.begin();
setSyncProvider(rtc.get);
while (!Serial) {
;
}
if (SD.begin()) {
Serial.println("SD card is ready to use.");
myFile = SD.open("test.csv", FILE_WRITE);
delay(100);
myFile.close();
}
else {
Serial.println("SD card initialisation failed.");
return;
}
}
void loop() {
lastButtonState = currentButtonState;
currentButtonState = digitalRead(button);
if (lastButtonState == LOW && currentButtonState == HIGH) {
SerialClockDisplay();
digitalWrite(LED, HIGH);
myFile = SD.open("test.csv", FILE_WRITE);
if (myFile) {
myFileClockDisplay();
myFile.close();
}
else {
Serial.println("error opening test.csv");
}
delay(2000);
digitalWrite(LED, LOW);
}
}
void myFileClockDisplay() {
myFile.print(hour());
myFilePrintDigits(minute());
myFilePrintDigits(second());
myFile.print(',');
myFile.print(day());
myFile.print('/');
myFile.print(month());
myFile.print('/');
myFile.print(year());
myFile.println();
myFile.println();
}
void myFilePrintDigits(int digits) {
myFile.print(':');
if (digits < 10) {
myFile.print('0');
}
myFile.print(digits);
}
void SerialClockDisplay() {
Serial.print(hour());
SerialPrintDigits(minute());
SerialPrintDigits(second());
Serial.println(' ');
Serial.print(day());
Serial.print('/');
Serial.print(month());
Serial.print('/');
Serial.print(year());
Serial.println();
Serial.println();
}
void SerialPrintDigits(int digits) {
Serial.print(':');
if (digits < 10) {
Serial.print('0');
}
Serial.print(digits);
}