Sei sulla pagina 1di 5

PRACTICA 4 SENSOR ULTRASONICO

OBJETIVOS
Familiciarse con el entorno de programacin
Incluir bibliotecas asa una programacin de Arduino
Conocer el sensor ultrasnico
Abrir la ventana del puerto serial para visualizar los datos que esta mandando el sensor
ultrasnico
MATERIALES
1 protoboard
1 sensor ultrasnico HC-04
3 metros de cable interfon
1 placa de Arduino uno
INTRODUCCION
Los ultrasonidos son seales acsticas cuyas frecuencias de 20 a 400 Khz- estn por encima del rango de
frecuencias sensibles al odo humano.
Los sensores de ultrasonidos son capaces de medir la distancia a la que estn respecto a un objeto por medio
de un sistema de medicin de ecos. Los sensores de ultrasonidos estn formados por un transductor que emite
un pulso corto de energa ultrasnica. Cuando el pulso es reflejado por un objeto, el sensor captura el eco
producido por medio de un receptor, y mediante un sistema de tratamiento de la seal, calcula la distancia a la
que est de dicho objeto. La frmula para calcular la distancia de un sensor de ultrasonidos es:
d= 1/2 v t
Dnde d es distancia, v es velocidad y t es tiempo.

El HC-SR-04 es un sensor de 4 pines, dos de alimentacin VCC (+) y GND(-) y dos para capturar la distancia
Trig y Echo.
VCC.
Trig (Disparo del ultrasonido).
Echo (Recepcin del ultrasonido).
GND.
El sensor se alimenta a 5Vdc, por lo que lo podremos alimentar directamente desde Arduino, y podemos
llegar a detectar objetos hasta 5m con una resolucin de 1cm.

Para medir la distancia con el HC-SR04 hay que generar un pulso en el pin Trig de un ancho o tiempo de
10s como mnimo. Al mismo tiempo hay que monitorizar la seal que llega al pin de Echo. La distancia
calculada por el sensor se corresponde a la frmula:
Distancia = (Ancho de Pulso Velocidad Sonido) /2

.
Sea como sea, en la parte de programacin de esta prctica veremos cmo funciona con ms detalle,
programando rutinas a bajo nivel y despus haciendo uso de la librera Ultrasonic.

DESARROLLO
Lo primero que haremos es declarar y definir los pines de Arduino que usaremos para conectarlo al sensor. En
nuestro caso usaremos los pines 12 y 13. El pin 12 de Arduino ir conectado al pin Trig del sensor y el pin 13
de Arduino al pin Echo del sensor. El esquema queda como sigue:



Para calcular la distancia a la que est un objeto, utilizaremos la frmula:
d=1/2 343 t
Pero como nos interesa conocer la distancia en cm, lo que hacemos es calcular cunto se tarda en recorrer 1
cm: 343 m/s = 34300 cm/s. Entonces, aplicando la formula "Distancia = Velocidad x Tiempo, tenemos
que 1cm = 34300t. Despejando, t =29,15us. Por lo que finalmente, la frmula para calcular la distancia con
el sensor es:
d = (t/2) / 29.4
Ahora bien, Cmo medimos realmente la distancia? La respuesta a esta pregunta la hemos respuesto antes,
con el pin de Echo, que utiliza la siguiente frmula para calcular la distancia:
distancia = (Ancho de Pulso Velocidad Sonido) /2
Por lo tanto, para llegar a obtener la distancia hay que seguir 4 pasos:
1- Emitir pulsos de amplitud de 10us por el pin de Trig.
2- Medir el ancho de pulso recibido por el pin de Echo.
3- Calcular la distancia en m.
4- Pasar esta distancia a cm, que es como nos devuelve los valores la librera.


En la segunda parte de la practica complicamos un poco las cosas, ya que realizaremos un completo sistema
de alarma en funcin de la distancia, que por ejemplo podra usarse como un sensor de aparcamiento o de
obstculos en un vehculo. Para ello aadimos 2 componentes al sistema: el LED (2) y el buzzer. El esquema
queda como el de la imagen:

Cuando un objeto se acerque a una distancia que consideremos peligrosa haremos sonar el buzzer y
encenderemos un LED rojo, cuando no haya obstculos cerca encenderemos un LED verde. El sistema por lo
tanto tiene tanto indicadores visuales como acsticos.
Como antes, definimos primero qu pines de Arduino utilizamos y cmo los conectamos con los diferentes
dispositivos. Respecto a la primera parte se aaden los Leds rojo y verde, que conectaremos en los pines de
Arduino 6 y 5 respectivamente, y un buzzer que conectaremos con el pin 4.


#include "Ultrasonic.h"

Ultrasonic ultrasonic(12,13); // En lugar de declarar los Pin echo y Pin
trig, puedo hacerlo directamente con esta funcin

int Pinrojo=6;
int Pinverde=5;
int buzzer=4;

void setup() {
Serial.begin (9600);
pinMode(Pinverde,OUTPUT); //Definimos los pines, notar que ya no
definimos los pines del sensor
pinMode(Pinrojo, OUTPUT);
pinMode(buzzer,OUTPUT);
}

void loop() {
int cm;
Serial.print("Duracin del pulso de recepcin:");
Serial.print(ultrasonic.Timing()); //Aqui obtenemos el tiempo del
pulso de eco en high
Serial.println(" us");
cm=ultrasonic.Ranging(CM); //Aqui hacemos la conversin a cm
Serial.print("Distancia: ");
Serial.print(ultrasonic.Ranging(CM));
Serial.println(" cm");

if (cm>20) //20 cm es la distancia de
emergencia
{
digitalWrite(Pinverde, HIGH); //En caso que un objeto est lejos,
pintamos el LED verde
digitalWrite(Pinrojo, LOW);
digitalWrite(buzzer, LOW);
}
else if (cm<20)
{
digitalWrite(Pinverde, LOW); //Si el objeto est muy cerca, hacemos
sonar la alarma buzzer y el LED rojo
digitalWrite(Pinrojo, HIGH);
digitalWrite(buzzer, HIGH);
}
delay(500);
}
Usando la librera podemos sacar algunas conclusiones:
1. Podemos simplificar el cdigo.
2. Podemos acceder a mediciones interesantes, ya no slo la distancia respecto a un objeto sino tambin el
ancho de pulso de eco. Con estas dos mediciones incluso podramos hacer una tabla para ver la
correlacin ancho de pulso vs distancia de nuestro sensor.
3. Aunque es conveniente usar libreras, perder un poco de tiempo para programar instrucciones ms
bsicas nos ayuda a comprender el mecanismo de funcionamiento del sensor y en general de lo que
programemos. Esto nos puede ayudar para desarrollar nuevas funciones.

Potrebbero piacerti anche