Sensor ultrasónico SRF05 con Arduino

El sensor ultrasónico es un sensor de proximidad. Este sensor calcula el tiempo y la dirección del ultrasonido en el aire enviando un pulso de audio corto a una frecuencia más alta que el rango de audición humana y recibiéndolo después del reflejo de la superficie del objeto. Usando este tiempo se calcula la distancia la distancia. El método ultrasónico es uno de los mejores métodos para medir distancias y detectar objetos debido a la alta precisión y velocidad, la falta de contacto con el objeto, la ausencia de corrosión y el precio adecuado. La mayoría de los módulos ultrasónicos incluyen un transmisor y un receptor. El receptor y el transmisor de los módulos SRF04 y SRF05 están adyacentes entre sí y pueden detectar objetos en el rango de 2 a 300 cm con precisión. El módulo SRF05 es una versión mejorada de SRF04. Esta versión admite modo dual e incluye 5 pines para trabajar. Pero el módulo SRF04 tiene 4 pines y solo admite un modo. Ambos módulos tienen un modo común que se conoce como modo 1.

En el modo 1 primero, debe aplicar un pulso durante al menos 10 microsegundos al pin de activación. El módulo enviará automáticamente 8 pulsos a la frecuencia de 40 kHz y establecerá el pin Echo en 1. El pin Echo permanece alto hasta que el módulo recibe los pulsos reflejados de un objeto. Luego, podemos calcular el tiempo entre el envío y la recepción de la señal midiendo el tiempo que el pin Echo está en un nivel lógico alto. En este modo, deje el pin SRF05 OUT sin conexión.

El modo 2, que solo está disponible en el módulo SRF05, utiliza un solo pin para las señales de disparo y eco. Para usar este modo, conecte el pin OUT a GND y use el pin Trigger para enviar y recibir el pulso. Podemos calcular la distancia desde el primer objeto midiendo la duración de la señal, como se mencionó anteriormente.

Diagrama de conexión (modo 1)

Ejemplo de código

const int trigPin = 11;
const int echoPin = 12;

// defines variables
long duration;
int distance;

void setup() {
  pinMode(trigPin, OUTPUT); // Sets the trigPin as an Output
  pinMode(echoPin, INPUT); // Sets the echoPin as an Input
  Serial.begin(9600); // Starts the serial communication
}

void loop() {
  // Clears the trigPin
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);

  // Sets the trigPin on HIGH state for 10 micro seconds
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);

  // Reads the echoPin, returns the sound wave travel time in microseconds
  duration = pulseIn(echoPin, HIGH);

  // Calculating the distance
  distance= duration*0.034/2;

  // Prints the distance on the Serial Monitor
  Serial.print(String(distance));
  Serial.println(" cm");

  delay(400);
}

Sé el primero en comentar

Dejar una contestacion

Tu dirección de correo no será publicada.