Go Down

Topic: Detector de luz IR (Read 1 time) previous topic - next topic

Meiyus

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:



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.



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!

Jopapa

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.
Jopapa
www.jopapa.me

Meiyus

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:


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:



Pero ya te digo que sin resistencia esta claro que no funciona :smiley-confuse:

Jopapa

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.
Jopapa
www.jopapa.me

Go Up