Saltar navegación

Sensor ultrasonido para Arduino - Contenido educativo

Ajuste de pantalla

El ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:

Subido el 8 de febrero de 2025 por Victoriano G.

1 visualizaciones

Descargar la transcripción

Hola a todos y bienvenidos al capítulo 5 de Arduino desde cero en español. 00:00:00
En esta oportunidad vamos a conectar un sensor ultrasonico para medir distancia 00:00:06
y activar un LED cuando un objeto se encuentre dentro de un determinado rango. 00:00:11
También hablaremos sobre el monitor serial. 00:00:17
Antes de armar el circuito veamos un poco sobre este sensor. 00:00:20
Específicamente se trata del modelo HC-SR04. 00:00:24
Existen otros modelos disponibles en el mercado que funcionan correctamente con Arduino, pero este se caracteriza por ser muy fácil de usar y tiene un bajo precio. 00:00:28
Si lo miramos de frente resaltan dos componentes con forma de cápsula. Estos son el transmisor y receptor ultrasonico. 00:00:40
El sensor usa ondas de sonido a alta frecuencia para detectar la distancia a un objeto. 00:00:49
el sonido que emite no lo podemos escuchar ya que tiene una frecuencia de 40 kHz 00:00:55
prácticamente el doble de la frecuencia máxima que el oído humano puede percibir 00:01:01
el sonido se propaga a una velocidad constante en el aire 00:01:07
con lo cual si calculamos el tiempo que demora en emitirse la señal 00:01:10
y la recepción de la misma causada por el rebote sobre un objeto 00:01:15
podremos calcular la distancia con buena precisión 00:01:20
Este es un sensor activo, ya que debemos alimentarlo para usarlo y también incluye varios circuitos integrados que son los encargados de generar el pulso de sonido y luego recibirlo. 00:01:24
Estos circuitos que incluye nos facilitan la vida a la hora de la programación, por eso veremos que solo tiene 4 pines, que son VCC, Trigger, Echo y GND. 00:01:38
VCC y GND serán la alimentación que la obtendremos directamente de Arduino 00:01:51
Trigger será el pin al cual le enviaremos una señal para que dispare el pulso ultrasonico 00:01:58
Y por el pin ECO obtendremos otro pulso indicando que la señal ha sido recibida 00:02:04
Ahora si vamos al circuito de protoboard 00:02:10
Coloquemos el sensor como se muestra 00:02:14
VCC lo conectaremos al positivo del riel de tensión GND a masa 00:02:17
del trigger iremos con un cable directo al pin digital 10 de Arduino 00:02:22
y del pin ECO con otro cable directo al pin digital 9 00:02:28
eso es todo para el sensor 00:02:33
ahora el clásico circuito del LED conectando el cátodo a masa 00:02:35
y a través de una resistencia de 330 ohms conectamos el ánodo al pin digital 3. 00:02:40
Finalmente alimentamos la protoboard con 5V y GND de Arduino. 00:02:47
Comenzaremos el código definiendo las variables que representan los pines a los cuales tenemos conectados el sensor y el LED. 00:02:54
Así que escribiremos int trig igual a 10, int echo igual a 9, int led igual a 3. 00:03:01
Y también definiremos estas dos variables que luego usaremos, int duración e int distancia. 00:03:14
Ahora el setup. 00:03:24
PinMode trig output. 00:03:26
Pin Mode, Echo, Input. 00:03:31
Pin Mode, LED, Output. 00:03:36
Perfecto, ahora haremos el loop. 00:03:40
Lo primero será generar una señal que debemos enviar al pin trigger del sensor. 00:03:43
Este pulso debe tener una duración que le especifica el fabricante del sensor. 00:03:49
por eso cada vez que utilicemos un sensor activo es importante leer las indicaciones de la planilla de datos 00:03:54
en este caso debemos enviar un pulso generado inicialmente con un nivel alto de 1 milisegundo y luego un nivel bajo 00:04:01
por eso escribiremos digital write trig high delay 1 digital write trig low 00:04:10
De esa forma le estaremos indicando al sensor que deseamos que emita un pulso y luego con la siguiente función tomaremos el tiempo que tarda en respondernos mediante el pin echo. 00:04:23
Duración igual a PulseInEchoHigh. 00:04:37
El nombre de la función es PulseIn con la I mayúscula 00:04:43
Quizás en pantalla parezca una L pero es una I mayúscula 00:04:48
Lo que hace es devolver un valor de tiempo en microsegundos que lo asignamos a la variable duración 00:04:53
El primer parámetro es el pin en donde espera por el pulso, en nuestro caso Echo 00:05:00
Y el segundo parámetro es High ya que espera por un pulso alto 00:05:06
en definitiva con esa simple línea ya tenemos el tiempo que ha transcurrido 00:05:12
desde la emisión del pulso ultrasonico hasta la recepción del mismo 00:05:17
provocado por el rebote en un objeto 00:05:22
ahora convertiremos ese valor de tiempo en distancia que es lo que nos interesa 00:05:24
distancia igual a duración dividido 58.2 00:05:30
para obtener la distancia medida en centímetros 00:05:38
debemos dividir el valor de duración por una constante que es 58.2 nuevamente este es un 00:05:41
valor especificado por el fabricante del sensor y no debe variarse muy bien ya con esas pocas 00:05:49
líneas tenemos la distancia al objeto más cercano a nuestro sensor el detalle es cómo hacemos para 00:05:56
ver el valor de la distancia si no tenemos ningún dispositivo de visualización como ser un panel 00:06:04
LCD. Aquí es donde entra en juego el monitor serial, también llamado monitor serie. Nuestra 00:06:10
computadora se comunica con Arduino mediante el cable USB, eso ya lo sabemos. Por el mismo 00:06:18
enviamos el código que escribimos para que se ejecute. Por el mismo cable podemos también 00:06:24
obtener información, es decir que Arduino le envíe información a la computadora y nosotros 00:06:30
podemos visualizarla en una ventana del IDE. Para activar la comunicación serial solo se requiere 00:06:36
agregar la siguiente línea de código en el setup. Serial.begin entre paréntesis 9600. 9600 es la 00:06:44
tasa de velocidad de la comunicación, la cantidad de bits por segundo que estaremos recibiendo y es 00:06:56
un valor adecuado para la mayoría de los casos. Ahora solo debemos enviar el valor 00:07:03
de la distancia, esto lo haremos con la siguiente línea. Serial.println entre paréntesis distancia. 00:07:09
La función println es println, es decir imprimir una línea. Colocará el valor de la variable 00:07:19
distancia y luego un enter de forma automática. Agreguemos un delay para que nos demore un 00:07:28
poco entre dato y dato, si no es muy rápido y difícil de visualizar. Con 200 milisegundos 00:07:36
es suficiente. Delay entre paréntesis 200. Vamos ya mismo a verificar y subir el programa. 00:07:43
Para abrir el monitor serial hacemos clic en el icono que se encuentra en el extremo 00:07:53
superior derecho como se muestra en pantalla. Ahí se abrirá una nueva ventana donde podremos 00:07:59
ver el valor de distancia que está leyendo el sensor. Como coloca cada valor en una nueva 00:08:05
línea se realiza un desplazamiento automático o scroll. El valor de más abajo es siempre 00:08:11
el último leído. Como se muestra en pantalla el sensor nos devuelve el valor leído en 00:08:18
centímetros. En mi caso, el circuito está sobre un escritorio apuntando a una pared que se encuentra 00:08:24
algo más de 3 metros. Por eso aparece 320 aproximadamente. En tu caso, por supuesto que 00:08:31
será otro valor. Para verificar, podemos colocar un objeto delante y luego ir acercándolo de a poco. 00:08:40
Se puede colocarla a mano pero no es lo ideal 00:08:47
Un trozo de cartón, una caja o nuestro teléfono celular 00:08:50
Darán un buen rebote a la señal y veremos como va cambiando el valor que nos muestra el monitor serial 00:08:55
Perfecto, ya con eso sabemos que el sensor funciona correctamente 00:09:01
Durante la prueba quizás viste que en algún momento mostró un valor negativo 00:09:06
Esto es normal y significa que el sensor está fuera de rango 00:09:11
ya sea porque el objeto está muy lejos o porque no recibe correctamente el rebote del pulso ultrasonico. 00:09:15
Ahora vamos a agregar unas líneas de código a nuestro programa 00:09:22
para que se encienda el LED cuando el sensor detecte una distancia de 20 centímetros o menos. 00:09:26
Es un método muy utilizado para la detección de obstáculos. 00:09:34
Si estamos haciendo un robot o dispositivo que se desplaza 00:09:37
seguramente desearemos que detecte si hay un obstáculo en su camino y actuar en consecuencia 00:09:41
como ser detener el motor de avance, recalcular una nueva ruta, etc. 00:09:47
Nosotros lo haremos haciendo encender un LED. 00:09:53
Escribamos la siguiente 00:09:57
if distancia menor igual 20 and and distancia mayor igual 0 cerramos paréntesis abrimos llave enter 00:09:59
la sentencia if ya la vimos en el capítulo 3 y la condición que deseamos evaluar es la distancia 00:10:14
es decir que si la distancia está entre 0 y 20 centímetros ejecutaremos el código dentro de las llaves 00:10:21
recuerdan que hablamos que algunas veces si el sensor está fuera de rango devuelve un valor negativo 00:10:29
por eso dentro del if colocamos luego del doble ampersand para que evalúe también si el valor es mayor a 0 00:10:36
de manera de desestimar si obtenemos una distancia con valor negativo 00:10:45
Queda claro entonces que este IF evaluará verdadero si la distancia está entre 0 y 20 centímetros 00:10:50
Por eso debemos encender el LED con 00:11:00
DigitalWrite entre paréntesis LED coma high 00:11:03
Como ya sabemos debemos aplicar una demora para poder visualizar el LED encendido 00:11:09
Lo que haremos es aprovechar el valor de distancia para generar una demora que sea proporcional a la distancia. 00:11:15
Escribamos las siguientes líneas. 00:11:23
Delay entre paréntesis distancia por 10. 00:11:26
Luego DigitalWrite entre paréntesis LED Low. 00:11:31
El delay en vez de tener un valor fijo será el producto de la distancia por 10. 00:11:37
entonces si por ejemplo entramos al IF con una distancia media de 20 centímetros 00:11:43
el delay será de 20 por 10 es decir 200 milisegundos 00:11:50
si el objeto se sigue acercando entonces el delay será un número menor 00:11:55
haciendo que el LED prenda y apague cada vez con mayor rapidez 00:12:01
luego solo resta apagar el LED y será todo el código necesario 00:12:06
Vamos a verificar, subir y abrir el monitor serial. 00:12:11
Como se puede ver en el monitor serial cuando la distancia sea de 20 centímetros o menos, 00:12:16
el LED encenderá y apagará de forma repetida y lo hará más rápidamente a medida que el objeto esté más cerca. 00:12:23
Una modificación posible al circuito es reemplazar el conjunto LED y resistencia directamente por un zumbador o buzzer. 00:12:31
entonces cuando el objeto esté en rango en vez de encender el led 00:12:40
encenderá el zumbador emitiendo un pitido 00:12:45
que se incrementará en frecuencia a medida que el objeto esté más cerca 00:12:49
muy parecido a lo que muchos coches tienen en su paragolpes al activar la marcha atrás 00:12:53
eso es todo por este capítulo 00:13:00
en el próximo veremos cómo utilizar un servomotor 00:13:02
que se caracteriza por tener una gran fuerza o torque y gran precisión también aprenderemos a 00:13:06
alimentar arduino con una alimentación externa como siempre les pido se suscriban para recibir 00:13:12
notificaciones y por cualquier duda o comentario lo pueden hacer debajo que con gusto les responderé 00:13:19
chao y hasta la próxima 00:13:26
Materias:
Electrónica
Niveles educativos:
▼ Mostrar / ocultar niveles
  • Formación Profesional
    • Ciclo formativo de grado básico
      • Primer Curso
      • Segundo Curso
    • Ciclo formativo de grado medio
      • Primer Curso
      • Segundo Curso
    • Ciclo formativo de grado superior
      • Primer Curso
      • Segundo Curso
Subido por:
Victoriano G.
Licencia:
Todos los derechos reservados
Visualizaciones:
1
Fecha:
8 de febrero de 2025 - 6:57
Visibilidad:
Clave
Centro:
IES JULIO VERNE
Duración:
13′ 30″
Relación de aspecto:
1.78:1
Resolución:
1280x720 píxeles
Tamaño:
21.34 MBytes

Del mismo autor…

Ver más del mismo autor


EducaMadrid, Plataforma Educativa de la Comunidad de Madrid

Plataforma Educativa EducaMadrid