#include <IRremote.h>
#include "RTClib.h"
IRrecv IR(12);
RTC_DS1307 RTC;
int dt[] = {2000, 1 , 1, 23, 50, 0};
int cntChangeTime = 0;
int tempNumber = 0;
int indx = 0;
void setup() {
Serial.begin(9600);
IR.enableIRIn();
RTC.begin();
RTC.adjust(DateTime(dt[0], dt[1], dt[2], dt[3], dt[4], dt[5]));
}
void loop() {
if(IR.decode())
{
translateIR();
IR.resume();
}
}
void translateIR()
{
switch(IR.decodedIRData.decodedRawData)
{
case 0x5DA2FF00: //power - press 3x to enter time change mode
//Serial.println("PWR");
cntChangeTime++;
break;
case 0x1DE2FF00: //menu - press to save digit and go to next array index
//Serial.println("MENU");
dt[indx] = tempNumber;
tempNumber = 0;
indx++;
break;
case 0xDD22FF00: //testd
Serial.println("TEST");
break;
case 0xFD02FF00: //plus
Serial.println("PLUS");
break;
case 0x3DC2FF00: //back
Serial.println("BACK");
break;
case 0x1FE0FF00: //prev
Serial.println("PREV");
break;
case 0x57A8FF00: //play - show time
Serial.println("PLAY");
printTime();
break;
case 0x6F90FF00: //fwd
Serial.println("NEXT");
break;
case 0x6798FF00: //minus
Serial.println("MINUS");
break;
case 0x4FB0FF00: //clr
break;
case 0x9768FF00: //0
tempNumber *= 10
break;
case 0xCF30FF00: //1
tempNumber *= 10 + 1
break;
case 0xE718FF00: //2
tempNumber *= 10 + 2
break;
case 0x857AFF00: //3
tempNumber *= 10 + 3
break;
case 0xEF10FF00: //4
tempNumber *= 10 + 4
break;
case 0xC738FF00: //5
break;
case 0xA55AFF00: //6
break;
case 0xBD42FF00: //7
break;
case 0xB54AFF00: //8
break;
case 0xAD52FF00: //9
break;
}
}
void printTime()
{
DateTime now = RTC.now();
Serial.print("Current time: ");
Serial.print(now.year(), DEC);
Serial.print('/');
Serial.print(now.month(), DEC);
Serial.print('/');
Serial.print(now.day(), DEC);
//Serial.print(" (");
//Serial.print(daysOfTheWeek[now.dayOfTheWeek()]);
//Serial.print(") ");
Serial.print(" ");
Serial.print(now.hour(), DEC);
Serial.print(':');
Serial.print(now.minute(), DEC);
Serial.print(':');
Serial.print(now.second(), DEC);
Serial.println();
}