Carrito Resuelve Laberintos

Hola a todos como dice el titulo estoy intentando hacer un carrito resuelve laberintos pero soy un principiante en el uso de arduino y lo que pasa que cuando conecto un sensor ultrasonico (HC-SR04) funciona bien pero cuando intento conectar 3 sensores ultrasonicos solo funciona el primero y si alcazo el segundo, alguien sabe porque pasa esto? les dejo mi codigo para que se den una idea
Código:
// Ultrasonico Frontal
#define Pecho 6
#define Ptrig 7
long duracion, distancia; 

// Ultrasonico Izquierdo
#define IzqPecho 5
#define IzqPtrig 4
long Izqduracion, Izqdistancia; 

// Ultrasonico Derecho
#define DerPecho 3
#define DerPtrig 2
long Derduracion, Derdistancia;   
 
void setup() {                
  
  pinMode(Pecho, INPUT);        // define el pin 6 como entrada (echo)
  pinMode(Ptrig, OUTPUT);       // define el pin 7 como salida  (triger)
  pinMode(IzqPecho, INPUT);     // define el pin 5 como entrada (echo)
  pinMode(IzqPtrig, OUTPUT);    // define el pin 4 como salida  (triger)
  pinMode(DerPecho, INPUT);     // define el pin 3 como entrada (echo)
  pinMode(DerPtrig, OUTPUT);    // define el pin 2 como salida  (triger)
  
  pinMode(12, 1);            // Define el pin 13 como salida
  pinMode(11, 1);
  pinMode(10, 1);
  pinMode(9, 1);
  }
  
void loop() {
  
    //Activacion del Sensor delantero
  digitalWrite(Ptrig, LOW);
  delayMicroseconds(2);
  digitalWrite(Ptrig, HIGH);  // genera el pulso de triger por 10ms
  delayMicroseconds(10);
  digitalWrite(Ptrig, LOW);
  
  duracion = pulseIn(Pecho, HIGH);
  distancia = (duracion/2) / 29;            // calcula la distancia en centimetros
  
  //Activacion del Sensor izquierdo
  digitalWrite(IzqPtrig, LOW);
  delayMicroseconds(2);
  digitalWrite(IzqPtrig, HIGH);
  delayMicroseconds(10);
  digitalWrite(IzqPtrig, LOW);
  
  Izqduracion = pulseIn(IzqPecho, HIGH);
  Izqdistancia = (Izqduracion/2) / 29;
  
  //Activacion del Sensor derecho
  digitalWrite(DerPtrig, LOW);
  delayMicroseconds(2);
  digitalWrite(DerPtrig, HIGH);
  delayMicroseconds(10);
  digitalWrite(DerPtrig, LOW);
  
  Derduracion = pulseIn(DerPecho, HIGH);
  Derdistancia = (Derduracion/2) / 29;            // calcula la distancia en centimetros
  
  
  if (distancia >= 9){  // si la distancia es mayor a 9cm 
    digitalWrite(12, 1);
    digitalWrite(10 , 1);
  }
 
   if (distancia <= 4 && Izqdistancia <= 4 && Derdistancia > 4){
    digitalWrite(12, 0);    // en bajo si la distancia es menor a 4
    digitalWrite(11, 0);
    digitalWrite(10, 0);
    digitalWrite(9, 0);
    delay(1000);
    digitalWrite(12,1);     //se gira el carro en 90 grados hacia la derecha
    digitalWrite(9,1);
    delay(1000);            //Tiempo de giro
    digitalWrite(12,0);     //Apaga todo
    digitalWrite(9,0);
    delay(1000);
   }
    
   if (distancia <= 4 && Izqdistancia > 4 && Derdistancia <= 4){
    digitalWrite(12, 0);    // en bajo si la distancia es menor a 4
    digitalWrite(11, 0);
    digitalWrite(10, 0);
    digitalWrite(9, 0);
    delay(1000);
    digitalWrite(11,1);     //se gira el carro en 90 grados hacia la izquierda
    digitalWrite(10,1);
    delay(1000);            //Tiempo de giro
    digitalWrite(11,0);    //Apaga todo
    digitalWrite(10,0);
    delay(1000);  
  }
  
  if (distancia <= 4 && Izqdistancia > 4 && Derdistancia > 4){
    digitalWrite(12, 0);    // en bajo si la distancia es menor a 4
    digitalWrite(11, 0);
    digitalWrite(10, 0);
    digitalWrite(9, 0);
    delay(1000);
    digitalWrite(12,1);     //se gira el carro en 90 grados hacia la derecha
    digitalWrite(9,1);
    delay(1000);            //Tiempo de giro
    digitalWrite(12,0);     //Apaga todo
    digitalWrite(9,0);
    delay(1000);
  }
  if (distancia <= 4 && Izqdistancia <= 4 && Derdistancia <= 4){
    digitalWrite(12, 0);    // en bajo si la distancia es menor a 4
    digitalWrite(11, 0);
    digitalWrite(10, 0);
    digitalWrite(9, 0);
    delay(1000);
    digitalWrite(11,1);     //se gira el carro en 180 grados hacia la izquierda
    digitalWrite(10,1);
    delay(2000);              //Tiempo de giro
    digitalWrite(11,0);       //Apaga todo
    digitalWrite(10,0);
    delay(1000);
  }
                                
}
...
 
Hola a todos como dice el titulo estoy intentando hacer un carrito resuelve laberintos pero soy un principiante en el uso de arduino y lo que pasa que cuando conecto un sensor ultrasonico (HC-SR04) funciona bien pero cuando intento conectar 3 sensores ultrasonicos solo funciona el primero y si alcazo el segundo, alguien sabe porque pasa esto? les dejo mi codigo para que se den una idea ...

¿ Circuito ?
 
Atrás
Arriba