Vous êtes sur la page 1sur 3

Tutorial Arduino: Detección de obstáculos

Hola a todos. En este tutorial voy a realizar un proyecto que nos servirá para detectar
obstáculos y para que se nos avise de la cercanía de éstos mediante un
piezoeléctrico. El piezoeléctrico hará un sonido intermitente y, cuanto más nos
vayamos acercando al sensor de ultrasonidos HC-SR04, más rápido sonará.

Los ultrasonidos son vibraciones acústicas o sonoras de una frecuencia superior a las
16 KHz, que corresponden al umbral de la audición humana.
Un pulso ultrasónico se transmite y se refleja en un objeto, el sensor recibe el pulso y
lo convierte en una señal eléctrica. El siguiente pulso podrá ser transmitido cuando el
eco desaparezca. Si un pulso de anchura 10 µs es mandado al pin de trigger (en
nuestro caso el pin digital número 6), el ultrasonido enviará ocho señales de 40KHz y
detectará el eco desde el pin de ECHO (en nuestro caso será el pin digital 7). La
medida de la distancia es proporcional al ancho de pulso del eco, el cual puede ser
calculado por fórmula. Si ningún obstáculo es detectado, el pulso que se generará será
de 38ms. Podemos verlo en la siguiente imagen:

La velocidad del sonido a temperatura ambiente, es decir, a 20 ºC, es de


aproximadamente 343 metros/segundo.

La distancia se mide con la siguiente fórmula:

Distancia=Velocidad*Tiempo

Si por ejemplo, tenemos un objeto a 10 centímetros, a una velocidad de 34300


centímetros por segundo, obtendremos un tiempo de T=10/34300=2.92*10^-4
segundos. Éste será el tiempo que la señal tardará en llegar a un objeto situado a 10
centímetros, pero, la señal tiene que volver al receptor, por lo que se empleará el doble
de tiempo. Necesitamos un tiempo de ida, que rebote, y que vuelva, tardando lo mismo
que a la ida. Debido a esto, tendremos que dividir la fórmula anterior por 2. Así,
tendremos en cuenta el tiempo de ida y el tiempo de vuelta.

La librería que realiza estos cálculos, la podéis descargar AQUÍ. Había que realizar un
pequeño cambio, pero ya está modificada porque, para la nueva versión del software,
hay que cambiar la librería WProgram.h por Arduino.h, pero como ya digo, está
lista para usar.

En el código, para utilizar la función PIEZO_BUZZ(), tendremos que pasar 3


parámetros: delay_milis, pwm1 y pwm2. El primer parámetro es para ver la cantidad
de tiempo que queremos que pase entre pitidos. El segundo parámetro, pwm1, es para
modificar el tono del piezoeléctrico. Podemos darle valores entre 0 y 255, así que
escoged el que mejor os parezca. El último parámetro, pwm2, sirve para lo mismo que
pwm1. He dejado la función con estos parámetros de entrada para que los modifiquéis
a vuestro gusto según la distancia que estéis midiendo, la cual podréis ver en el Serial
Monitor.

Código en GitHub:

- MONTAJE

Vous aimerez peut-être aussi