Está en la página 1de 4

UNIVERSIDAD AUTONOMA DE YUCATAN

FACULTAD DE INGENIERIA

Proyecto, parte 1
Investigacin Utilizacin del sensor
ultrasnico
Oscar Gomez
Leonardo Alonzo

09/10/2017

CONTROL I
Un complemento imprescindible para muchos de robots o vehculos controlados a distancia es un sensor
que nos permita saber la distancia libre de obstculos para movernos. Si las distancias van a ser pequeas
podemos emplear sensores de infrarrojos, pero si queremos movernos en reas grandes y poder medir
distancias en un rango de varios metros el complemento perfecto es un sensor de ultrasonidos.

El concepto bsico, es siempre el mismo, sabiendo a qu velocidad viaja el sonido, si emitimos un pulso
snico corto y escuchamos cuanto tiempo tarda en regresar el eco podemos calcular la distancia a la que se
encuentra el objeto en el que ha rebotado la seal.

El radar funciona de modo similar aunque usando ondas de radio frecuencia muy cortas y con una
problemtica propia descomunal. Un pulso de radiofrecuencia se emite desde la antena y se recoge el eco
que vuelve a la velocidad de la luz.

Aprenderemos como utilizar un sensor de distancia sencillo HC-SR04 (y muy parecido a los sensores de
aparcamiento de los coches modernos), que nos permite enviar estos pulsos ultrasnicos y escuchar el eco
de retorno. Midiendo este tiempo, podemos calcular la distancia hasta el obstculo.

El odo humano no percibe sonidos por encima de 20kHz. Por eso, a las ondas de mayor frecuencia las
llamamos ultrasonidos (ms all del sonido). Los sensores de ultrasonidos funcionan sobre los 40 kHz.

No son perfectos, les influye la temperatura ambiente, la humedad y los materiales en los que reflejan, lo
que genera una cierta incertidumbre. Pero a cambio son baratos y efectivos hasta un poco ms de 3 metros
en condiciones normales si la precisin no es un problema determinante.

Aqu est el esquema elctrico y de protoboard:

Utilizaremos un sensor de ultrasonidos HC-SR04 cuyo rango de medida va desde los 3cm a los 3m, suficiente
para cualquier proyecto de robtica y que tan solo utiliza 2 pines digitales de nuestro Arduino para hacerlo
funcionar.

Volvamos al sensor de ultrasonidos: solo tiene 4 pines, uno de alimentacin (5v), uno de masa (GND), uno
de disparo (Trig) y uno de seal (Echo).

A travs del pin de disparo (Trig) enviaremos una seal de activacin al sensor, lo activaremos durante 10
microsegundos y lo desactivaremos, luego mediante la funcin pulseIn capturaremos la seal de respuesta
del sensor, aqu hay que recordar que el tiempo que nos devuelve el sensor es el tiempo que el sonido tarda
en ir y volver, por lo que para aplicarlo en la formula debemos dividirlo por la mitad. Despus utilizando un
poquito de matemticas que ya hemos explicado antes obtendremos la distancia en centmetros.

long tiempo;
int disparador = 7; // triger
int entrada = 8; // echo
float distancia;
void setup()
{
pinMode(disparador, OUTPUT);
pinMode(entrada, INPUT);
Serial.begin(9600);
}
void loop()
{
// lanzamos un pequeo pulso para activar el sensor
digitalWrite(disparador, HIGH);
delayMicroseconds(10);
digitalWrite(disparador, LOW);
// medimos el pulso de respuesta
tiempo = (pulseIn(entrada, HIGH)/2); // dividido por 2 por que es el
// tiempo que el sonido tarda
// en ir y en volver
// ahora calcularemos la distancia en cm
// sabiendo que el espacio es igual a la velocidad por el tiempo
// y que la velocidad del sonido es de 343m/s y que el tiempo lo
// tenemos en millonesimas de segundo
distancia = float(tiempo * 0.0343);
// y lo mostramos por el puerto serie una vez por segundo
Serial.println(distancia);
delay(1000);
}

CARACTERSTICAS DEL HC-SR04

