Go Down

Topic: Arduino cortando String (Read 60 times) previous topic - next topic

guilherme_scherer

Bom dia pessoal, tudo bem?

Tenho um arduino 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?


hugo007

Como estás a enviar essa string para a serial do arduino?
Explica melhor o que pretendes ao enviar essa string
Debian,Mint,Ubuntu
Arduino Mega 2560
Arduino Nano
Arduino Duemilanove
MAC OS Montain Lion
Raspberry PI Model B

guilherme_scherer

Opa!

Vou tentar lhe explicar mais detalhadamente:

Tenho que pegar a informação que é enviada para o meu RX e, de acordo com o dado lido, colocar uma saída como nível lógico alto/baixo. Por exemplo:

 String enviada: 0001110001010

 Teria que repartir esta string desta maneira:

 0 - Nível lógico baixo
 0 - Nível lógico baixo
 0 - Nível lógico baixo
 1 - Nível lógico alto
 1 - Nível lógico alto
 1 - Nível lógico alto
 0 - Nível lógico baixo
 0 - Nível lógico baixo
 0 - Nível lógico baixo
 1 - Nível lógico alto
 0 - Nível lógico baixo
 1 - Nível lógico alto
 0 - Nível lógico baixo


Meu novo sketch é o seguinte:

void loop() {

    if(bluetooth.available()){

         if(bluetooth.read() == '0'){

             digitalWrite(DATA, LOW);             

         }else{

             digitalWrite(DATA, HIGH);

        }
 
        delay(100);

   }
}

Ele teria que entrar neste LOOP 13 vezes(tamanho da minha string), correto?
Mas isto que não acontece, aparentemente ele não entra.

Não sei se isto é algo na questão de meu micro não consegue ler na velocidade que é enviado todas as informações..

Por fim, basicamente eu preciso ler toda minha string e tratar toda ela, indiferente do tamanho. Não sei se é melhor eu ler toda ela(não sei se vai ler toda ela também) ou se é eu fazer do mesmo jeito que estou fazendo agora...

Aguardo retorno, obrigado!




bubulindo

Porque é que atrasas o teu loop() com a função delay()?

Acho que tens de ler um pouco acerca de protocolos pois o que estás a planear vai dar sarilho.
This... is a hobby.

Go Up