Pouca Memoria

pessoal, tenho um projeto para enviar via infravermelho os comandos para acionar o arcondicionado.
porem a IDE nao esta compilando pois o codigo esta consumindo toda a memoria (variaveis globais estao deixando pouco espaco para variaveis locais...)
desta forma, criei uma funcao onde esta funcao salva numa variavel GLOBAL (string) o valor do codigo.
ou seja tenho la 900 ifs, e dependendo da condicao é executado 1 ou outro...
porem todos esses ifs estao consumindo memoria, mesmo que apenas 1 sera executado por vez pela funcao.
fiz uma versao resumida do codigo, para faciliar o entendimento.

boolean teste = true;
String cdIRTemp;
int Temp=18;

void setup() {
  Serial.begin(15200);
  FuncaoGravaCOdigoVariavelGlobal();
}

void loop() {
  // put your main code here, to run repeatedly:

}


void FuncaoGravaCOdigoVariavelGlobal(){
  if (teste){
    switch(Temp){
      case 16:{
          cdIRTemp="23CB26010064030F00000000800B";
        }
        break;
      case 17:{
          cdIRTemp="23CB26010064030F000000008001";
        }
        break;
      case 18:{
          cdIRTemp= "23CB26010064030D000000008002";
        }
        break;
      case 19:{
          cdIRTemp= "23CB26010064030D000000008003";
        }
        break;
      case 20:{
          cdIRTemp= "23CB26010064030D000000008004";
        }
        break;
      case 21:{
          cdIRTemp= "23CB26010064030D000000008005";
        }
        break;
      case 22:{
          cdIRTemp= "23CB26010064030D000000008006";
        }
        break;
    }
    Serial.println(cdIRTemp);
  }
}

no caso a funcao FuncaoGravaCOdigoVariavelGlobal verifica a condicao, e salva na variavel cdIRTemp o valor que a mesma deve ter, porem, cada um desses cases esta consumindo memoria...
conforme imagens abaixo, a diferenca do uso da memoria quando apenas 1 case atribui valor e quando todos atribuem valor:

o que posso fazer para diminuir o uso da memoria nesse caso?

Leste bem o que diz nesse espaço preto??

O programa usa 9% do espaço de memória... as variáveis ocupam 11% da memória do microcontrolador.

Porque achas que isto é muito?

bubulindo:
Leste bem o que diz nesse espaço preto??

O programa usa 9% do espaço de memória... as variáveis ocupam 11% da memória do microcontrolador.

Porque achas que isto é muito?

pois o codigo que postei é uma versao resumida, conforme informei no post.
nesse codigo resumido tenho 7 X o comando cdIRTemp="xxxxxxxxxxxxxx" e no codigo completo sao 1000X, logo nao tem memoria...

Algo me diz que estás a tentar martelar um parafuso...

Vamos por partes, existe alguma parecença nessas 1000 strings que tens de enviar? O exemplo que colocaste aqui tem esta parte "23CB26010064030" comum... logo podes cortar essa parte de todas as 1000 possibilidades e concatenar no final com a função strcat ou mandar em dois serial prints separados...

Uma coisa que eu não percebo é que ar condicionado tem 1000 comandos possíveis. Eu já operei uns quantos e não consigo imaginar mais de 50 comandos em cada uma das unidades. Logo que comandos exactamente são estes?

Por último, uma maneira simples de fazer isto é perceber exactamente como os comandos são formados e formá-los em vez de guardar todas as possibilidades sem perceber muito bem o que os comandos querem dizer...

resolvi o problema usando a funcionalidade PROGMEM.
desta forma, salvei no PROGMEM todos os codigos, e criei uma funcao para receber o valor salvo na progmem.