Codigo Proyecto final

Codigo Proyecto final

de Damian Fraga Perez -
Número de respuestas: 0

Estamos terminando el código de nuestro proyecto (AUTO A CONTROL REMOTO ANTI-CHOQUES) y estamos teniendo problemas a la hora de fusionar 2 códigos: uno del bluetooth y otro del sensor ultrasónico.

El bluetooth sirve para controlar el auto de manera remota y funciona bien, pero cuando agregamos el código de los sensores, el bluetooth deja de funcionar. 

(Los sensores estan andando bien)

Aqui les dejamos el codigo:

#include <SoftwareSerial.h>
//pines receptor y transmisor utilizados para el HC-05(bluetooth)
byte pinTx = 8;
byte pinRx =9;
//
int distancias1[10] = {0,0,0,0,0,0,0,0,0,0};
int distancias2[10] = {0,0,0,0,0,0,0,0,0,0};
int suma1 = 0;
int promedio1 = 0;
int promedio2 = 0;
//Funciones de control de ruedas
void Atras(int Izq1,int Izq2, int Der1, int Der2, int IzqEn, int DerEn, int VelIzq, int VelDer);
void Adelante(int Izq1,int Izq2, int Der1, int Der2, int IzqEn, int DerEn, int VelIzq, int VelDer);
void Izquierda(int Izq1,int Izq2, int Der1, int Der2, int IzqEn, int DerEn, int VelIzq, int VelDer);
void Derecha(int Izq1,int Izq2, int Der1, int Der2, int IzqEn, int DerEn, int VelIzq, int VelDer);
void Frenar(int Izq1,int Izq2, int Der1, int Der2);
long readUltrasonicDistance1(int triggerPin, int echoPin);
 
 SoftwareSerial bluetooth(pinRx, pinTx); //siempre Rx ante que Tx
 
void setup()
{
  for(int i=2;i<14;i++){
    if(i==9||i==11){
      pinMode(i,INPUT);
    }else{
      pinMode(i,OUTPUT);
    }

  }
 
  Serial.begin(9600);
  bluetooth.begin(9600);
}
 
void loop(){
  //sensor derecha
  suma1 = 0;
  promedio1 = 0;
  for(int i=0;i<10;i++){
    //Serial.println(readUltrasonicDistance1(12,11));
  delay(100);
   distancias1[i] = 0.01723 * readUltrasonicDistance1(12,11);
   //Serial.println(distancias1[i]);
   suma1 = (distancias1[i] + suma1);
  }
  promedio1 = suma1/10;
  Serial.println(promedio1);
//sensor izquierda
  suma1 = 0;
  promedio2 = 0;
  for(int i=0;i<10;i++){
    //Serial.println(readUltrasonicDistance1(12,11));
  delay(100);
   distancias2[i] = 0.01723 * readUltrasonicDistance1(13,7);
   //Serial.println(distancias1[i]);
   suma1 = (distancias2[i] + suma1);
  }
  promedio2 = suma1/10;
  Serial.println("Promedio 2 :" + promedio2);

  bluetooth.listen();
  if(bluetooth.available()){
    char b = bluetooth.read();
    switch(b){
    case 'F': //Adelante
      Adelante(10,4,2,3,6,5,255,135);
      break;
    case 'B': //Atras
      Atras(10,4,2,3,6,5,255,240);
      break;
    case 'R': //Derecha
      Derecha(10,4,2,3,6,5,255,255);
      break;
    case'L': //Izquierda
      Izquierda(10,4,2,3,6,5,255,255);
      break;
    case'G': //AdelanteIzq
      Adelante(10,4,2,3,6,5,20,255);
      break;
    case'I': //AdelanteDer
      Adelante(10,4,2,3,6,5,255,20);
      break;
    case'H': //AtrasIzq
      Atras(10,4,2,3,6,5,20,255);
      break;
    case'J': //AtrasDer
      Atras(10,4,2,3,6,5,255,20);
      break;
    default:
      Frenar(10,4,2,3);
      }
  }
  /*if(promedio1 < 5){
     
  }else{
    if(bluetooth.available()){
    char b = bluetooth.read();
    switch(b){
    case 'F': //Adelante
      Adelante(10,4,2,3,6,5,255,135);
      break;
    case 'B': //Atras
      Atras(10,4,2,3,6,5,255,240);
      break;
    case 'R': //Derecha
      Derecha(10,4,2,3,6,5,255,255);
      break;
    case'L': //Izquierda
      Izquierda(10,4,2,3,6,5,255,255);
      break;
    case'G': //AdelanteIzq
      Adelante(10,4,2,3,6,5,20,255);
      break;
    case'I': //AdelanteDer
      Adelante(10,4,2,3,6,5,255,20);
      break;
    case'H': //AtrasIzq
      Atras(10,4,2,3,6,5,20,255);
      break;
    case'J': //AtrasDer
      Atras(10,4,2,3,6,5,255,20);
      break;
    default:
      Frenar(10,4,2,3);
      }
  }
  }*/
 
}
/*int Izq1,int Izq2, int Der1, int Der2, int IzqEn, int DerEn, int VelIzq, int VelDer
      pin10    pin4      pin2      pin3      pin6       pin5      Velocidades de motor*/

void Frenar(int Izq1,int Izq2, int Der1, int Der2){
  digitalWrite(Der2,LOW);
  digitalWrite(Der1,LOW);
  digitalWrite(Izq2,LOW);
  digitalWrite(Izq1,LOW);
}
 
void Adelante(int Izq1,int Izq2, int Der1, int Der2, int IzqEn, int DerEn, int VelIzq, int VelDer){
  digitalWrite(Der2,LOW);//pin3
  digitalWrite(Der1,HIGH);//pin2
  digitalWrite(Izq2,LOW);//pin4
  digitalWrite(Izq1,HIGH);//pin10
  analogWrite(DerEn,VelDer);
  analogWrite(IzqEn,VelIzq);
}
 
void Atras(int Izq1,int Izq2, int Der1, int Der2, int IzqEn, int DerEn, int VelIzq, int VelDer){
  /*digitalWrite(2,LOW);
  digitalWrite(3,HIGH);
  digitalWrite(10,LOW);
  digitalWrite(4,HIGH);*/

  digitalWrite(Der1,LOW);//pin2
  digitalWrite(Der2,HIGH);//pin3
  digitalWrite(Izq1,LOW);//pin10
  digitalWrite(Izq2,HIGH);//pin4
  analogWrite(DerEn,VelDer);
  analogWrite(IzqEn,VelIzq);
}
 
void Derecha(int Izq1,int Izq2, int Der1, int Der2, int IzqEn, int DerEn, int VelIzq, int VelDer){
  digitalWrite(Der1,LOW);
  digitalWrite(Der2,HIGH);
  digitalWrite(Izq2,LOW);
  digitalWrite(Izq1,HIGH);
}
void Izquierda(int Izq1,int Izq2, int Der1, int Der2, int IzqEn, int DerEn, int VelIzq, int VelDer){
  digitalWrite(Der2,LOW);
  digitalWrite(Der1,HIGH);
  digitalWrite(Izq1,LOW);
  digitalWrite(Izq2,HIGH);
}

long readUltrasonicDistance1(int triggerPin, int echoPin){
 
  digitalWrite(triggerPin, LOW);
  delayMicroseconds(2);
  // Sets the trigger pin to HIGH state for 10 microseconds
  digitalWrite(triggerPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(triggerPin, LOW);
  pinMode(echoPin, INPUT);
  // Reads the echo pin, and returns the sound wave travel time in microseconds
  return pulseIn(echoPin, HIGH);
}