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.

Exibições: 350

Responder esta

Respostas a este tópico

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!!!

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço