Carrito evita obstáculos
¿Qué y cómo aprendí?
Esta semana trabajamos en la programación de motores para que avancen o retrocedan dependiendo de la distancia del objeto que detecte el sensor.
Código:
int EN1=8 ;
int EN2=9 ;
int EN3=11 ;
int EN4=12 ;
int act12=10;
int act34=5;
const int trigger=3;
const int echo=2;
float dist;
const int buzzer =13;
void setup()
{
pinMode(EN1, OUTPUT);
pinMode(EN2, OUTPUT);
pinMode(EN3, OUTPUT);
pinMode(EN4, OUTPUT);
Serial.begin(9600);
pinMode(trigger,OUTPUT);
pinMode(echo,INPUT);
}
void loop()
{
digitalWrite(trigger,LOW);
delayMicroseconds(5);
digitalWrite(trigger,HIGH);
delayMicroseconds(10);
digitalWrite(trigger,LOW);
dist=pulseIn(echo,HIGH);
dist = dist/58;
Serial.print ("Distancia = ");
Serial.print (dist);
Serial.print (" cm");
Serial.write (10);
delay (200);
if(dist<150){
//atrás
digitalWrite(EN1, LOW); digitalWrite(EN2, HIGH);
analogWrite (act12,100);//0-100
analogWrite (act34,100);//0-100
digitalWrite(EN3, LOW); digitalWrite(EN4, HIGH);
digitalWrite(buzzer, HIGH);
}
else{
//adelante
digitalWrite(EN1, HIGH); digitalWrite(EN2, LOW);
analogWrite (act12,255);//0-255
analogWrite (act34,255);//0-255
digitalWrite(EN3, HIGH); digitalWrite(EN4, LOW);
digitalWrite(buzzer,LOW);
}
}
int EN2=9 ;
int EN3=11 ;
int EN4=12 ;
int act12=10;
int act34=5;
const int trigger=3;
const int echo=2;
float dist;
const int buzzer =13;
void setup()
{
pinMode(EN1, OUTPUT);
pinMode(EN2, OUTPUT);
pinMode(EN3, OUTPUT);
pinMode(EN4, OUTPUT);
Serial.begin(9600);
pinMode(trigger,OUTPUT);
pinMode(echo,INPUT);
}
void loop()
{
digitalWrite(trigger,LOW);
delayMicroseconds(5);
digitalWrite(trigger,HIGH);
delayMicroseconds(10);
digitalWrite(trigger,LOW);
dist=pulseIn(echo,HIGH);
dist = dist/58;
Serial.print ("Distancia = ");
Serial.print (dist);
Serial.print (" cm");
Serial.write (10);
delay (200);
if(dist<150){
//atrás
digitalWrite(EN1, LOW); digitalWrite(EN2, HIGH);
analogWrite (act12,100);//0-100
analogWrite (act34,100);//0-100
digitalWrite(EN3, LOW); digitalWrite(EN4, HIGH);
digitalWrite(buzzer, HIGH);
}
else{
//adelante
digitalWrite(EN1, HIGH); digitalWrite(EN2, LOW);
analogWrite (act12,255);//0-255
analogWrite (act34,255);//0-255
digitalWrite(EN3, HIGH); digitalWrite(EN4, LOW);
digitalWrite(buzzer,LOW);
}
}
¿Cuáles fueron sus dificultades?
Al inicio, me sentí bastante perdido realizando el código, pero luego, con ayuda de mi grupo, fue un poco más sencillo y pudimos lograrlo.
¿Cómo las superó?
Fui a otros grupos y revisé páginas o conexiones similares.
¿Qué me falta por aprender?
Quisiera poder programar con el buzzer, ya que no lo agregué a la conexión.
Comentarios
Publicar un comentario