Reducir potencia led infrarrojo

Buenos dias a todos/as

Vi este proyecto y me encantó: http://imgur.com/gallery/mfAce

He decidido construirle una a mi hijo para que juegue y estoy en el desarollo del hardware.

He adjuntado el esquematico de la placa que controlara el led infrarojo, sensor infrarojo (IS471F) y el led RGB (WS2812B).

El problema con el que me encuentro es que al poner un plastico semitransparente como el que pone dasdingo89 en su diseño, el sensor infrarojo me lo detecta y enciende el led.

He probado dos cosas:

1.-Poner un potenciometro de 1Kohm para reducir la corriente que le llegue al led infrarojo. Configurandolo a unos 290ohms me permite no detectar el plastico pero si detectar la mano cuando la pongo encima.
El problema es que tendria que configurar manualmente todos los potenciometros de las placas

2.-Utilizar una señal PWM para controlar el voltaje que llega al led infrarojo.
El problema es que haciendo pruebas con una salida pwm de arduino he tenido que poner una frecuencia de 200kHz para obtener un funcionamiento estable del led infrarojo. Nunca he trabajado con frecuencias tan altas y tengo miedo que al hacer el cableado empieze a tener problemas por culpa de ruido.

Mis dudas:

1.-Hay alguna forma de controlar la potencia del led infrarojo para que no detecte el plastico pero si la mano que no haya tenido en cuenta?

2.-Si decidiedes utilizar el pwm, 200kHz es una frecuencia que me puede dar problemas de ruido o inestabilidades en la señal del led infrarojo?
Al principio probe con 490Hz y vi que la frecuencia era tan baja que el sensor detectaba, no detectaba. No obtenia un voltaje constante, por eso fui subiendo la frecuencia pero no se si me he pasado con 200kHz

3.-He pensado que podria poner un attiny85 en cada pcb led para controlar el pwm, porque no he encontrado, de momento, ninguna placa expansora de pwm que pueda trabajar a esa frecuencia

4.-En otro proyecto he visto que usaban un pic para cada pcb led porque decia que ese pic controlaba el rgb y detectar la mano y asi el “cerebro” solo se preocupaba de que patrones de luz enviar, el bluetooth, etc etc

De momento eso es todo. Cualquier ayuda es bienvenida, no tengo mucha experiencia desarollando proyectos y cualquier consejo es como oro para mi :D!

Tambien ire posteando mis avances porque no he visto ningun proyecto similar que expliquen detalladamente la construccion de una mesa rgb interactiva. A parte tambien lo documentare en una wiki que tengo de proyectos y cosas mias: wiki.erikcrane.net

Un saludo y muchsa gracias

pcbLeds.PNG

Para poder usar un pwm a una frecuencia más baja ,y aún que el led parpadee pin un condensador en la salida (grande, 10uf) luego juega con el duty chicle hasta que encuentres la potencia que necesitas.

Si el mismo pwm alimenta todos los LEDs igual necesitas un condensador aún mayor

erikcrane: El problema es que haciendo pruebas con una salida pwm de arduino he tenido que poner una frecuencia de 200kHz

¿Qué Arduino es? Si el PWM lo estás generando con un ATmega328P, no te creo. La frecuencia máxima alcanzada para PWM, es de 65 KHz.

GO_zalo: Para poder usar un pwm a una frecuencia más baja ,y aún que el led parpadee pin un condensador en la salida (grande, 10uf) luego juega con el duty chicle hasta que encuentres la potencia que necesitas.

Si el mismo pwm alimenta todos los LEDs igual necesitas un condensador aún mayor

Muchas gracias, es una buena idea :D! Lo probaré a ver que tal me resulta

Lucario448: ¿Qué Arduino es? Si el PWM lo estás generando con un ATmega328P, no te creo. La frecuencia máxima alcanzada para PWM, es de 65 KHz.

He subido un video a youtube que puedes ver las lecturas del osciloscopio. Es un arduino uno y puede que este haciendo algo mal al medir la frequencia, hace muy poco que lo tengo y no lo domino mucho.

Sigo sin poder creerlo. Aún con un timer de 8 bits sin prescaler, donde el ciclo de trabajo se gradúa en 256 pasos (el periodo de la señal tarda mínimo 256 ciclos del reloj); sumado a un oscilador de 16 MHz (periodo de 0.0625 us): tenemos que:

256 * 0.0625 = 16 us

16 us (microsegundos) es el periodo mínimo del PWM. Si lo convertimos en unidad de frecuencia:

1 / 0.000016 = 62500 Hz

62500 Hz o 62.5 KHz, todavía menos de lo que había dicho antes.

PERO, aun así existen formas de conmutar a mayor velocidad:

  • Cambiar el cristal oscilador por otro de más frecuencia.
  • Lograr de alguna forma disminuir la resolución del PWM
  • PWM por software (interrupciones y manipulación de registros).

Manipulando directamente los registros del microcontrolador se ha logrado obtener una conmutación de hasta 1 MHz.

En conclusión: es posible generar señales a esa frecuencia con Arduino, solo que no de la forma usual.

Uso la libreria TimerOne poniendole 5us como base de tiempo. Supongo que debe ser lo que dices, que a nivel software puede tener esa frecuencia.

Ahhhh entonces "ahí está el culpable".

TimerOne tiene esa facilidad: variar ciclo de trabajo y frecuencia de PWM. La parte de la frecuencia es donde se puede aprovechar la posibilidad de crear una interrupción de intervalo constante.