Problema Na Leitura de Strings na Serial [Resolvido]

Strings é compara de forma muito simples usando ‘==’ mas ao usar o comando ‘Serial.readString()’ em que era usado normalmente em outras placas e comparado de forma simples

Problema

Na verdade o problema surgiu enquanto era feito o código do LoRa com configurações para transmitir e receber dados para ficar um pouco mais didático mas ao fazer a comparação de String com textos no comando abaixo, apresentou problemas não sendo aprovados no ‘if’.

void setup(){
  Serial.begin(9600);
}

void loop(){
  String cmd = Serial.readString();
  if(cmd == "tx")
    Serial.prinln("tx");
}

Esse mesmo problema aconteceu quando foi tentado usar o módulo GPS na Serial1 do Arduino Mega2560 quando usado o Serial.readString(), porém quando era interrompido a alimentação do GPS todos os dados armazenados na Serial1 começa a ser exibidos mas durante a leitura da Serial1 o código fica travado.

Solução

Em outros projetos sempre foi usado o ‘Serial.readString()’ para ler Strings da serial. Foi feito um teste em um Arduino Mega2560 e funcionou tranquilamente mas no Arduino nano a solução foi utilizar o comando:

Serial.readStringUntil('\n');

Funcionamento

Inicialmente é feito o teste com o ‘Serial1.readString()’ e os valores não são lidos, mas quando é compilado usando o ‘Serial1.readStringUntil(‘\n’)’ lê normalmente.



Considerações

O teste foi relizado no Arduino nano e no Mega, no caso do Arduino a serial usada na USB não funcionou com ‘readString()’, agora no Arduino Mega esse problema só se repetiu com a Serial1.

Deixe uma resposta

Descubra mais sobre elcereza

Assine agora mesmo para continuar lendo e ter acesso ao arquivo completo.

Continue reading