Despertar arduino con control remoto

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