DUda emisor y receptor de infrarrojos

Hola buenas.

Hoy he comprado un LED de infrarrojos y un receptor para arduino, son etos:
https://www.velleman.eu/support/downloads/?code=VMA316&type=
https://www.velleman.eu/support/downloads/?code=VMA317&type=

Y no se por que no funcionana.

En LED la conexión es la siguiente:
S >> 5v y R 1 Kohm

  • no se utiliza

  • masa
    La tensión entre S y masa es de 1'11V

En el receptor la conexión es:

  • 5v

  • masa
    s >> R 220 ohm y LED

El LED que conecto a la patilla S del receptor está encendidos siempre, aunque el receptor esté tapado.

No se que hago mal, no consigo hacer que funcione

pla:
El LED que conecto a la patilla S del receptor está encendidos siempre, aunque el receptor esté tapado.

¿Y cuando recibe señal el LED se apaga?

no, siempre está encendido.
no hace nada más que eso

Cuidado, no es tan fácil como alimentar el LED, que se encienda y el receptor lo detecte. No sé si estás teniendo en cuenta que es algo más complejo que eso. Para que el sensor que tienes detecte la señal, el LED ha de generar una señal de pulsos de luz a aproximadamente 37.9Khz. Cuando recibe una señal a esa frecuencia la salida del sensor cambia (creo que en este caso pasa a nivel bajo) "filtrando" la frecuencia esa.

Esto es para evitar "ruidos". Si no, con casi cualquier luz se activaría el sensor ya que no sólo las luces que vemos están compuestas por el espectro visible, también tienen su parte infrarroja y ultravioleta. Los mandos usan luces infrarrojas simplemente porque nosotros no la vemos y así no nos "molestan" los mandos con su continuo parpadear cada vez que pulsamos un botón.

Te recomiendo que busques en internet más información. Para empezar podrías ver http://www.prometec.net/infrarrojos/ donde lo explican.

Hay librerías para leer mandos a distancia y para simular mandos.

Gracias ignoranteAbsoluto, me has dicho unas cuantas cosas que no sabía, soy principiante.

Pero aún así hay algo que me falla.
Yo lo que quiero hacer es parecido a la puerta de los garajes o la cinta del suprmercado.
Cuando se corte el haz de luz entre emisor y receptor debería haber una cambio, pero no pasa nada.

También me llama la atención que en mi modulo de LED infrarrojo la caida de tensión sea de 1'1V es muy poco.

Dos preguntas:

