Práctica Ultrasónico
Martes, 26 de enero de 2021 - Miércoles, 27 de enero de 2021
¿Qué y cómo aprendí?
En estas sesiones de clases hemos trabajado un circuito que consta de 3 sensores ultrasónicos, y cada uno debe de detectar la distancia marcada.
Circuito:
Código:
const int trigger = 12;
const int echo = 11;
const int trigger1 = 9;
const int echo1 = 8;
const int trigger2 = 7;
const int echo2 = 6;
float d;
float d1;
float d2;
void setup() {
Serial.begin(9600);
pinMode(trigger, OUTPUT);
pinMode(echo, INPUT);
pinMode(trigger1, OUTPUT);
pinMode(echo1, INPUT);
pinMode(trigger2, OUTPUT);
pinMode(echo2, INPUT);
}
void loop()
{
digitalWrite(trigger, LOW);
digitalWrite(trigger1, LOW);
digitalWrite(trigger2, LOW);
delayMicroseconds(5);
digitalWrite(trigger, HIGH);
digitalWrite(trigger1, HIGH);
digitalWrite(trigger2, HIGH);
delayMicroseconds(10);
digitalWrite(trigger, LOW);
digitalWrite(trigger1, LOW);
digitalWrite(trigger2, LOW);
d = pulseIn(echo, HIGH);
d1 = pulseIn(echo1, HIGH);
d2 = pulseIn(echo2, HIGH);
d = d/29/2;
d1 = d1/29/2;
d2 = d2/29/2;
Serial.print("Distancia: ");
Serial.print(d);
Serial.println("cm");
Serial.print("Distancia1: ");
Serial.print(d1);
Serial.println("cm");
Serial.print("Distancia2: ");
Serial.print(d2);
Serial.println("cm");
delay(10);
}
¿Cuáles fueron sus dificultades y cómo las superó?
Las dificultades en esta práctica surgieron al momento de colocar las variables de dos sensores ultrasónicos, el primero funcionaba correctamente, pero en los otros dos no se declaraban las variables. Al parecer en la primera ocasión habíamos escrito nombres cualquiera, luego optamos por tener los mismos del primer sensores y de ninguna manera funcionaba. Las superamos colocando el numero original de la variable junto a un número.
const int trigger1 = 12;
const int echo1 = 11;
const int trigger2 = 9;
const int echo2 = 8;
const int trigger3 = 7;
const int echo3 = 6;
float d1;
float d2;
float d3;
//d1 adelante
//d2 izquierda
//d3 derecha
void setup() {
Serial.begin(9600);
pinMode(trigger1, OUTPUT);
pinMode(echo1, INPUT);
pinMode(trigger2, OUTPUT);
pinMode(echo2, INPUT);
pinMode(trigger3, OUTPUT);
pinMode(echo3, INPUT);
}
void loop()
{
//ADELANTE
digitalWrite(trigger1, LOW);
delayMicroseconds(5);
digitalWrite(trigger1, HIGH);
delayMicroseconds(10);
digitalWrite(trigger1, LOW);
d1 = pulseIn(echo1, HIGH);
d1 = d1/29/2;
Serial.print("Distancia1: ");
Serial.print(d1);
Serial.println("cm");
delay(5);
//IZQUIERDA
digitalWrite(trigger2, LOW);
delayMicroseconds(5);
digitalWrite(trigger2, HIGH);
delayMicroseconds(10);
digitalWrite(trigger2, LOW);
d2 = pulseIn(echo2, HIGH);
d2 = d2/29/2;
Serial.print("Distancia2: ");
Serial.print(d2);
Serial.println("cm");
delay(5);
//DERECHA
digitalWrite(trigger3, LOW);
delayMicroseconds(5);
digitalWrite(trigger3, HIGH);
delayMicroseconds(10);
digitalWrite(trigger3, LOW);
d3 = pulseIn(echo3, HIGH);
d3 = d3/29/2;
Serial.print("Distancia3: ");
Serial.print(d3);
Serial.println("cm");
delay(5);
if (d1<=40 && d2<=40 && d3<=40)
//Retroceder
{
Serial.println("retroceder");
}
else if (d1>=40 && d2>=40 && d3>=40)
//Avanzar
{
Serial.println("avanzar");
}
else if (d1<=40 && d2<=40 && d3>=40)
//Gira derecha
{
Serial.println("derecha");
}
else if (d1<=40 && d2>=40 && d3<=40)
{
Serial.println("Izquierda");
}
//Retroceder
else if (d1<=40 && d2>=40 && d3>=40)
{
Serial.println("Derecha");
}
}
Miércoles, 3 de febrero de 2021
Código actualizado
const int trigger1 = 12;
const int echo1 = 11;
const int trigger2 = 9;
const int echo2 = 8;
const int trigger3 = 7;
const int echo3 = 6;
float d1;
float d2;
float d3;
void setup() {
Serial.begin(9600);
pinMode(trigger1, OUTPUT);
pinMode(echo1, INPUT);
pinMode(trigger2, OUTPUT);
pinMode(echo2, INPUT);
pinMode(trigger3, OUTPUT);
pinMode(echo3, INPUT);
}
void loop()
{
{
//ADELANTE
digitalWrite(trigger1, LOW);
delayMicroseconds(5);
digitalWrite(trigger1, HIGH);
delayMicroseconds(10);
digitalWrite(trigger1, LOW);
d1 = pulseIn(echo1, HIGH);
d1 = d1/29/2;
Serial.print("Distancia: ");
Serial.print(d1);
Serial.println("cm");
delay(5);
//IZQUIERDA
digitalWrite(trigger2, LOW);
delayMicroseconds(5);
digitalWrite(trigger2, HIGH);
delayMicroseconds(10);
digitalWrite(trigger2, LOW);
d2 = pulseIn(echo2, HIGH);
d2 = d2/29/2;
Serial.print("Distancia1: ");
Serial.print(d2);
Serial.println("cm");
delay(5);
//DERECHA
digitalWrite(trigger3, LOW);
delayMicroseconds(5);
digitalWrite(trigger3, HIGH);
delayMicroseconds(10);
digitalWrite(trigger3, LOW);
d3 = pulseIn(echo3, HIGH);
d3 = d3/29/2;
Serial.print("Distancia2: ");
Serial.print(d3);
Serial.println("cm");
delay(5);
}
if (d1<=40 && d2<=40 && d3<=40)
//Retroceder
{
Serial.println("retroceder")
else if (d1>=40 && d2>=40 && d3>=40)
//Avanzar
{
Serial.println("avanzar")
else if (d1<=40 && d2<=40 && d3>=40)
//Gira derecha
{
Serial.println("derecha")
elseif (d1<=40 && d2>=40 && d3<=40)
Serial.println("Izquierda")
//Retroceder
{
}
}
Comentarios
Publicar un comentario