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…
De Tejidas A Azul Playa Moda Tejida Nueva Blue Único Bolsas Paja Mano Tejido Meaeo Bolsa Bolso
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

Único Moda Bolsa Mano Meaeo Nueva Paja Playa A Bolsas De Tejidas Tejido Bolso Azul Blue Tejida 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
Bolsa Único Tejida A Blue Playa Nueva Moda De Tejido Azul Tejidas Bolsas Mano Paja Bolso Meaeo

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
Bolsas Tejido Playa Tejidas Paja Nueva A Blue Moda Azul Mano De Meaeo Bolso Bolsa Tejida Único

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.

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

hola! le afecta las luces?

Meaeo Bolsas Tejida Tejido Azul Moda Mano Nueva Tejidas De Paja Bolso Playa Blue A Único Bolsa
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?

Paja Moda Bolsas De Tejido Mano Tejidas Bolsa Azul A Bolso Playa Tejida Único Blue Nueva Meaeo
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 »