Bom dia! Estou com um problema relativamente simples mas não sei onde está o erro.
Estou criando uma série de variáveis ou mesmo um array com binários tipo.
Antes de mais nada, estou tratando tudo como String mesmo, ok.
String recebido="0110100110100110100100110100110100110110110110110110110100100100110110100100110100110";
String controles[] ={"0110100110100110100100110100110100110110110110110110110100100100110110100100110100110","0110100110100110100100110100110100110110110110110110110100100100110100110100110100110"};
void setup()
{
Serial.begin(9600);
delay(500);
Serial.println("INICIADO!");
}
void loop()
{
Serial.println("Entrou!");
if(recebido==controles[1]){
Serial.println("valor 1");
}else if(recebido==controles[2]){
Serial.println("valor 2");
}else{
Serial.println("ERROR NAO INDENTIFICADO");
Serial.println(controles[2]);
}
}
Saida Serial, fica carregando e carregando dados.
Tags:
Você está definindo uma matriz com duas alocações, que é a sua variável controles. Na hora de fazer a comparação você está indexando a matriz de forma incorreta.
Veja bem, o primeiro elemento de uma matriz é o elemento 0 e não 1. Quando defino uma matriz tipo int foo[2] eu tenho 2 inteiros indexados nessa variável, acessíveis em foo[0] e foo[1]. Se tentar acessar foo[2] vou acessar um endereçamento de memória incorreto, correndo o risco de sobreescrever alguma outra variável do programa.
Seu código deve ser assim :
if(recebido==controles[0]){ /// controles[0] == primeiro elemento da matriz
Serial.println("valor 1");
}else if(recebido==controles[1]){ /// controles[1] == segundo elemento da matriz
Serial.println("valor 2");
}else{
Serial.println("ERROR NAO INDENTIFICADO");
Serial.println(controles[1]);
}
No universo da programação, se tratando de endereçamento, 0 é 1 :)
Happy hack
KKKKKK verdade que vacilo! Valeu demais!!!!
valeu vou ver aqui!!!
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por