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

Entradas populares de este blog

Practica #1 - Encender Led con fotocelda y pulsador

Practica #4 - Encender LED con pulsador y buzzer

Práctica 1: Carrito evita obstáculos