Estudiá bien el código.
La idea (que fue planteada por otro usuario) es que
Tené en cuenta que al ser una demostración de como poder hacer uso del c/r para dormir/despertar al micro, no hace mucho más que eso.
Fijate que los botones 0, 1 y 2 solo despiertan al micro pero podrían además hacer otras acciones, solo agrégalas al case que corresponda y si quieres agregar más botones debes agregarlos a switch().
Por otro lado, el "fade" del LED puedes quitarlo, fue parte de la respuesta a una consulta de otro usuario.
Si quieres que solo duerma/despierte con el boton "Power" cambia el código así
void loop() {
if (irrecv.decode()) {
#ifdef _DEBUG_
Serial.println(irrecv.decodedIRData.command, HEX);
#endif
// ----- Modificacion -----
pwrOff = pwrState;
switch (irrecv.decodedIRData.command){ //decodedRawData) {
case Boton_Off:
pwrOff = !pwrOff;
pwrState = !pwrState;
break;
case Boton_0:
if (pwrOff == false) {
// acciones que ejecuta este boton
}
break;
case Boton_1:
if (pwrOff == false) {
// acciones que ejecuta este otro boton
}
break;
case Boton_2:
if (pwrOff == false) {
// acciones que ejecuta este boton
}
break;
default: // botones que no fueron definidos
#ifdef _DEBUG_
Serial.print("Tecla no valida. ");
Serial.println(pwrOff ? "Vuelve a dormir." : "");
#endif
break;
}
irrecv.resume();
}
// resto del codigo sin cambios