Bom dia pessoal, tudo bem?
Tenho um Atmega 328p e preciso que ele trate uma String...
A minha string de teste é a seguinte:
"11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110"
O problema começa quando ele "corta" essa String, sketch:
void setup() {
Serial.begin(9600);
}
void loop() {
if(Serial.available()){
if(Serial.read() == '0'){
Serial.write("0");
}else{
Serial.write("1");
}
}
}
Ele me retorna apenas "11111111111"...
Percebi que se eu mando diferentes Strings ele me retorna diferentes tamanhos também, mas nunca o tamanho correto...
Alguém sabe o que pode ser?
Tags:
As respostas para este tópico estão encerradas.
Olá.
O Serial.write, a principio, recebe um caractere.
algo como:
Serial.write('1'); // Com aspas simples.
Veja se não é isso.
Como vc manda os caracteres ? Tem algum delay ?
Convém sempre que mandar incluir alguns pequenos delays e sempre que receber nunca colocar delays.
Acontece que se vc colocar em loop o envio de strings rapidamente vc lota o buffer de transmissão. É preciso enviar para o buffer de transmissão em velocidade compatível com a capacidade de transmissão.
Já receber é o oposto, vc precisa estar livre pra receber sem delays.
Teste colocando a string no terminal da IDE e transmita. Veja se ela é recebida e interpretada corretamente.
Vale incluir um contador de caracteres recebidos.
Sobre o write com aspas simples ou duplas, pela documentação:
https://www.arduino.cc/reference/pt/language/functions/communicatio...
Tanto faz, preciosismo meu...
Boa tarde Eduardo, tudo bem?
Então.. não consigo mandar com pequenos delays pois quem está mandando esta String é um HC-05, o que eu poderia configurar é apenas o baudrate, porém, não sei se surge efeito nisto.
Se não é interessante eu colocar delays para receber, então eu teria que receber tudo, armazenar em variável e depois tratá-lá?
Mas enfim, o problema é que eu não consigo receber, então nem teria como eu armazenar tudo em uma variável..
Teria alguma solução para isto?
Pelo trecho que vc enviou parece tudo perfeito. O erro não está aih. Pode inclusive testar só esse trecho de forma isolada, ele vai funcionar.
Mande fotos da montagem, esquema, o codigo completo, facilita.
Bom dia Eduardo, tudo bem?
Consegui resolver o problema, apenas criei um laço para que eu receba tudo primeiramente e armazene em um vetor.
Aí depois eu tratei o meu vetor. :)
Valeu!
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por