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.
Você precisa fazer log in para comentar.