Ir ao conteúdo
  • Cadastre-se

Leonardo Aires

Membro Júnior
  • Posts

    4
  • Cadastrado em

  • Última visita

posts postados por Leonardo Aires

  1. Olá.

     

    Estou com o seguinte problema, fiz um app que envia dados pro arduino através da comunicações bluetooth. Estou conseguindo receber e ler sem problemas os caracteres, porém, preciso ler números inteiros, quando envio algum número inteiro ele apresenta bugs, como: envio 1000 e recebe 1, ou algo aleatório. Ou seja, meu problema está somente na variável "temporizador" que deveria receber um número inteiro, mas não estou conseguindo utilizar o parseInt corretamente.

     

    Obs.: Usei "Serial" no Loop e não "bluetooth" só para teste, mas está ocorrendo o mesmo com o bluetooth, lê e recebe os caracteres, mas não os inteiros.

     

    // Definindo as portas RX e TX do ARDUINO
    #include <SoftwareSerial.h>
    
    SoftwareSerial bluetooth(10, 11); // RX, TX.
    // Fim
    
    // Variáveis 
    int k1 = 9;
    int k2 = 6; 
    int k3 = 5; 
    int k4 = 3;
    int temporizador;  
    String comando;
    // Fim
    
    // Desliga tudo
    void reset() {
    
        digitalWrite(k1, LOW);
        digitalWrite(k2, LOW);
        digitalWrite(k3, LOW);
        digitalWrite(k4, LOW);
        
    }
    // Fim
    
    // Sentido horário
    void ligar() {
      
        digitalWrite(k1, HIGH);
        digitalWrite(k2, HIGH); 
        delay(temporizador);
        digitalWrite(k2, LOW);
        digitalWrite(k3, HIGH);
    
    }
    // Fim
    
    // Sentido anti-horário
    void esquerda() {
      
        digitalWrite(k4, HIGH);
        digitalWrite(k2, HIGH);
        delay(temporizador);
        digitalWrite(k2, LOW);
        digitalWrite(k3, HIGH);
        
    }
    // Fim
    
    
    // Configurações Iniciais
    void setup() {
      
      bluetooth.begin(9600); // Serial definido por mim.
      Serial.begin(9600);   // Serial do prog. do arduino.
    
      pinMode(k1, OUTPUT);
      pinMode(k2, OUTPUT);
      pinMode(k3, OUTPUT);
      pinMode(k4, OUTPUT);
      
    }
    // Fim
    
    // Laço que será executado
    void loop() {
      
    // Ler informação recebida
    while (Serial.available()) 
    {
        
         char mode = Serial.read();
         comando += mode; 
         Serial.write(mode);
         temporizador = Serial.parseInt();
         Serial.write(temporizador);
       
    
    // Fim
    
      if(mode == 'L' || mode == 'R')
      {
        reset();
        ligar();
      }
    
      else if(mode == 'E')
      {
        reset();
        esquerda();
      }  
    
      else if(mode == 'S' || mode == 'D')
      {
        reset();   
      }
      break;
    }
    }
    // Fim

     

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!