Sunteți pe pagina 1din 3

Universidad Tecnológica de Tijuana

Tecnologías de Información y Comunicación

Ejercicio 13. Sensor de Proximidad Ultrasónico


En esta práctica se va a utilizar un componente que determina la distancia de un objeto, por
ejemplo un robot que necesite evadir obstáculos para seguir cierto camino. Se trata
entonces de un sensor ultrasónico, en este caso el modulo ultrasónico modelo HC-SR04.

El sensor ultrasónico tiene un componente activo que emite un sonido de alta frecuencia
(sonido que no puede ser captado por el oído humano). Cuando dicha onda choca con un
objeto, ésta rebota y viaja de regreso al sensor, de esta manera el sistema digital que posee
calcula la distancia a la que se encuentra el objeto. ¿Cómo lo hace? Bien, muchos sabrán la
típica formula de velocidad = distancia/tiempo, es como el módulo determina la distancia a
partir de la velocidad de sonido y el tiempo en que va y regresa la onda después de reflejarse
en los objetos y paredes.

MATERIALES
• Arduino
• Sensor Ultrasonico HC-SR04
• Cables
• LED’s

INDICACIONES
De acuerdo al siguiente diagrama, se conecta GND y Voltaje del sensor a la alimentación +5V
del Arduino. El pin de Trig va al pin 13 del Arduino y el pin Echo va al pin 12 del Arduino. Los
LED’s van conectados a los pines 5 y 7.

Introducción al Internet de las Cosdas Pág. 1/3


Universidad Tecnológica de Tijuana
Tecnologías de Información y Comunicación

En el código se explica paso a paso. El programa constantemente estará midiendo la


distancia que hay entre algún objeto y el sensor ultrasónico; al detectar que el objeto está a
menos de 10 cm de distancia, el LED rojo (o de alerta) se va a encender, se puede modificar
el código para establecer otras distancias.

Al principio, se emite una señal desde el módulo y cuando el sensor la recibe de vuelta, éste
cuenta el tiempo que transcurre, dicho tiempo es el tiempo que dura el sonido en viajar de
ida y de vuelta. Al tener el tiempo del sonido se puede calcular la recorrida distancia, en los
comentarios del código se explica más a detalle que es lo que sucede en el programa.

Después se hace uso de la consola serial (o monitor serie) para imprimir la distancia que
existe entre el objeto y el sensor.

Código

int pingPin = 13; //Pin que emite los sonidos, Trig


int entradaPin = 12; //Pin que va a recibir de vuelta la onda

int ledRojo = 5; //LED rojo va en pin 5


int ledVerde = 7; //LED verde va en pin 7

/* zonaSegura : Con esta variable se enciende el LED rojo


cuando la distancia es corta, puede cambiarse con cambiar el
valor, dicho valor está en cm
*/
int zonaSegura = 10; // cm

void setup(){

//Inicializar los pines como entradas y salidas


pinMode(pingPin, OUTPUT);
pinMode(ledRojo, OUTPUT);
pinMode(ledVerde, OUTPUT);
pinMode(entradaPin, INPUT);

Serial.begin(9600); //Inicializamos la comunicacion serial

void loop(){

// Declarar dos variables, duracion y distancia

Introducción al Internet de las Cosdas Pág. 2/3


Universidad Tecnológica de Tijuana
Tecnologías de Información y Comunicación

long duracion, distanciaEnCm;

/* Un pulso bajo-alto-bajo para encender el sensor.


Al encender y apagar se espera en microsegundos */

digitalWrite(pingPin, LOW); // Envía un pulso bajo


delayMicroseconds(2); // Espera dos microsegundos
digitalWrite(pingPin, HIGH);// Envía un pulso alto
delayMicroseconds(5); // Espera 5 microsegundos
digitalWrite(pingPin, LOW); // Se queda en espera

/* Se obtiene la duración en microsegundos mientras


el sensor esté recibiendo la información */

duracion = pulseIn(entradaPin, HIGH);

/* Convertir el tiempo a distancia


La velocidad del sonido es de 340 metros/segundo que
es igual a 29 microsegundos por centímetro, es por eso
que se debe dividir el tiempo de duración entre 29.
Después se divide entre 2 porque es el tiempo que dura en
viajar el sonido de ida y de vuelta. Sólo se requiere
un valor pero ambos son iguales, por lo que se
divide entre 2 */

distanciaEnCm = (duracion/29)/2;

// Desplegar la distancia en el monitor serie


Serial.print(distanciaEnCm);
Serial.println(" cm");

/* Encender los LED's, cuando la distancia es


mayor a la zona segura se prende el LED verde y
se apaga el rojo. Cuando la distancia es menor
a la zona segura se prende el LED rojo y se apaga el LED
verde */

if(distanciaEnCm > zonaSegura){


digitalWrite(ledVerde, HIGH);
digitalWrite(ledRojo, LOW);
} else {
digitalWrite(ledVerde, LOW);
digitalWrite(ledRojo, HIGH);
}
// Retardo de 100 milisegundos antes de volver a sensar
delay(100);
} // Fin del programa

Introducción al Internet de las Cosdas Pág. 3/3

S-ar putea să vă placă și