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?