¿Has leído lo que te recomendé (http://www.prometec.net/infrarrojos/)?

¿Qué parte has entendido (si lo has leído)?

Si no lo has leído, o te has perdido entre tanta información, mira la parte por donde aparece esta imagen:
Una imagen vale más que mil palabras

Tengo la impresión de que no has comprendido el problema ni cómo funcionan las herramientas de que dispones :wink:

Ojo, aún comprendiendo todo, la solución no es trivial. Ya que, para empezar, tienes que generar la señal a 37.9Khz.

Si lo he leido y me ha aclarado bastante.
he probado a apuntar al receptor con el mando de la tele y lo que hace es parpadear, aunque casi no se aprecia.

No se cpn que frecuencia va el mando, pero creo que es indiferente. yo necesito que se apague LED que hay conectado cuando algo se interpone entre emisor y receptor, como la cinta del supermercado.

No tengo que enviar ninguna información.

En cuanto al gif del tren de pulsos, se supone que pasa a nivel bajo cuando recive los pulsos a esa frecuencia determinada pero el emisor y el receptor que yo compre están echos para funcionar juntos y no lo consigo, ha sido más util el mando de la tele.

Pues te has equivocado de sensor emisor/receptor.
Esto sirve para enviar datos por IR.
No es una barrera IR.

En el ejemplo de prometec esta claro como funciona. Porque no bajas la libreria IRremote, corres el ejemplo y ve si funciona o no.

'Luego cuando descubras que funciona, entonces pensarás en comprar un simple IR que emita en forma continua y un receptor que te diga SI/No alguien a atravesado la barrera.

Vamos a ver. El "emisor" que tienes no es más que un simple LED que emite luz infrarroja. No tiene nada más de "especial". A diferencia del receptor, que sí que es algo más que un simple sensor de luz infrarroja. El receptor tiene una circuitería que detecta una señal infrarroja de trenes de pulsos que se encuentre en una frecuencia próxima a los 37.9Khz (kiloherzio más, kiloherzio menos). Esa circuitería es bastante compleja como para implementarla con componentes discretos, así como también lo es para implementarla con un microcontrolador... bueno, con un microcontrolador lo podrías implementar pero no es trivial. Mientras que por muy poco dinero ya tienes ese receptor que se encarga del "trabajo sucio". Está tan usado y estandarizado ese receptor que lo fabrican como churros y su precio es el que es (los chinos te venden 10 por un dolar), y no vale la pena dedicar ciclos de CPU de un microcontrolador para hacer ese trabajo.

Pero el LED no. El LED ese por no tener creo que no tiene ni resistencia limitadora de corriente (al menos eso parece que pone la documentación que hay en la web del enlace que has puesto). Así que, si lo conectas a una salida del Arduino, yo te recomendaría ponerle en serie como mínimo una resistencia limitadora de 220 ohmios. En teoría lo ideal sería montar el circuito de "la famosa imagen" de las dos resistencias y el transistor junto al LED, así la corriente que suministres al diodo "no la sufre" el Arduino. Así que en el caso del emisor "el trabajo sucio" sí que recae en el microcontrolador.

No es alimentar el "módulo" del LED y este se pone a mandar el tren de pulsos a 37.9Khz. Has de hacer que la salida el Arduino genere ese tren de pulsos y para ello has de dedicar uno de los temporizadores del Arduino. Lo configuras a la frecuencia deseada y activas o desactivas el que salga por uno de los pines (en el Arduino UNO no vale cualquiera, vienen determinados según el temporizador que uses) generando las señales de trenes de pulsos que desees enviar (que es lo que hacen los mandos). En este caso te bastaría con dejar siempre la señal activa todo el tiempo, ya que lo que quieres detectar es que algo externo interrumpe ese tren de pulsos y el receptor deja entonces de detectarlo.

pla:
el emisor y el receptor que yo compre están echos para funcionar juntos y no lo consigo

Claro que funcionan juntos, pero el "emisor" necesita de "una ayudita" por parte del Arduino. A diferencia del "receptor" que "él solo se basta".

Busca cómo generar una señal a una frecuencia arbitraria y adáptala a la frecuencia que necesitas (para este caso los famosos 37.9Khz). No confundir con el PWM, que aunque la señal seguramente ha de salir por uno de los pines que soporta PWM, lo que necesitas no es un PWM aunque se le parezca mucho.

muchas gracias a los dos, ya voy comprendiendo como fumciona. cuando llegue a casa pruebo aver.

si es barato probare el receptor que dice surbyte.
pero por aprovechar lo que tengo, los 38 Khz es la frecuencia que tiene la luz infrarroja o la frecuencia que tiene que tener el tren de pulsos?
y si no que frecuencia tiene que tener ese tren de pulsos

Tu emisor envia pulsos con una portadora de 38Khz aprox.

Eso no te sirve como barrera.

Esta es tu barrera IR

Aca donde se compra en USA

Requiere un espejo en el lado opuesto.

surbyte:
Esta es tu barrera IR

Requiere un espejo en el lado opuesto.

¿Y cuál es el rango de distancias de ese sensor IR?, porque tenía entendido que funciona en cortas distancias, creo que como máximo 30 cm

Ahhh yo solo el mostré uno disponible. Ni se.
Si necesito una barrera voy a una casa de alarmas y le compro una que se que funciona. Claro que habrá que hacer adaptaciones porque no siempre tendrán una salida 5V o sea TTL.

Es posible que tengas mucha razón albertoG1, desconocía el alcance

al final no he tenido tiempo para mirarlo hoy.
pero no se puede xomprar eso por separado? aubque la distancia será menor de 30 cm el espejo será un inconveniente porque tendrá que estar perfectamente alineado, supongo.

Aquí tienes un pequeño programa que activa y desactiva una señal a unos 37.9KHz por el pin 11 del Arduino UNO. Conéctale el LED de infrarrojos mediante una resistencia de 220 ohmios al pin 11 del Arduino UNO. Apunta con el LED al receptor y verás cómo este se activa y desactiva. Para lo que tú lo quieres te vale con activarlo en el setup() y dejarlo siempre así.

const byte IRSEND_PIN_OUT = 11;

void setup() {
            // initialize the digital pin as an output.
            pinMode(IRSEND_PIN_OUT, OUTPUT);
            digitalWrite(IRSEND_PIN_OUT, LOW);

            // Modo PWM rápido (Fast PWM) con límite OCRA
            TCCR2A = _BV(WGM21) | _BV(WGM20);
            TCCR2B = _BV(WGM22) | _BV(CS20);
            OCR2A = 210;

            // En el Arduino UNO, estos valores producen:
            // Frecuencia salida A: 16 MHz / 1 / (210+1) / 2 = 37914.69Hz
            // Duty cycle salida A: 50%
}

void loop() {
    bitSet(TCCR2A, COM2A0); // Activa el tren de pulsos
    delay(500);
    bitClear(TCCR2A, COM2A0); // Desactiva el tren de pulsos
    delay(500);
}

Me corrijo a mí mismo. He estado probando y, al menos con el receptor de IR que tengo, no sirve dejar el LED todo el rato "activo". Al parecer el sensor lo detecta durante unas décimas de segundos y luego se "desactiva". Se ha de "cortar" la señal y volver a enviar un nuevo tren de pulsos para que vuelva a detectarla.

Así que he hecho unas cuantas pruebas más y he llegado a la conclusión que, con mi sensor, he de mandar un tren de pulsos no muy largo (de 30 a 200 milisegundos) y luego parar la señal durante un tiempo mínimo de 220 milisegundos para luego volver a activarla. Si entre tren de pulsos y tren de pulsos hay menos de 220 milisegundos de "silencio" aveces no detecta los nuevos trenes de pulsos.

Así que habrá que activar el LED durante unos 30 o 50 milisegundos y ver si durante ese tiempo el sensor detecta algo. Después hay que desactivar el LED y esperar un mínimo de 220 milisegundos antes de volver a activarlo de nuevo.

Con lo que se se haría entre 4 y 3 muestreos por segundo. Si algo pasara muy rápidamente por medios, tal vez no lo detectaría.

Está visto que el receptor está pensado y orientado únicamente a su uso con los mandos a distancia ya que ellos trabajan con señales "cortas".

Lo que yo he montado es el LED al pin de 5V para que siempre luzca y el foto transistor por un lado a 5 V y por el otro a masa y funciona.

cuando lo monto en el arduino en vez de poner el fototransistor a masa lo pongo a un pin de arduino configurado como entrada, ahi no funciona.

Y si pudiera una resistencia mayor a la del Led en tierra?