Sensor ultrasónico HC-SR04

Smelpro > Tutoriales  > Arduino  > Sensor ultrasónico HC-SR04

Sensor ultrasónico HC-SR04

Existe una gran diversidad de proyectos posibles en Arduino, para lo que existen muchos tipos de sensores  diseñados para realizar determinadas tareas. En esta ocasión daremos un vistazo al HC-SR04, un sensor de ultrasonido usado frecuentemente en la detección de obstáculos, pero que con unos cuantos códigos se puede lograr medir la distancia entre el sensor y dicho obstáculo.

Este sensor tiene un precio módico, y en relación con su buena calidad es una inversión conveniente. Nosotros usaremos un Arduino UNO, pero cualquier modelo sirve.

Cómo funciona

Su funcionamiento es sencillo, el pin Trigger se comunica con el transductor izquierdo (T) para que envíe pulsos de ultrasonido, mientras que el pin Echo está comunicado al transductor de la derecha (R), el cual se encarga de recibir el eco del ultrasonido enviado previamente.

Especificaciones

Les brindamos un cuadro con las especificaciones técnicas del sensor HC-SR04.

Voltaje de trabajo

5V

Corriente

15mA

Frecuencia de trabajo40HZ
Distancia máxima4m
Distancia mínima2cm
Ángulo de apertura15º
Margen de error3mm o 0.3cm
Duración mínima del pulso de disparo (TTL)10 μS
Duración del pulso de eco de salida (TTL)100-25000 μS
Tiempo mínimo de espera entre mediciones 20 mS

Conexión

Una representación sencilla de cómo y dónde conectar los distintos pines. Puedes encontrar los cables y protoboard en nuestra tienda.

Programación

Iniciamos configurando el IDE de Arduino. Para ello abrimos el menú de «Herramientas», después seleccionamos el modelo de nuestra placa (en nuestro caso es un Arduino UNO, pero cualquier modelo sirve) y eligiendo el puerto (en esta ocasión usaremos el COM3).

La ejecución del código no es compleja, basta con declarar una cuantas variables y usar una fórmula básica de M.R.U.

Aquí les dejamos el código explicado. Incluso añadimos una parte para configurar un LED que se encienda o apague dependiendo de la distancia que perciba, pero puedes eliminar esa parte si no necesitas de ella :

int trig = 9; //Asiganmos el pin Trigger al pin 9 del Arduino
int echo = 8; //Asiganmos el pin Echo al pin 8 del Arduino
int led = 13; //Asignamos el pin 13 del Arduino para controlar el LED

void setup() {
  Serial.begin (9600); //Se inica el puerto Serial
  pinMode (trig, OUTPUT); //Configuramos el pin Trigger como un pin de salida
  pinMode (echo, INPUT); //Configuramos el pin Echo como un pin de entrada
  pinMode (led, OUTPUT); //Configuramos el pin LED como un pin de salida
}

void loop() {

  //Declaramos dos nuevas variables
  long tiempo;
  long distancia;

  digitalWrite(trig, LOW); //El ciclo inicia con el pin Trigger apagado
  delayMicroseconds(4); //Pasan 4 microsegundos
  digitalWrite(trig, HIGH); //Luego de ese tiempo el pin Trigger se enciende
  delayMicroseconds(10);
  digitalWrite(trig, LOW);

  tiempo = pulseIn(echo, HIGH); //El tiempo que el sonido tarda en llegar al receptor de eco es almacenado en la variable "tiempo"
  tiempo = tiempo/2; //El pin Echo ha registrado el tiempo que tarda el sonido en ir y regresar, pero solo nos interesa la mitad del recorrido
  distancia = tiempo / 29; //Fórmula para calcular la distancia

//Mostrar disatncia en el monitor serial
  Serial.print (distancia);
  Serial.println ("cm");
  delay (50);

//Programación del LED
  if (distancia <= 15) { //Si la distancia es menor a 15cm el LED se encenderá
    digitalWrite(led, HIGH);
    delay(500);
  } else {
    digitalWrite(led, LOW);
  }

}

Si abres el Monitor Serie (Ctrl+Mayús+M) deberías ver algo como esto:

Esperamos haberte ayudado con este tutorial. Próximamente abarcaremos otros proyectos. Escribe en los comentarios alguna idea para usar este sensor.

Podemos ayudarte y asesorarte en la realización de tus proyectos, contáctanos.

Blog
No Comments

Post a Comment

Comment
Name
Email
Website