Reloj depertador: problema con selección de días en los que se activa la alarma.

Hola,
gracias de antemano por vuestra ayuda.
Estoy creando un reloj despertador con un lcd y un mando a infrarojos y entonces para activar y desactivar la alarma he hecho un menú especial con unos caracteres hechos por mi mismo, mi problema es que mis variables activado/desactivado no funcionan. Os adjunto el archivo completo.

#include <Wire.h>
#include "RTClib.h"
#include <IRremote.h>
#include <LiquidCrystal.h>
//ints de alarma
int L = 0;
int M = 0;
int X = 0;
int J = 0;
int V = 0;
int S = 0;
int D = 0;
  lcd.createChar(1, grado);
  lcd.createChar(2, flecha);
  lcd.createChar(3, Lunes);
  lcd.createChar(4, Martes);
  lcd.createChar(5, Miercoles);
  lcd.createChar(6, Jueves);
  lcd.createChar(7, Viernes);
  lcd.createChar(8, Sabado);
  lcd.createChar(9, Domingo);

aquí está el problema

  lcd.setCursor(2, 1);
  if (L == 0) {
    lcd.print("L");
  }
  else if (L == 1) {
    lcd.write(3);
  }
  lcd.print("/");
  //L
  if (M == 0) {
    lcd.print("M");
  }
  else if (M == 1) {
    lcd.write(4);
  }
  lcd.print("/");
  //M
  if (X == 0) {
    lcd.print("X");
  }
  else if (X == 1) {
    lcd.write(5);
  }
  lcd.print("/");
  //X
  if (J == 1) {
    lcd.print("J");
  }
  else if (J == 0) {
    lcd.write(6);
  }
  lcd.print("/");
  //J
  if (V == 0) {
    lcd.print("V");
  }
  else if (V == 1) {
    lcd.write(7);
  }
  lcd.print("/");
  //V
  if (S == 0) {
    lcd.print("S");
  }
  else if (S == 1) {
    lcd.write(8);
  }
  lcd.print("/");
  //S
  if (D == 0) {
    lcd.print("D");
  }
  else if (D == 1) {
    lcd.write(9);
  }
  //D

En mi lcd solo se ven los caracteres que tendrian que significar activado mientras que se supone que 0=desactivado y 1=activado

Para cambiarlo tengo esto que es lo que pasaria si el cursor que he creado está en lunes:

      lcd.setCursor(2, 0);
      lcd.write(2);
      if (irrecv.decode(&results)) {
        Serial.println(results.value, HEX);
        irrecv.resume(); // Receive the next value
        switch (results.value) {
          case 0xFFC23D://esto es la señal del Mando asociado a Reanudar/Pausar
            if (L == 0) {
              L = 1;
            }
            else if (L == 1) {
              L = 0;
            }
            irrecv.resume();
            lcd.clear();
            break;
        }
      }

Al darle al botón no funciona, nada cambia.

RelojDespertador.ino.ino (16.8 KB)