Boa noite, estou utilizando esse código aqui para receber a comunicação serial de um outro arduino, porém estou tendo problemas ao juntar os dados:

char var;
 
void setup() {               
  Serial.begin(9600);
}
 
void loop() {
  
  if (Serial.available() > 0)
  {
   var = Serial.read();
  }
  Serial.println(var);
  delay(500);
}
por exemplo, se o arduino recebe o valor 44.32 do outro arduino, nesse chega assim:

4

4

.

3

2

e por aí vai. Como eu junto esse valor que ele recebe da serial em um só?

Exibições: 260

Responder esta

Respostas a este tópico

Boa noite HN, entao no momento ela ainda não é uma string para fazer:


void setup() {               
  Serial.begin(9600);
}
 
void loop() {
   String resposta;
   while(Serial.available() > 0) {    
    char caractere = Serial.read();
    if (caractere != '\n'){     
      resposta.concat(caractere);//concatena os char
    }   
    delay(1);
  }
  Serial.println(resposta);
  Serial.flush();
  delay(500);

}

Cara, funcionou. Muito obrigado mesmo!

Cara, percebi um problema no código. Não tá vindo apenas o valor na String, tá vindo um valor em branco com quebra de linha. Aparece assim na serial, por exemplo:

32.52

32.52

32.52

e quando eu converto essa String pra float pra poder trabalhar com os dados, ela me retorna 2 valores:

32.52

0.00

32.52

0.00

Como faço pra consertar isso?

Boa tarde, tente aumentando o tempo do delay, talvez resolva se colocar para 5ms

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço