Tutorial: sensor ultrasonidos HC-SR04
El sensor de ultrasonidos se enmarca dentro de los sensores para medir distancias o superar obstáculos, entre otras posibles funciones.
En este caso vamos a utilizarlo para la medición de distancias. Esto lo consigue enviando un ultrasonido (inaudible para el oído humano por su alta frecuencia) a través de uno de la pareja de cilindros que compone el sensor (un transductor) y espera a que dicho sonido rebote sobre un objeto y vuelva, retorno captado por el otro cilindro.
Este sensor en concreto tiene un rango de distancias sensible entre 3cm y 3m con una precisión de 3mm.
¿Qué recibimos en el sensor?
El tiempo que transcurre entre el envío y la recepción del ultrasonido.
¿Cómo vamos a traducir dicho tiempo en distancia?
Aprovechando que la velocidad de dicho ultrasonido en el aire es de valor 340 m/s, o 0,034 cm/microseg (ya que trabajaremos con centímetros y microsegundos).
Para calcular la distancia, recordaremos que v = d / t (definición de velocidad: distancia recorrida en un determinado tiempo).
De la fórmula anterior despejamos d, obteniendo d = v · t, siendo v la constante anteriormente citada y t el valor devuelto por el sensor a la placa Arduino.
También habrá que dividir el resultado entre 2 dado que el tiempo recibido es el tiempo de ida y vuelta.
Ahora vamos a la Práctica
Da click en el siguiente enlace y realiza la actividad descrita.
El siguiente es el código que se debe copiar en el IDE de Arduino
// Se importa la libreria NewPing
#include <NewPing.h>
const int trig = 4; //Pin trig en pin 4
const int echo = 3; //Pin Echo en pin 3
const int zumbador = 5; //zumbador en pin 5
const int led = 8; //LED en pin 8
int distancia; //Guardamos la distancia que detecte el
sensor
int pausa; //Guarda el tiempo de espera entre
parpadeo
// Se crea un objeto con la libreria NewPing llamado sonar
NewPing sonar(trig, echo, 200); // Each sensor's trigger pin, echo pin,
and max distance to ping.
void setup(){
pinMode(zumbador,OUTPUT); //Declaramos
el zumbador como salida
pinMode(led, OUTPUT); //Declaramos el LED como salida
}
void loop(){
// en la variable distancia guardamos la distancia
en centimetros que detecta el sonar respecto al objetivo
distancia = sonar.ping_cm();
if (distancia < 100){ //restringir
el alcance a 1m (100cm)
pausa = distancia * 10; //guardamos el tiempo de pausa
digitalWrite(zumbador, HIGH); //encendemos
el zumbador
digitalWrite(led,HIGH); //Encendemos
el LED
delay(pausa); //Agregamos un delay que sea igual al
tiempo de pausa
}
digitalWrite(zumbador, LOW); //apagamos el
zumbador
digitalWrite(led, LOW); //apagamos el LED
delay(pausa); // esperamos el tiempo de pausa
Bibliografía
http://elcajondeardu.blogspot.com.es/2014/03/tutorial-sensor-ultrasonidos-hc-sr04.html
No hay comentarios:
Publicar un comentario