ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

SENSOR ULTRASONICO


Enviado por   •  14 de Septiembre de 2021  •  Trabajo  •  1.636 Palabras (7 Páginas)  •  172 Visitas

Página 1 de 7

ROBÓTICA BÁSICA

Práctica 1

Sensor ultrasónico HC-SR04

Objetivo: Conocer el funcionamiento de un sensor ultrasónico, utilizar el sensor en una aplicación práctica real.

Materiales:

  • Arduino UNO y cable de conexión a PC
  • Protoboard
  • Cables tipo pin macho-macho
  • 3 Resistencias de 220 Ω
  • 1 LED verde
  • 1 LED amarillo
  • 1 LED rojo
  • 1 Sensor ultrasónico Arduino (HC-SR04)
  • 1 Buzzer de 5 volts

Aplicación y conexión de Sensor ultrasónico HC-SR04

Se trata de un circuito muy sencillo. Por un lado vamos a tener toda la parte de alertas, acústica y visual, y por otra parte el sensor de ultrasonidos. En el siguiente esquema te muestro el conexionado.

[pic 1]

Cosas a tener en cuenta. Las resistencias son de 220 Ω y se colocan en serie con los LEDs. El sensor ultrasónico Arduino se conecta a dos pines digitales, uno para el trigger o disparador y otro para el echo o receptor. El buzzer Arduino se conecta a una salida PWM.

Lo primero que haré será plantear el algoritmo del sistema de detección de obstáculos.

  1. Comprobar la distancia de los objetos
  1. ¿Está dentro del rango para avisar?
  1. Si
  1. Lanzar alarma visual y sonora
  2. Continuar
  1. No
  1. Continuar

El algoritmo del sistema de alerta visual y sonora sería el siguiente.

  1. ¿Está en zona verde?
  1. Si
  1. Encender LED verde
  2. Emitir sonido 1
  3. Salir
  1. No
  1. Continuar
  1. ¿Está en zona amarilla?
  1. Si
  1. Encender LED amarillo
  2. Emitir sonido 2
  3. Salir
  1. No
  1. Continuar
  1. ¿Está en zona roja?
  1. Si
  1. Encender LED rojo
  2. Emitir sonido 2
  3. Salir
  1. No
  1. Continuar

De los dos algoritmos anteriores, deducimos que vamos a necesitar varios umbrales de decisión, uno para cada situación. Podemos coger una simple regla y determinarlos.

  • Umbral 1: está en zona verde desde 30 cm a 20 cm.
  • Umbral 2: está en zona amarilla, desde 20 cm a 10 cm.
  • Umbral 3: está en zona roja, menos de 10 cm.

Variables y constantes

A través del sensor de ultrasonidos vamos a detectar el obstáculo. Comenzamos a programar declarando las variables y constantes. Siempre que trabajemos con pines digitales o analógicos, es una buena práctica declarar una constante por cada uno de ellos. Definimos los pines para los LEDs, para el sensor de ultrasonidos y para el buzzer Arduino. Siempre debemos fijarnos en el esquema eléctrico mostrado anteriormente. Luego declaramos 4 constantes. La primera es la velocidad del sonido convirtiendo de metros por segundo a centímetros por segundo. Esto lo hacemos multiplicando por 100. Las siguientes constantes son los umbrales de decisión que hemos marcado antes.

Función setup

En la función setup iniciamos el monitor serie y ponemos los pines en el modo correspondiente. Los LEDs, el Trigger del sensor de ultrasonidos y el buzzer son en modo salida (OUTPUT). El pin Echo del sensor ultrasónico en modo entrada (INPUT). Por último vamos a empezar desde un estado conocido, todos los LEDs apagados. He creado una función para realizar esta tarea.

Función Loop

La función loop() contiene el código que se repetirá una y otra vez. Aquí es donde vamos a ir poniendo todo nuestro algoritmo, el que hemos detallado anteriormente. He dividido esta función en varias funciones para hacer el código más legible.

Lo primero que hacemos es preparar el sensor de ultrasonidos. Esto lo hacemos con la función iniciarTrigger() que manda un pulso. Comienza en estado bajo durante 2 milisegundos, luego 10 milisegundos estado alto y por último ponemos en estado bajo. Esto indica que a continuación se mandará la señal para que la capte el echo.

Una vez que está preparado el sensor, ya podemos utilizarlo para calcular la distancia. Eso lo hacemos con la función calcularDistancia(). Es una función particular ya que nos va a devolver un valor. Eso se hace poniendo al final (o donde quieras) la palabra reservada return seguido del valor que quieres devolver. Todo el código que haya por debajo del returnno se ejecuta así que precaución. En este caso yo devuelvo la distancia calculada dentro de la función que es una variable del tipo float.

Para calcular el tiempo se utiliza la función nativa de Arduino pulseIn. Esta función nos devuelve el tiempo transcurrido hasta que cambia de estado. Anteriormente hemos preparado el sensor dejando el pin, donde tenemos conectado el trigger, en estado bajo. Cuando la onda ultrasónica viaja por el aire, rebota en el objeto y es detectada por el echo, el pin cambia de estado a alto (HIGH).

La función pulseIn detecta eso precisamente, y devuelve el tiempo transcurrido en microsegundos. Por este motivo se debe convertir a segundos multiplicando por 0,000001 que es lo mismo que dividir por 1.000.000. Con esta información ya podemos aplicar la fórmula para calcular la distancia en función del tiempo y la velocidad. Seguidamente recibimos el pulso de respuesta del sensor por el pin Echo, para medir el pulso usamos la función pulseIn(pin, value) y agregamos la variable t, tiene el tiempo que dura en llegar el eco del ultrasonido, el siguiente paso  es calcular la distancia entre el sensor ultrasónico y el objeto t = pulseIn(Echo, HIGH);

...

Descargar como (para miembros actualizados) txt (10 Kb) pdf (210 Kb) docx (108 Kb)
Leer 6 páginas más »
Disponible sólo en Clubensayos.com