PORRA PARA DE LER A MERDA QUE VEM DA SERIAL!

Hello my friends of this fallacious galaxy!!!

Estava la eu,
"arduinando" sem conhecimento técnico para tal...




Quando derrepente eu não conseguia para de ler os dados que vinham da serial!!!
O que acontece é que quando uso a o terminal de serial que tem la na IDE do arduino eu estava projetando uma espécie de "menu oculto" que quando o usuário daquele protótipo digitar 1 ele entra em uma opção onde ele deve digitar um numero que vai ser armazenado , esse número pode ter 1 ,2 , 3 ou até mesmo mais algarismos, e após a leitura dos dígitos ele deve sair do laço de repetição em que está e seguir adiante no código...
Depois de bater a cabeça durante LONGOS séculos chego então ao ano de 1832 e as coisas então se alternaram -se você me entende-, o que vem na sequência é só uma solução simples para esta problema:

void loop() {
  // Digite 1 para opção secreta
  if (Serial.available() > 0) { // aqui esta vendo se tem algo para ler na serial    charLido = Serial.read();  //aqui esta lendo e colocando em um char
    if(charLido == '\n'){  // se o char lido atualmente for um barra n quer dizer que o que veio do terminal de serial chegou ao fim 
      Serial.println("DEBUGAIVOS = Estoy aquí queriéndote");  // debug da galera      Serial.println(escolhaDigitada);  /* este print ocorre logo apos ler tudo o que veio da serial, nesta   parte do codigo a variavel escolhaDigitada ja deve ter acumulado o que foi lido da serial*/ 
      if (escolhaDigitada == "1"){/*Se o cara digitou um no termnial de serial entrou na opçao secreta*/       
            //codigo da opção secreta
      }     
      escolhaDigitada = "";  // apenas "limpa" a variavel escolhaDigitada 
    }else{  /*parte interessante: esta condição acontece se o charLido atualmente não for o \n, ou seja se   eu digitar no terminal 123 ele na verdade vai receber 123\n mas só vai salvar em  escolhaDigitada o 123 sem o \n conforme o que segue abaixo*/
      escolhaDigitada += charLido;
    }
  }
}



Mas la naquele if da escolhaDigitada la dentro eu queria ler mais um dado vindo da serial então fiz o seguinte

 
        if (escolhaDigitada == "1"){ // Se o cara digitou um no terminal de serial entrou na opçao secreta
         
            //codigo da opção secreta

            char d ;
            String cadastro;
            while(1){ // entro nesse loop para sair somente com um break
                if (Serial.available() > 0 ){  // quanto tiver algo para ler na serial ele entra aqui
                  d = Serial.read();  // le o byte atual
                  if(d == '\n'){ // se o byte atual for o ultimo entao entrar aqui
                    Serial.print("estoy"); // debug da galera
                    Serial.println(cadastro);  // este dado eu valido para ver se é um que sirva para a função que vou chamar e em seguida eu chamo a função enviando o dado para dentro dela
                    break;  // aqui que entra uma questao importante, como eu estou preso em um laço de repetição infinito então eu coloco um break para sair fora dele depois que eu entrei aqui, validei o dado e chamei a função
                  }else{  // se o byte atual nao for o ultimo entao entra aqui
                    cadastro += d;   // e acumula na string cadastro
                  }
                }
              }
          }
       
AEEEEEEEEEEEEEEE o micreragem brava!!!
kkkkkkkkkk



esta é uma solução que encontrei...
Você encontrou outra?
Achou a minha solução uma bosta?
Gostou?

TE FODE!!!

kkkkkkkkkk

brincadeira

deixa o comentário ai embaixo pra gente trocar uma ideia!

Comentários

Postagens mais visitadas