Sensor Ultrasonido HC-SR04 – El Famoso Ultrasonido

Este sensor nos permite medir distancias o detectar objetos hasta 4,5 Mts como lo hacen los radares de los submarinos o como lo hacen los murciélagos, por medio del ultrasonido. Este dispositivo posee dos transductores uno el cual emite pulsos de ultrasonido y otro que lo recibe, al enviar esta pulso el rebotara contra un objeto o cosa que este a su alcance, y lo recibirá el transductor receptor, la distancia se calcula por la formula aquella de física.

Distancia=tiempo x la velocidad

Este dispositivo es muy famoso ya que que envía una señal digital HIGH tan pronto es recibido el pulso, y con la ayuda de nuestra arduino aun mas fácil, pues con la función pulseIn(x,y) nos da el tiempo.

Distancia=tiempo x la velocidad del sonido

pero se debe dividir entre 2 ya que lel tiempos que dura el pulso en recorrer la distancia es el doble, debido a que el pulso es emitido y este llegará al objeto y rebotara de el, hasta alcanzar nuevamente el sensor, como se puede observar en la gráfica anterior. Entonces el sonido recorre la distancia 2 veces.

la velocidad del sonido = 340m/s

El tiempo capturado por la función de arduino pulseIn(Pin,Valor), esta función retorna el tiempo de duración en cambiar de estado en microsegundos.

donde Pin: es el pin digital asignado para leer el pulso.

Valor: el pulso que leerá HIGH o LOW.

como el tiempo entregado por la función es en microsegundos se debe llevar la formula a microsegundos y cm, donde la formula seria:

Distancia=(Tiempo X 0.034 )/2

Nota: el tiempo que debe durar el dispositivo para generar el pulso es de 20 microsegundos, para que la lectura sea lo mas confiable posible.

Pines de Conexión:

 

Conexión con Arduino:

 

Programación Arduino:

Código Arduino:

// declaramos las variables
int Trig=7;
int Echo=8;
int time1;
int distancia;


void setup() {
// Iniciamos el puerto serial para leer los datos
//a traves del monitor serial
Serial.begin(9600);
// configuramos los pines digitales
pinMode(Trig,OUTPUT);
pinMode(Echo,INPUT);

}

void loop() {
  //Iniciamos llevando el Trig a LOW para asegurarnos que no emita
  //ningun pulso
  digitalWrite(Trig,LOW);
  delayMicroseconds(20);
  // se envia el pulso
  digitalWrite(Trig,HIGH);
  delayMicroseconds(20);
  // se lleva el Trig nuevamete a LOW para que no emita mas
  digitalWrite(Trig,LOW);
  // tomamos el tiempo de la funcion pulseIn
  time1=pulseIn(Echo,HIGH);
  //Aplicamos la formula
  distancia=int((time1*0.034)/2);
  //Imprimos la distancia en el puerto serial
  Serial.print("Distancia: ");Serial.println(distancia);
  //esperamos 1 segundo para iniciar nuevamente
  delay(1000);
 }

Espero que les sea de bastante ayuda y sigan aprendiendo, no olviden suscribirse a mi canal de YouTube y seguirme en las redes… Gracias!

 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *