SR04


El SR04 es un sensor de ultrasonidos. Los sensores de ultrasonidos son detectores de proximidad que trabajan libres de roces mecánicos y que detectan objetos a distancias que van desde pocos centímetros hasta varios metros. El sensor emite un sonido y mide el tiempo que la señal tarda en regresar.



Un sensor de ultra sonidos es un dispositivo para medir distancias. Su funcionamiento se base en el envío de un pulso de alta frecuencia, no audible por el ser humano. Este pulso rebota en los objetos cercanos y es reflejado hacia el sensor, que dispone de un micrófono adecuado para esa frecuencia.

Midiendo el tiempo entre pulsos, conociendo la velocidad del sonido, podemos estimar la distancia del objeto contra cuya superficie impacto el impulso de ultrasonidos

Los sensores de ultrasonidos son sensores baratos, y sencillos de usar. El rango de medición teórico del sensor HC-SR04 es de 2cm a 400 cm, con una resolución de 0.3cm. En la práctica, sin embargo, el rango de medición real es mucho más limitado, en torno a 20cm a 2 metros.

Los sensores de ultrasonidos son sensores de baja precisión. La orientación de la superficie a medir puede provocar que la onda se refleje, falseando la medición. Además, no resultan adecuados en entornos con gran número de objetos, dado que el sonido rebota en las superficies generando ecos y falsas mediciones. Tampoco son apropiados para el funcionamiento en el exterior y al aire libre.

Pese a esta baja precisión, que impide conocer con precisión la distancia a un objeto, los sensores de ultrasonidos son ampliamente empleados. En robótica es habitual montar uno o varios de estos sensores, por ejemplo, para detección de obstáculos, determinar la posición del robot, crear mapas de entorno, o resolver laberintos.

En aplicaciones en que se requiera una precisión superior en la medición de la distancia, suelen acompañarse de medidores de distancia por infrarrojos y sensores ópticos.

El esquema de conexiones es el siguiente:

arduino-ultrasonidos-esquema-electrico

El siguiente programa hace uso del sensor ultrasonido y calcula la distancia a la que están los objetos:

/*Pines a utilizar por Arduino. Puedes modificarlos por los pines digitales que desees*/

int Trig = 4;
int Echo = 3;

//Variable en la que se va a almacenar el valor correspondiente a la distancia
int Dist;

void setup() {

  pinMode (Trig, OUTPUT);
  pinMode (Echo, INPUT);

}

//Este módulo calcula y devuelve la distancia en cm del sensor ultrasónico arduino.
/*
  Puedes poner el código del módulo directamente en el loop o utilizar el módulo
  para reducir el número de líneas de código del loop o reutilizar el código
*/
void ultrasonido (int &Distancia) {

  //Para estabilizar el valor del pin Trig se establece a LOW
  digitalWrite (Trig, LOW);
  delay(10);

  //Se lanzan los 8 pulsos
  digitalWrite (Trig, HIGH);
  delay(10);
  digitalWrite (Trig, LOW);

  /*
    Se mide el tiempo que tarda la señal en regresar y se calcula la distancia.

    Observa que al realizar pulseIn el valor que se obtiene es tiempo, no distancia

    Se está reutilizando la variable Distancia.
  */

  Distancia = pulseIn (Echo, HIGH);
  Distancia = Distancia / 58;

  delay(100);

}

void loop() {

  ultrasonido (Dist);

  delay (250);
}