Here is the code that I used, just need the modification for modes as you kindly said.
#include <IRremote.h>
#include "LowPower.h"
IRsend irsend;
const int b1 = 1; //Power
const int b2 = 15; //function
const int b3 = 2; //vol down
const int b4 = 4; //vol up
const int b5 = 5; //up
const int b6 = 6; //Folder Next
const int b7 = 7; //Enter
const int b8 = 8; //right
const int b9 = 9; //down
const int b10 = 17; //Display
const int b11 = 11; //Play
const int b12 = 12; //Stop
const int b13 = 16; //Prev
const int b14 = 14; //Next
int timer;
int modeCounter = 0;
void wakeUp() {
timer = 0;
}
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
pinMode(b1, INPUT);
pinMode(b2, INPUT);
pinMode(b3, INPUT);
pinMode(b4, INPUT);
pinMode(b5, INPUT);
pinMode(b6, INPUT);
pinMode(b7, INPUT);
pinMode(b8, INPUT);
pinMode(b9, INPUT);
pinMode(b10, INPUT);
pinMode(b11, INPUT);
pinMode(b12, INPUT);
pinMode(b13, INPUT);
pinMode(b14, INPUT);
}
void loop() {
attachInterrupt(0, wakeUp, HIGH);
while (timer < 10000) {
if (digitalRead(b1) == HIGH) {
timer = 0;
delay(50);
irsend.sendSony(0xA81, 12); //Power
}
if (digitalRead(b2) == HIGH) {
timer = 0;
delay(50);
irsend.sendSony(0x4B09, 15); //Function
}
if (digitalRead(b3) == HIGH) {
timer = 0;
delay(50);
irsend.sendSony(0xC81, 12); //Vol_Down
}
if (digitalRead(b4) == HIGH) {
timer = 0;
delay(50);
irsend.sendSony(0x481, 12); //Vol_Up
}
if (digitalRead(b5) == HIGH) {
timer = 0;
delay(50);
irsend.sendSony(0x1EB9C, 20); //up
}
if (digitalRead(b6) == HIGH) {
timer = 0;
delay(50);
irsend.sendSony(0xF4B9C, 20); //Folder Next
}
if (digitalRead(b7) == HIGH) {
timer = 0;
delay(50);
irsend.sendSony(0x3EB9C, 20); //Enter
}
if (digitalRead(b8) == HIGH) {
timer = 0;
delay(50);
irsend.sendSony(0xDEB9C, 20); //right
}
if (digitalRead(b9) == HIGH) {
timer = 0;
delay(50);
irsend.sendSony(0x9EB9C, 20); //down
}
if (digitalRead(b10) == HIGH) {
timer = 0;
delay(50);
irsend.sendSony(0x18B9C, 20); //Display
}
if (digitalRead(b11) == HIGH) {
timer = 0;
delay(50);
irsend.sendSony(0x4CB9C, 20); //Play
}
if (digitalRead(b12) == HIGH) {
timer = 0;
delay(50);
irsend.sendSony(0x1CB9C, 20); //Stop
}
if (digitalRead(b13) == HIGH) {
timer = 0;
delay(50);
irsend.sendSony(0xCB9C, 20); //Prev
}
if (digitalRead(b14) == HIGH) {
timer = 0;
delay(50);
irsend.sendSony(0x8CB9C, 20); //Next
}
delay(1);
timer = timer + 1;
}
LowPower.powerDown(SLEEP_FOREVER, ADC_OFF, BOD_OFF);
}