! AJUDA ! Comunicação entre dois HC-05 Bluetooth - Projeto para Faculdade

Olá a todos,

Estou realizando um projeto de carrinho de controle remoto para a faculdade.
O projeto consiste em:

Controle remoto:

1 Módulo Bluetooth para enviar as informações para o carrinho.
2 Joysticks para enviar sinais para o Arduino

Carrinho:

1 módulo Bluetooth para receber as informações do controle;
1 servo motor - para realizar o movimento de direção do carrinho
1 Ponte H - Para receber os sinais do Bluetooth e passar para os motores.
2 Motores - Recebem os sinais da ponte H e coloca o carrinho em movimento.

Meu problema está na programação.
Eu consigo fazer com que o servo se mova conforme eu desejo, porém, ao tentar configurar o movimento do motor, eu não tenho sucesso.

Quando eu tento enviar sinais para o meu motor, ele simplesmente se mistura com os sinais do meu servo, e acaba o servo e o motor sendo controlados pelos 2 Joysticks, em vez de cada Joystick controlar seu devido componente.

Segue abaixo minha programação.
Voltei ela para a estaca zero.
Nesse momento eu consigo controlar normalmente o Servo motor.
Só preciso de ajuda para elaborar a programação para controlar os motores.

Observação: As ligações estão corretas e a comunicação está perfeita, sem delay nenhum.

Meu unico problema é gerar os códigos para movimentar os motores, sem afetar o movimento do servo.

Preciso muito de ajuda, esse projeto é para segunda-feira 13/05 e estou sem saída... :confused:

Código Mestre:

int state = 0;
int potValue = 0;
int pot2Value = 0;

void setup() {
Serial.begin(38400); // Default communication rate of the Bluetooth module
}

void loop() {
if(Serial.available() > 0){ // Checks whether data is comming from the serial port
state = Serial.read(); // Reads the data from the serial port
}

// Reading the potentiometer
potValue = analogRead(A0);
int potValueMapped = map(potValue, 0, 1023, 0, 255);
Serial.write(potValueMapped); // Sends potValue to servo motor
delay(10);

// Reading the potentiometer 2
pot2Value = analogRead(A1);
Serial.write("{");
Serial.write(pot2Value);
Serial.write("}");
delay(10);

}

Código Escravo:

#include <Servo.h>

Servo myServo;
int motorA = 5; // velocidade motor A - de 0 a 255
int motorB = 6; // velocidade motor B - de 0 a 255
int dirA = 7; // direcao do motor A - HIGH ou LOW
int dirB = 8; // direcao do motor B - HIGH ou LOW
int state = 20;
int pot2Value = 0;
boolean flag_pot2 = false;

void setup() {
 pinMode(motorA, OUTPUT);
 pinMode(motorB, OUTPUT);
 pinMode(dirA, OUTPUT);
 pinMode(dirB, OUTPUT);
 myServo.attach(9);
 Serial.begin(38400); // Default communication rate of the Bluetooth module
}

void loop() {
if(Serial.available() > 0){ // Checks whether data is comming from the serial port
  state = Serial.read(); // Reads the data from the serial port
   if(state == "{")
   {
     flag_pot2 = true;
   }
    if(flag_pot2 && state != "{")
    {
      analog2Value = state;
    }
    else
    {
      flag_pot2 = false;
    }
    //Limpa Buffer
    state = " ";
}
// Controlling the servo motor
myServo.write(state);
delay(10);

if(pot2Value < 512) {
 //Reverso
 int velocidade = map(pot2Value, 511, 0, 0, 255);
 digitalWrite(dirA, LOW); // SENTIDO DE ROTACAO
 digitalWrite(dirB, LOW);
 analogWrite(motorA, velocidade); // VELOCIDADE
 analogWrite(motorB, velocidade);
} else {
   //Frente
   int velocidade = map(pot2Value, 512, 1023, 0, 255);
 digitalWrite(dirA, HIGH); // SENTIDO DE ROTACAO
 digitalWrite(dirB, HIGH);
 analogWrite(motorA, velocidade); // VELOCIDADE
 analogWrite(motorB, velocidade);
 
}

}

Por favor,preciso muito de ajuda para resolver isso... :sob:

Escravo.ino (1.46 KB)

Mestre.ino (655 Bytes)

Rpz eu estava com um problema parecido, no momento que eu mandava duas informações pelo write, muitas vezes ela chegava embaralhadas, pois a ordem podia ser info1,info2 ou o inverso, ou erro de delay e etc...

li esses dois tópicos para ter uma luz:

https://groups.google.com/forum/#!topic/mitappinventortest/-njmYtVEzp0

espero que ajude em algo!!