HC-SR04 y SRF05 sensores de ultrasonido con Arduino

En este proyecto, aprenderemos a utilizar el sensor ultrasónico SRF05 para medir distancias y mostrarlas en una pantalla LCD 16x2. El tutorial también aplica para el sensor HC-SR04



Ambos sensores tienen el mismo principio de funcionamiento además que la conexión al Arduino es la misma para ambos casos. Existe una pequeña diferencia y es que el SRF05 es más preciso y puede medir distancias más largas que su hermano menor el HC-SR04.



Materiales:
  • Sensor de ultrasonidos HC-SR04 o SRF05
  • Pantalla LCD 16x2 (1602A)
  • Potenciómetro de cualquier valor (para la pantalla)
  • Resistencia de 220 ohm (para la pantalla)
  • Cables
  • Protoboard o breadboard
  • Arduino

Estos sensores funcionan mediante la transmisión y posteriormente recepción de una onda ultrasónica, la cual es inaudible para el oído humano ya que es de muy alta frecuencia. El sensor posee dos cilindros: uno lo utiliza para enviar la onda y otro lo utiliza para detectar el eco de la onda cuando rebota sobre un objeto.
  • Se envía desde el Arduino una señal que dura 10 microsegundos a través del pin TRIG para activar el sensor y este pueda empezar a detectar objetos
  • El sensor automáticamente envía 8 ondas de tipo cuadrada a una frecuencia de 40 KHz
  • Cuando la onda regresa al sensor, el pin ECHO se pone en alto o HIGH. La duración de ese HIGH depende del tiempo en que demoró la onda en regresar al sensor.

Lo que el Arduino recibe por parte del sensor es el tiempo de una señal en HIGH,  entonces es necesario convertir dicho tiempo en distancia. Esto se logra gracias a la fórmula de v=d/t (velocidad es igual a la distancia recorrida en un determinado tiempo). De dicha fórmula se puede despejar la distancia y queda: d = v*t

En este caso la "v" corresponde a la velocidad del sonido en el  aire a 20°C la cual es 343 m/s ya que depende de la temperatura. Como se va a trabajar en centímetros y microsegundos, quedaría 0.034 cm/microsegundos. En el caso de "t" corresponde al tiempo que dura activa la señal en HIGH. Como la señal viaja hacia el objeto y luego regresa al sensor, la fórmula queda: d = (v*t)/2



Con respecto a la conexión con el Arduino, los pines TRIG y ECHO van a pines digitales, VCC a 5V y GND a tierra. En el sensor SRF-05 el pin OUT no se utiliza. La pantalla LCD se conecta como se explica en este tutorial.



El código del proyecto se puede descargar desde aquí: https://drive.google.com/open?id=0Bxr9tDhyoU1ZUFBWb3U0YXQ4Wmc

El proyecto funcionando se ve así:



Comentarios

  1. Muito bom!!! tem como fazer um tutorial do servo sendo controlado por esse sensor?

    ResponderBorrar
  2. se puede trabajar con arduino uno?

    ResponderBorrar
  3. Hola! Tengo un problema con el cálculo de la distancia de mi sensor ultrasónico. Calcula bien la distancia pero aparentemente de vez en cuando aparece un valor: 72cm / 0,72cm al perder la señal. He intentado hacer un reset para que no aparezca este número y se mantenga el valor anterior pero no funciona.

    ResponderBorrar
  4. Quizás te funcione esto:
    distance = sensor.distance_cm()
    if (distance>0):
    temp=distance
    if (distance<0): //por ejemplo
    distance=temp

    Saludos

    ResponderBorrar

Publicar un comentario