Circuito definitivo para el carro evita obstaculo

 


Circuito 


A continuación en la clase realizamos ya fue el circuito final para el proyecto del carrito evita obstáculo con todos los componentes necesarios para este.

Este contiene dos motores y 3 sensores de sonido.





Codigo

int EN1=5 ;
int EN2=4 ;
int EN3=8 ;
int EN4=9 ;

int act12=2;
int act34=3;

const int trigger1=11; 
const int echo1=10; 
float dist1;

const int trigger2=13; 
const int echo2=12; 
float dist2;

const int trigger3=7; 
const int echo3=6; 
float dist3;
 
void setup(){
  Serial.begin(9600);
  pinMode(trigger1,OUTPUT);
  pinMode(echo1,INPUT);
  
  Serial.begin(9600);
  pinMode(trigger2,OUTPUT);
  pinMode(echo2,INPUT);
  
  Serial.begin(9600);
  pinMode(trigger3,OUTPUT);
  pinMode(echo3,INPUT);
  
  pinMode(EN1, OUTPUT);
  pinMode(EN2, OUTPUT);
  pinMode(EN3, OUTPUT);
  pinMode(EN4, OUTPUT);
}

void loop(){
  
  //adelante
  digitalWrite(EN1, HIGH); digitalWrite(EN2, LOW);
  analogWrite (act12,255);//0-255
  analogWrite (act34,255);//0-255
  digitalWrite(EN3, HIGH); digitalWrite(EN4, LOW);
  
  
  //atrás
  digitalWrite(EN1, LOW); digitalWrite(EN2, HIGH);
  analogWrite (act12,100);//0-100
  analogWrite (act34,100);//0-100
  digitalWrite(EN3, LOW); digitalWrite(EN4, HIGH);
  
  
  //izquierda
  digitalWrite(EN1, HIGH); digitalWrite(EN2, LOW);
  analogWrite (act12,255);//0-255
  analogWrite (act34,255);//0-255
  digitalWrite(EN3, LOW); digitalWrite(EN4, LOW);

  
  //derecha
  digitalWrite(EN1, LOW); digitalWrite(EN2, LOW);
  analogWrite (act12,255);//0-255
  analogWrite (act34,255);//0-255
  digitalWrite(EN3, HIGH); digitalWrite(EN4, LOW);
 
  
  
  digitalWrite(trigger1,LOW);
  delayMicroseconds(5);         
  digitalWrite(trigger1,HIGH);   
  delayMicroseconds(10);        
  digitalWrite(trigger1,LOW);    
  dist1=pulseIn(echo1,HIGH);      
  dist1 = dist1/58;     
 
  
  digitalWrite(trigger2,LOW);
  delayMicroseconds(5);         
  digitalWrite(trigger2,HIGH);   
  delayMicroseconds(10);        
  digitalWrite(trigger2,LOW);    
  dist2=pulseIn(echo2,HIGH);      
  dist2 = dist2/58;
  
  
  digitalWrite(trigger3,LOW);
  delayMicroseconds(5);         
  digitalWrite(trigger3,HIGH);   
  delayMicroseconds(10);        
  digitalWrite(trigger3,LOW);    
  dist3=pulseIn(echo3,HIGH);      
  dist3 = dist3/58;      
     
  
  
  Serial.print ("Distancia = ");                               
  Serial.print (dist1);          
  Serial.print (" cm");         
  Serial.write (10);            
  delay (200);  
  
  Serial.print ("Distancia = ");                               
  Serial.print (dist2);          
  Serial.print (" cm");         
  Serial.write (10);            
  delay (200);  
  
  Serial.print ("Distancia = ");                               
  Serial.print (dist3);          
  Serial.print (" cm");         
  Serial.write (10);            
  delay (200); 
   
   if(dist1<100 && dist2<100 && dist3>0){
      //derecha
  digitalWrite(EN1, LOW); digitalWrite(EN2, LOW);
  analogWrite (act12,255);//0-255
  analogWrite (act34,255);//0-255
  digitalWrite(EN3, HIGH); digitalWrite(EN4, LOW);
  
   }
    
    else if(dist1<100 && dist3<100 && dist2>100){
      //izquierda
  digitalWrite(EN1, HIGH); digitalWrite(EN2, LOW);
  analogWrite (act12,255);//0-255
  analogWrite (act34,255);//0-255
  digitalWrite(EN3, LOW); digitalWrite(EN4, LOW);
  
     }
         
    else if(dist2<100 && dist3<100 && dist1>100){
      //adelante
  digitalWrite(EN1, HIGH); digitalWrite(EN2, LOW);
  analogWrite (act12,255);//0-255
  analogWrite (act34,255);//0-255
  digitalWrite(EN3, HIGH); digitalWrite(EN4, LOW);
  
      }
      
    else if(dist1<100 && dist2<100 && dist3<100){
      //atrás
  digitalWrite(EN1, LOW); digitalWrite(EN2, HIGH);
  analogWrite (act12,100);//0-100
  analogWrite (act34,100);//0-100
  digitalWrite(EN3, LOW); digitalWrite(EN4, HIGH);
  delay(2000);
      
      //derecha
  digitalWrite(EN1, LOW); digitalWrite(EN2, LOW);
  analogWrite (act12,255);//0-255
  analogWrite (act34,255);//0-255
  digitalWrite(EN3, HIGH); digitalWrite(EN4, LOW);
  delay(2000);
      
      //izquierda
  digitalWrite(EN1, HIGH); digitalWrite(EN2, LOW);
  analogWrite (act12,255);//0-255
  analogWrite (act34,255);//0-255
  digitalWrite(EN3, LOW); digitalWrite(EN4, LOW);
  delay(2000);
      
      //adelante
  digitalWrite(EN1, HIGH); digitalWrite(EN2, LOW);
  analogWrite (act12,255);//0-255
  analogWrite (act34,255);//0-255
  digitalWrite(EN3, HIGH); digitalWrite(EN4, LOW);
  delay(2000);
    }
   }

Comments