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.
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
Post a Comment