Arduino Forum

International => Español => Hardware => Topic started by: Meiyus on Dec 04, 2017, 05:08 pm

Title: Detector de luz IR
Post by: Meiyus on Dec 04, 2017, 05:08 pm
Hola! Antes de nada avisar que soy totalmente amateur en temas de electrónica y Arduino. Estoy intentando crear un detector de luz infrarroja para un proyecto personal y pensaba que seria sencillo haciendo algunas modificaciones al proyecto de ejemplo que trae Arduino con el típico sensor de luz normal...pero se me esta complicando el tema. A ver si alguien puede echarme una mano! ;)

El problema que tengo es que el receptor IR no me mide variaciones en la cantidad de luz. Yo esperaba que el receptor midiera más o menos luz en un rango de 0 - 1024 según la distancia a la que se encontrara del emisor pero me da una lectura fija de 219-220 por mucho que lo acerque al diodo... y cuando lo alejo simplemente pasa de 220 a cero a la que paso de cierta distancia (unos 10cm del emisor). 

De receptor estoy usando un AR-IRRECEP que tenia de otro proyecto:

(https://www.master.com.mx/images/prods//AR-IRRECEP.jpg)

Este es el esquema en el que me he basado para el montaje sobre el que he aplicado algunos cambios:
-El led de "aviso" lo tengo conectado con una resistencia de 220 en lugar de 330.
-El emisor IR lo tengo conectado fijo a 5V y GND sin pasar por ningún Pin del Arduino, y con una resistencia de 220 también.

(https://4.bp.blogspot.com/-QnhQUAU2GNI/UhoRtmHkPRI/AAAAAAAAZ0I/E9U1NGz1F0M/s1600/IR.png)

Y aqui el código que estoy usando:

Code: [Select]
// Sensor de luz infrarroja

#define LED 9 // led que parpadea al detectar luz IR
#define IRRe A0 // receptor IR conectado en la entrada A5
#define IREm 2  // emisor IR conectado en la entrada 2

int valor = 0; // guardo el valor obtenido por IRRe con el emisor encendido
// cuanto más cerca, mayor debería ser el valor


void setup()
{
  // configuro entradas y salidas de los pines
  pinMode(LED, OUTPUT);
  pinMode(IRRe, INPUT);
  pinMode(IREm, OUTPUT);

  Serial.begin(9600);
}

void loop()
{
 
  digitalWrite(IREm, HIGH); // Enciendo el emisor IR

  valor = analogRead(IRRe); // Leo el valor recogido por el receptor

  if ( valor > 0) { //si el valor es mayor a 0 hago parpadear el LED

    digitalWrite(LED, HIGH);
    Serial.print("\tCANTIDAD DE LUZ IR: ");
    Serial.println(valor);
    delay(100);   
    digitalWrite(LED, LOW);
    delay(100);
  }
 
  else { //si el valor es 0 el LED queda apagado
   
    digitalWrite(LED, LOW);
    Serial.print("\tCANTIDAD DE LUZ IR: ");
    Serial.println(valor);
  }
}


A parte de que no me mide variaciones en la cantidad de luz que recibe, también veo que es algo lento al leer, es decir que tarda como 2 o 3 segundos en encenderse el led de aviso cuando paso el receptor por delante del emisor y por lo tanto solo me hace lectura si lo dejo quieto justo encima un rato.
¿Alguna idea de como solucionar todo esto?

Gracias!
Title: Re: Detector de luz IR
Post by: Jopapa on Dec 04, 2017, 06:39 pm
Tu quieres hacer una medida analógica (valores continuos) y ese módulo esta pensado como sensor digital (todo o nada). En concreto para recibir señales de mandos a distancia.
Usa un resistencia LDR y si es preciso con un filtro IR delante rescatado de un mando a distancia o un negativo en color velado.
Title: Re: Detector de luz IR
Post by: Meiyus on Dec 04, 2017, 07:28 pm
Tu quieres hacer una medida analógica (valores continuos) y ese módulo esta pensado como sensor digital (todo o nada). En concreto para recibir señales de mandos a distancia.
Usa un resistencia LDR y si es preciso con un filtro IR delante rescatado de un mando a distancia o un negativo en color velado.
Gracias por tu respuesta. Entonces probare con el sensor LDR y un filtro (a ver si encuentro un mando a distancia viejo por casa).

Por seguir intentándolo con sensor IR, tengo unos sensores SFH 5110:
(http://img.directindustry.es/images_di/photo-mg/18179-5463193.jpg)

Se supone que este es analógico, no? Pero no se como conectarlo. En internet siempre lo conectan tal cual, sin resistencias ni nada, pero yo lo he hecho y aun me huele la casa a electrónica quemada... el problema es que si le meto una resistencia me da lecturas fijas, sin importar que el emisor IR este encendido o no. Como debería conectarlo? Solo encuentro esto:

(http://static.righto.com/images/ir-schematic.png)

Pero ya te digo que sin resistencia esta claro que no funciona :smiley-confuse: . 
Title: Re: Detector de luz IR
Post by: Jopapa on Dec 05, 2017, 12:01 am
Es un diodo digital, que creo lleva en su interior un CI (por eso necesita alimentación) y es para recibir a mandos a distancia.