Alimentacin de 5 volts.
Interfaz de cuatro hilos (vcc, trigger, echo, GND).
Rango de medicin: 2 cm a 400cm.
Corriente de alimentacin: 1.5mA.
Frecuencia de pulso: 40Khz.
Apertura del pulso ultrasnico: 15.
Seal de disparo: 10us.
Dimensiones del mdulo: 45x20x15mm.

Todas las conexiones se realizan con el Arduino Apagado (desconectado de la PC o de cualquier fuente
externa).

Ahora abrimos el entorno de programacin de Arduino, en Herramientas ->Tarjeta, y seleccionamos el


modelo de placa Arduino que estemos utilizando. Nosotros seleccionaremos Arduino Uno.

Una vez configurado el IDE, empezamos a programar nuestro sketch, explicaremos paso a paso el cdigo
para sea ms comprensible:
Primero configuramos los pines y la comunicacin serial a 9800 baudios

const int Trigger = 2; //Pin digital 2 para el Trigger del sensor


const int Echo = 3; //Pin digital 3 para el echo del sensor
void setup() {
Serial.begin(9600);//iniciailzamos la comunicacin
pinMode(Trigger, OUTPUT); //pin como salida
pinMode(Echo, INPUT); //pin como entrada
digitalWrite(Trigger, LOW);//Inicializamos el pin con 0
}
Ahora en el bucle void loop() empezamos enviando un pulso de 10us al Trigger del sensor
digitalWrite(Trigger, HIGH);
delayMicroseconds(10); //Enviamos un pulso de 10us
digitalWrite(Trigger, LOW);
Seguidamente recibimos el pulso de respuesta del sensor por el pin Echo, para medir el pulso
usamos la funcin pulseIn(pin, value)

t = pulseIn(Echo, HIGH); //obtenemos el ancho del pulso

La variable t, tiene el tiempo que dura en llegar el eco del ultrasonido, el


siguiente paso es calcular la distancia entre el sensor ultrasnico y el
objeto. Partimos de la siguiente formula:

Donde Velocidad es la velocidad del sonido 340m/s, pero usaremos las unidades en cm/us pues
trabajaremos en centmetros y microsegundos, tiempo es el tiempo
que demora en llegar el ultrasonido al objeto y regresar al sensor, y
la distancia recorrida es dos veces la distancia hacia el objeto,
reemplazando en la formula tenemos:

Finalmente enviamos serialmente el valor de la distancia y terminamos poniendo una pausa de 100ms, que
es superior a los 60ms recomendado por los datos tcnicos del sensor

A continuacin se muestra el cdigo completo del programa.

const int Trigger = 2; //Pin digital 2 para el Trigger del sensor


const int Echo = 3; //Pin digital 3 para el Echo del sensor
void setup() {
Serial.begin(9600);//iniciailzamos la comunicacin
pinMode(Trigger, OUTPUT); //pin como salida
pinMode(Echo, INPUT); //pin como entrada
digitalWrite(Trigger, LOW);//Inicializamos el pin con 0
}
void loop()
{
long t; //timepo que demora en llegar el eco
long d; //distancia en centimetros
digitalWrite(Trigger, HIGH);
delayMicroseconds(10); //Enviamos un pulso de 10us
digitalWrite(Trigger, LOW);
t = pulseIn(Echo, HIGH); //obtenemos el ancho del pulso
d = t/59; //escalamos el tiempo a una distancia en cm
Serial.print("Distancia: ");
Serial.print(d); //Enviamos serialmente el valor de la distancia
Serial.print("cm");
Serial.println();
delay(100); //Hacemos una pausa de 100ms
}

Conecte el Arduino Uno y cargue el programa. Despus de esto el Arduino y sensor ya deben estar
trabajando, para poder visualizar los datos vaya a herramientas y habr el monitor serial. En el monitor
serial le aparecern los valores de la distancia que sensa el HC-SR04, ponga un objeto al frente y vare su
distancia respecto al sensor y verifique que la distancia mostrada en el monitor serial sea la correcta.

También podría gustarte