Estabilizar los circuitos del emisor / receptor IR

1

Necesito ayuda para hacer que estos circuitos de emisor / receptor de infrarrojos y su potencia sean más estables.

Construyendo una gran instalación de arte LED de 8 ’x 10’ (detalles de progreso incluidos). LED Mariposas en un bosque de árboles que interactúan con el espectador. La estructura del "árbol" de la instalación estará integrada por un campo de señales de emisor de IR con receptores IR individuales (construidos como "Butterflys") que activan / desactivan un grupo de LED a medida que el espectador entra y sale del área.

La concepción es una gran variedad de señales de emisor de infrarrojos, que se emiten a 38Khz a una distancia de aproximadamente un metro, y una gran cantidad similar de "Butterflys", cada una con su propia carga de receptor-transistor-LED activada por la recepción de una señal que rebota en un espectador cercano (de lo contrario, apagado).

Funciona en el circuito de prueba, pero lo hace solo por un momento. Los amplificadores fluctúan desde la fuente de alimentación del banco del emisor, comenzando a 20 mA aumentando a 40 o más. Una vez que el amperaje sale del emisor, los LED del receptor se apagan. Eso es malo. Deben permanecer encendidos mientras se reciba una señal. No estoy seguro de cómo estabilizar esa señal de 38Khz del LED del emisor . Los circuitos son los simples y comunes que se encuentran en todas partes y los valores de 555 temporizadores / IR de astable se derivan de una calculadora en línea. Entiendo que el cableado en el circuito de prueba es muy desordenado y eso contribuye a la inestabilidad, PERO, ¿deberían estos circuitos funcionar como se propone si todos los componentes están ordenados en una PCB pequeña? La PCB emisora tendría la forma de una "hoja" y la PCB de los receptores separados tendría la forma del cuerpo de la mariposa. ¿Habría algún cambio sugerido que debería hacer / ajustar con potencia y / o resistencia ANTES de enviar los esquemas a una tienda de PCB?

Probablemente debería ir sin decirlo, pero soy un artista, no un ingeniero. Necesita ayuda para mantener estos circuitos sólidos, simples, pequeños y con potencia para que la interacción / el arte se muestren. Nota al margen: He estado buscando una consulta de EE, estoy dispuesto a pagar razonablemente por tiempo / experiencia, pero como no es una aplicación comercial, no puedo encontrar a nadie que esté dispuesto (consulte con sugerencias sugerencias :) Por favor, ayúdenos.

    
pregunta adlib33e

1 respuesta

3

Veo una falla fatal en el enlace óptico de infrarrojos.
El receptor de infrarrojos está esperando una cadena "ráfaga" de pulsos de 38 kHz. La hoja de datos explica que los 38 kHz deben estar encendidos momentáneamente, unos 600 microsegundos, y luego apagados durante 900 microsegundos. Las especificaciones de la hoja de datos en chino son difíciles de descifrar:

Cuando transmite un flujo continuo de 38 kHz (como lo está haciendo), el receptor se acostumbra a la señal, al igual que sus ojos se acostumbran al sol brillante (y cierran su iris). Al menos un usuario ha observado que este receptor también es propenso a la desensibilización a la luz del sol. Otros receptores similares podrían hacerlo mejor.

Su idea básica es el sonido, y el receptor IR puede funcionar fácilmente a una distancia de 1 M. Su circuito 555 que maneja el IRLED necesita un temporizador adicional para "romperse" durante 900 microsegundos.
El receptor de infrarrojos debe incluir alguna forma de mantenerse activo durante ese corte de 900 microsegundos. Agregué un capacitor de 0.22uF para realizar esta función, pero asumí que la resistencia interna de levantamiento es de 39 kohms. Muchos receptores de IR tienen tanta resistencia: la hoja de datos china puede no especificar esta parte. La constante de tiempo R1 * C1 es crítica para salvar la interrupción necesaria de 900 microsegundos:
Yo usaría un microcontrolador muy pequeño en lugar del temporizador 555 para impulsar el IRLED ... menos partes. Puede generar la ráfaga de 38 kHz que dura 600 microsegundos, y también puede expirar el período "apagado" de 900 microsegundos. podría incluso ser capaz de conducir el IRLED directamente a través de una resistencia de pequeño valor.

;Drive an infra-red LED cathode with digital output pin GP2.
;LED anode goes to +5V thru small series resistor, at 38000 Hz.
;23 cycles of 38 kHz, lasting about 600 microseconds
;turn IRLED off (high), lasting about 900 microseconds.
;Repeat this sequence forever.
;Default internal clock speed is 4MHz: instruction rate is 1000000/sec.
;All timing depends on 1MHz instruction rate!
;DON'T FORGET TO PULL notMCLR to LOGIC HIGH, else nothing runs!! Don't let it float.
;If you pull notMCLR low, IRLED goes off, until notMCLR goes high again.
;Watchdog timer is active - code resets it.
;By default, internal comparator is disabled from interfering with GP2 output pin.
;December2018
;
#include p10f200.inc        ;register names defined here
;Macros:
#define ledon bcf GPIO,GP2  ;turn IRLED on by dragging cathode low.
#define ledoff bsf GPIO,GP2 ;turn IRLED off by dragging cathode high.

 __CONFIG _MCLRE_ON         ;GP3/MCLR pin functions as MCLR input..pull it high with
                            ;a resistor to light up LED. Pull it low to turn LED off.

cnt         equ 0x10        ;first available RAM location
burstcnt    equ 0x11        ;a counter for burst length
;---------------------------------------------------------------
;
    ORG 0000h           ;start address from power-up or watchdog
    andlw 0xFE          ;reset to zero least sig bit: disable FOSC/4 output on GP2
    movwf OSCCAL        ;write oscillator calibration byte.
    b   setup           ;go configure this simple environment...
;   
setup:
    movlw 0xDF          ;make GP2 available as programable I/O pin rather
    OPTION              ;than TMR0 clk...write it to OPTION register
mainloop:
    movlw 0x0b          ;make GPIO 2 an output (not input) for driving IRLED
    tris GPIO
    movlw .23           ; init counter for six-hundred microsecond loop timer
    movwf burstcnt      ;it will be decremented to zero later.

shloop:
    ledon               ;macro to turn on IRLED
    movlw 3             ;now waste some time....about 13us.
    movwf cnt
    decfsz cnt,f        ;a short time-wasting loop
    b $-1               ;loop for LED off period.
    clrwdt              ;clear the watchdog so it doesn't disturb us.

    ledoff              ;macro to turn off IRLED
    movlw 3             ;now waste some time....about 13us.
    movwf cnt
    decfsz cnt,f
    b $-1               ;time-wasting loop for LED on.
    decfsz burstcnt,f   ;done with 600 us burst?
    b shloop            ;no, complete this burst with more 38 kHz. cycles
;--------------------------------------------------------

    ledoff                  ;turn IRLED off for remaining 900 microseconds
    movlw   .149            ;time-wasting counter for 900 us.
    movwf cnt               ;initialize off period count
nhloop:
    nop
    nop
    nop
    decfsz cnt,f
    b nhloop                ;countdown loop for LED off period.

    b mainloop              ;start again....600:on, 900:off loop forever
;--------------------------------------------------------
    END                     ;finish assembler code.
    
respondido por el glen_geek

Lea otras preguntas en las etiquetas