Go Down

Topic: DUda emisor y receptor de infrarrojos (Read 443 times) previous topic - next topic

pla

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

Lucario448

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?

pla

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

IgnoranteAbsoluto

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.

pla

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.

IgnoranteAbsoluto

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 ;)

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


pla

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.

surbyte

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.


IgnoranteAbsoluto

   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.


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.

pla

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
 

surbyte

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.

albertoG1

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

surbyte

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

pla

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.

IgnoranteAbsoluto

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í.

Code: [Select]


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);
}

Go Up