Cómo usar Módulo de ultrasonidos con Arduino

Posted on by
Módulo de Ultrasonidos para Arduino ( HC-SR04 ).

Módulo de Ultrasonidos para Arduino ( HC-SR04 ).

Medir distancias mediante sensores de ultrasonidos con Arduino es muy común, pero no solo se miden distancias, también se utilizan  en robótica para la detección de obstáculos. Si estas pensando en utilizar uno de estos módulos en tus proyectos a continuación explicamos como funciona el sensor HC-SR04.

Funcionamiento

Los módulos de ultrasonidos se utilizan para el cálculo de distancias basándose en el tiempo que se tarda en detectar su propio eco. Sabiendo que el sonido viaja a una velocidad de 340 m/s y el tiempo que tarda el sonido que genera el sensor desde que se emite hasta que su eco es percibido, podremos calcular la distancia entre el sensor y el objeto que refleja el sonido.  En el sensor HC-SR04 activaremos la emisión del ultrasonido poniendo el pin Trig a 1 durante 10 µs, a continuación el pin Echo  se pondrá a 1 desde que se emite el sonido hasta que se deja de detectar su eco. De manera que midiendo este tiempo y multiplicándolo por la velocidad del sonido sabremos la distancia que ha recorrido.

Especificaciones

Alimentación 5V
Ángulo de detección 60°
Rango de detección 2cm – 450cm
Precisión ±0,3cm
Pines VCC: VCC
GND: GND
Trig: Entrada digital
Echo: Salida digital

Conectar con Arduino

Conexión de Módulo de Ultrasonidos con Arduino UNO.

Conexión de Módulo de Ultrasonidos con Arduino UNO.

Conectamos los dos pines de alimentación con Arduino, además necesitaremos un pin digital de salida para el Trigger y un pin digital de entrada para el Echo. En este ejemplo hemos utilizado el pin 12 para el Trigger y el pin 11 para el Echo.

Código

Hay que tener en cuenta varias cosas en el código, en primer lugar para facilitar los cálculos hemos convertido la velocidad del sonido de metros por segundo (340) a centímetros por microsegundo (0.034), ya que al medir el tiempo del Echo en microsegundos directamente multiplicándolos con la velocidad tendremos la distancia en centímetros. En segundo lugar hay que tener el cuenta que el tiempo que medimos es el que tarda el ultrasonido en ir hasta el objeto y volver hasta el sensor de nuevo, por lo que la distancia que queremos medir es en realidad la mitad de la que hemos calculado.

const int soundSpeed = 0.034; //Centimetros por microsegundo
const int trigPin = 12;
const int echoPin = 11;

// variables
long duration;
int distance;

void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
Serial.begin(9600);
digitalWrite(trigPin, LOW);
}

void loop() {
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);

duration = pulseIn(echoPin, HIGH);

distance= (duration*soundSpeed)/2;

Serial.print("Distancia: ");
Serial.print(distance);
Serial.println(" cm");
}

 

Comments are disabled