Sensor de Distancia HC-SR04 Con Arduino
Sensor de Distancia HC-SR04 Con Arduino
Para la interacción con el entorno físico existen diversos Que el alumno comprenda el funcionamiento del sensor
dispositivos capas de cuantificar estos fenómenos, en esta práctica se ultrasónico así como que sea capaz de implementarlo para medir
hará uso del sensor HC-SR04, el cual es un dispositivo capaz de diferentes distancias mediante la comprensión de su funcionamiento.
cuantificar la distancia a la que se encuentra un objeto mediante el
envío y recepción de pulsos. IV.MATERIAL
7 Resistencias
7 Led de diferentes colores
1 Sensor HC-SR04
1 Arduino
1 Metro
V. DESARROLLO
II. JUSTIFICACIÓN
La práctica presente se lleva a cabo con el fin de que el alumno
conozca un dispositivo extra para censar las variables físicas del
entorno. En este caso El sensor para medir distancia con el sensor
ultrasónico HC-SR04. Fig. 2 Funcionamiento del sensor HC-SR04
1
La interfaz digital se logra mediante dos pines digitales, el pin de La razón de dividir el resultado entre dos es que el tiempo que
trigger (disparo) y el de echo (eco). tarda el pulso es el tiempo de ida más el de regreso, pero para la
distancia únicamente nos interesa conocer el tiempo que tarda en ir,
El primero recibe un pulso de habilitación de parte del no en regresar, por eso se debe dividir entre dos este resultado. Una
microcontrolador, mediante el cual se le indica al módulo vez hecho esto, el valor que nos entregara será la distancia correcta
que comience a realizar la medición de distancia. en cm
A través de un segundo pin (echo) el sensor “muestra” al
microcontrolador un pulso cuyo ancho es proporcional al Para estar seguros de que nuestros cálculos son correctos podemos
tiempo que tarda el sonido en viajar del transductor al hacer uso del siguiente circuito y programa:
obstáculo y luego de vuelta al módulo.
Fig. 3 Pulso
Una vez que conseguimos el tiempo que tarda en recorrer un cm /*Monitorización en centímetros por el monitor serial*/
Serial.print("Distancia: ");
simplemente despejamos la distancia y el tiempo será una variable de
Serial.print(distancia);
entrada, con lo que la ecuación para la obtención de la distancia será Serial.println(" cm");
la siguiente: delay(3000);
}
0.0343𝑐𝑚/𝑢𝑠 ∗ 𝑡𝑢𝑠
𝑑𝑐𝑚 =
2
2
Como se puede observar en él código anterior, el programa no hace
más que lo explicado anteriormente, emitirá un pulso por la patilla 9
que está asignada al "trigger" que previamente se habrá reseteado
//declaracion de constantes y variables
(puesta a LOW) para evitar problemas.
const int trig=2, echo=3;
digitalWrite(pulso,LOW); //Por cuestión de estabilización del sensor const int L5=8, L10=9, L15=10, L20=11, L30=12;
delayMicroseconds(5); float duración=0, distancia=0;
digitalWrite(pulso, HIGH) //envío del pulso ultrasónico
delayMicroseconds(10); void setup() {
//comunicacion con puerto serial
Serial.begin(9600);
Y en las siguientes instrucciones se obtiene el tiempo (al recibir el
"echo") y se aplica la fórmula explicada anteriormente para obtener
//configuracion de los pines de entrada y salida
la distancia exacta al objeto pinMode(trig,OUTPUT);
pinMode(echo,INPUT);
tiempo = pulseIn(rebote, HIGH); //función para medir el tiempo y
//guardarla en la variable "tiempo"
pinMode(L5,OUTPUT);
distancia = 0.01715*tiempo; //fórmula para calcular la distancia
pinMode(L10,OUTPUT);
pinMode(L15,OUTPUT);
pinMode(L20,OUTPUT);
Una vez que se tenga armado el circuito y se haya cargado el pinMode(L30,OUTPUT);
programa anterior al arduino, tan solo se deberá abrir la }
comunicación serie para poder visualizar la distancia a la que se
encuentra el objeto más cercano. Para abrir el monitor serie en el void loop() {
entorno de programación de arduino, basta con ir a la pestaña //disparo de 10us de trigger
"herramientas" y darle a opción "Monitor Serial" o usar las teclas de digitalWrite(trig,LOW);
acceso rápido Ctrl + Mayúsculas + M. delayMicroseconds(2);
digitalWrite(trig,HIGH);
Se abrirá una pestaña como la siguiente que mostrará el valor de delayMicroseconds(10);
la distancia en "cm". digitalWrite(trig,LOW);
3
Analizando el código tenemos inicialmente la declaración de los
puertos a usar de arduino y las variables a usar, las cuales se igualan
a cero para evitar datos basura.
Finalmente, el último bloque se encarga de mostrar los valores de Para la figura 7 tenemos una distancia de 13.04cm, lo cual activa
distancia a través del monitor serial. el segundo led debido a la distancia mayor de 10cm. Mientras que en
la figura 8 observamos ya tres led´s encendidos, esto ya que la
C. Programa en operación distancia medida es de 18.66cm, la cual es mayor a 15cm, con la cual
enciende el tercer led
Con nuestro circuito y programas implementados procedemos a
realizar un par de pruebas para la comprobación de su
funcionamiento. Para ellos se muestran a continuación algunas
imágenes donde se observa el circuito, implementado, las mediciones
de distancia y los led´s.
4
Fig. 9 Distancia > 20cm
VII. Conclusiones
José Alberto Pascual Huerta: