Un detector de obstáculos infrarrojo es un dispositivo que detecta la presencia de un objeto mediante la reflexión que produce en la luz. El uso de luz infrarroja (IR) es simplemente para que esta no sea visible para los humanos.

Constitutivamente son sensores sencillos. Se dispone de un LED emisor de luz infrarroja y de un fotodiodo (tipo BPV10NF o similar) que recibe la luz reflejada por un posible obstáculo.

Los detectores de obstáculo suelen proporcionarse con una placa de medición estándar con el comparador LM393, que permite obtener la lectura como un valor digital cuando se supera un cierto umbral, que se regula a través de un potenciómetro ubicado en la placa.

Anuncio:

Este tipo de sensores actúan a distancias cortas, típicamente de 5 a 20mm. Además la cantidad de luz infrarroja recibida depende del color, material, forma y posición del obstáculo, por lo que no disponen de una precisión suficiente para proporcionar una estimación de la distancia al obstáculo.

Pese a esta limitación son ampliamente utilizados para la detección de obstáculos en pequeños vehículos o robots. Su bajo coste hace que sea frecuente ubicarlos en el perímetro, de forma que detectemos obstáculos en varias direcciones.

También son útiles en otro tipo de aplicaciones como, por ejemplo, detectar la presencia de un objeto en una determinada zona, determinar una puerta está abierta o cerrada, o si una máquina ha alcanzado un cierto punto en su desplazamiento.

Los sensores de obstáculos infrarrojos son realmente baratos. Podemos encontrar detectores infrarrojos, incluida la placa de medición, por 0,30€ en vendedores internacionales de eBay y AliExpress.

Al ser un sensor sencillo también podemos montarlo nosotros mismos. En general no merece la pena ya que sólo los componentes nos costarían más, sin contar el tiempo necesario y la calidad que podríamos obtener, por lo que lo normal es que usemos un modelo comercial.

El montaje es sencillo. Alimentamos el módulo a través de Vcc y GND conectándolos, respectivamente, a la salida de 5V y GND en Arduino.

Finalmente, conectamos la salida digital del sensor a una entrada digital para leer el estado del sensor.

Opcionalmente, calibramos el umbral de disparo acercando un objeto al detector de obstáculos y regulando la salida digital con el potenciómetro. Si queréis saltaros este paso, dejar el potenciómetro en un valor medio.

El código es igualmente sencillo. Simplemente leemos el estado de la entrada digital, tal y como vimos en la entrada Entradas digitales en Arduino.

Si el sensor se dispara, ejecutamos las acciones necesarias.

También podemos leer el estado del sensor mediante el uso de interrupciones. Para más información consultar la entrada Qué son y cómo usar interrupciones en Arduino y Leer un pulsador con interrupciones en Arduino
Si te ha gustado esta entrada y quieres leer más sobre Arduino puedes consultar la sección Tutoriales de Arduino

Anuncio:

Previous Desactivar Windows Defender permanentemente en Windows 10
Next Controlar un servo con Arduino

19
¡Deja un comentario!...

newest oldest
ELMER

Hola! Al ejecutar ese código no me está funcionando…
Bolso Mano Bolsa Nueva Tejidas Tejida A De Blue Tejido Playa Meaeo Azul Bolsas Único Paja Moda
Me da un error en la línea #5, ya que no está definida la variable pin…
Qué debería ir ahí?
El mismo puerto declarado en sensorPin?
Disculpas si la pregunta suena a una burrada, es que soy bastante novato en el tema…

Saludos!!!

luisllamas

Mano Paja Bolso Moda Tejidas Tejida Nueva Azul De Blue Playa Bolsa Bolsas A Meaeo Único Tejido Había una pequeña errata. En lugar de “pin” debería haber puesto “sensorPin”. ¡Arreglado, gracias por el aviso!

ELMER

Ah, buenísimo! De nada, recién veo la notificación!
Saludos!

Omar Pérez

Hola, tengo una duda, ya que no sé mucho de Arduino, ¿de qué sirve la línea 9?
Por cierto muchas gravias por tus tutos

daniel

Estas creando una variable en C, mirate algun tutorial basico sobre C y veras que rapido entiendes todo eso.

Albert Cambras

Hola, este código es válido para las placas Arduino Uno?

luisllamas
A Blue Tejido Bolso Bolsa Moda Playa Único Bolsas Paja Nueva Azul Tejidas Mano De Meaeo Tejida

Por supuesto!

CBS

Hola quisiera programarlo para detectar un vacio como unas escaleras, el robot ya tiene progamado un ultrasonido para obtaculos me ayudarias guaiandome en la instalacion y programacion

CBS

Hi! Quisiera programar este sensor no para obstáculos si no para vació ej: una escaleras por favor me podrías guiar en su instalación y programación,
post: es un vehículo evita obstáculos ya tiene instalado un sensor de distancia HC-SR04 ultrasonico para esto.

Muchas gracias!!

Wladimir

Hola, tengo una consulta?
Puedo conectar el sensor a un puerto analogo?

Saludos

Nestor

Hola, me gustaría saber si este dispositivo puede usarse para distinguir tipos de vehículos.

Emmanuel Felix
Playa Tejido Nueva Tejida A Bolsas De Mano Bolso Bolsa Paja Único Blue Meaeo Tejidas Azul Moda

El sensor infrarrojo es solo un sensor de “pasa o no pasa”, El sensor solo te puede decir que están pasando vehículos pero no te dirá su forma o distancia a la que esta, para eso debes buscar sensores analógicos, suerte.

Bolsa Bolsas A Único Tejidas Moda Blue Nueva Mano De Azul Tejido Tejida Playa Paja Bolso Meaeo
juan

hola! le afecta las luces?

Tejidas Playa De A Bolso Meaeo Bolsas Bolsa Moda Azul Nueva Único Paja Mano Blue Tejido Tejida
Francisco Cruz Ocampo

Hola, como podria conectar un motor cd de 5v al sensor para que cuando detecte negro se detenga y blanco prenda.

dino

cuando el sensor detecta? envia un 1 o un 0?

Nueva A Blue De Bolsa Playa Meaeo Paja Azul Bolsas Tejida Mano Tejido Bolso Moda Único Tejidas
Josep

Hola, estoy con un proyecto en el cual necesito tener dos sensores infrarrojos pero solo consigo que uno de los dos haga funcionar el motor el cual se activa si estos detectan un objeto acercandose. Pero el mensaje de activacion del infrarrojo si me lo lanza. Si me echarais una mano, gracias.

agus

Hola, una consulta…se puede poner cuatro sensores en paralelo??

Lizbeth Rodriguez

Hola soy nueva en lo de arduino y estoy tratando de hacer un programa que tenga como entrada un sensor. La idea es que cuando el sensor envíe un 1 a la Arduino, esta envie un uno a la salida y que al pasar unos segundos el uno de la salida se convierta en cero sin importar que el sensor siga enviando un 1 a la entrada y que solamente el 1 de la salida vuelva a aparecer si el sensor vuelve a pasar de 0 a 1. Agradecería grandemente que me ayudaras lo he intentado hacer con comparación “if”… Read more »