¿Cómo generar una onda cuadrada constante de 38 kHz para una fuente de luz IR?

  • Aplicación: barrera de luz IR a una distancia de 1 m

  • Receptor: por ejemplo , sensor IR Vishay TSSP4038 (sintonizado a 38 kHz)

  • Rango de temperatura ambiente: -10 a 40° C

Aquí encontré un circuito con un disparador Schmidt que debería funcionar, si hubiera un cristal oscilando a 38 kHz. Pero no puedo encontrar ninguno. Digikey enumera cristales de 38 kHz , pero, mirando las hojas de especificaciones, resulta que en realidad son cristales de 32,768 Hz.

¿Cómo obtengo 38 kHz?

También he considerado un circuito basado en NE555, pero eso no es estable a la temperatura y requiere recorte. Otra opción, me han dicho, sería usar un Arduino para generar los 38 kHz, pero parece una exageración.

Actualizar

Siguiendo la recomendación en la nota de aplicación mencionada en la respuesta de Ali Chen , finalmente decidí usar un Arduino Nano. Para generar los 38 kHz, utilicé el temporizador como se describe en una publicación del foro de Arduino de Nick Gammon en el foro de Arduino. Su ejemplo de código:

const byte LED = 11;  // Timer 2 "A" output: OC2A

void setup() {
 pinMode (LED, OUTPUT);

 // set up Timer 2
 TCCR2A = _BV (COM2A0) | _BV(WGM21);  // CTC, toggle OC2A on Compare Match
 TCCR2B = _BV (CS20);   // No prescaler
 OCR2A =  209;          // compare A register value (210 * clock speed)
                        //  = 13.125 uS, so frequency is 1/(2 * 13.125) = 38095 Hz

}  // end of setup

void loop() { }

A través de un pin de interrupción, conecté el Nano a un Yún, que ejecuta la lógica principal y le dice al Nano que encienda o apague la señal. Tenga en cuenta que la nota de aplicación de Vishay se trata de medir la distancia a un objeto, mientras que mi aplicación se trata simplemente de medir si un haz se interrumpe o no.

Próximos pasos: Deshazte del Nano; Actualice de 38 a 56 kHz para una detección un poco más rápida.

MCU. Más caracteres para llenar el mínimo.
Considere cuán "estable a la temperatura" podría ser un generador de IR de control remoto de TV genérico, desagradable, de costo optimizado y producido en masa. No me sorprendería que un cristal de 32.768 Hz fuera ideal para esta aplicación.
¿Es para detección reflexiva o para una aplicación de vista directa?
@AliChen a través del haz
Su desafío no es la precisión de la frecuencia, sino que el receptor ignorará rápidamente una señal si la modulación no se enciende y apaga a un ritmo dentro de lo esperado. Tenga en cuenta la mención de "ráfaga" en la hoja de datos.
@Wossname, todos los controles remotos de TV están diseñados con microprocesadores especializados (ejemplo: upD78F0527) con un cristal estable en un rango de 5-6MHz. La frecuencia portadora necesaria para el transmisor IR (36kHz, 38kHz, 56, etc.) y toda la modulación sofisticada se genera internamente mediante lógica digital.

Respuestas (7)

Tu esfuerzo está mal dirigido; estos receptores no son tan sensibles a la frecuencia precisa, pero no mantendrán la salida con una señal modulada constante .

En cambio, están diseñados para buscar "ráfagas" de modulación y rechazarán el ruido que no parece un tren de pulsos de portadora modulada; para que sigan funcionando no necesitarás un generador de señal sino dos, uno para la modulación y otro para crear las ráfagas en la envolvente de la modulación.

El primer generador produce una modulación de 38 KHz.

El segundo generador activa y desactiva el primer generador a una velocidad dentro de la ventana de los tipos de señales remotas que el receptor está diseñado para aceptar.

Por lo general, usa un microcontrolador; use un canal de temporizador dividido desde el reloj MCU para producir los 38 KHz a la aproximación más cercana que pueda. No es necesario que sea exacto .

Luego, active y desactive el software u otra tecla de canal del temporizador.

(Probablemente podría usar el temporizador dual 556; pero las MCU que pueden hacer esto cuestan menos de un dólar en cantidad, requieren menos componentes de soporte y también pueden hacer otras cosas).

Si esperaba una salida constante del detector, deberá repensar el diseño de su sistema; en cambio, probablemente necesite seguir el detector con un extensor de pulsos que pueda llenar los espacios entre sus pulsos de transmisión; si su transmisión cesa, el amplificador de pulso extenderá el último pulso del receptor y luego se detendrá.

Tiene razón, el demodulador en este tipo de receptores está "diseñado" con la necesidad de tener un espacio mínimo entre las ráfagas activas de pulsos portadores. Las especificaciones para esta parte en particular no mencionan esto, pero otros productos similares de Vishay mencionan explícitamente la brecha mínima. Pero no diría que está "diseñado" de esa manera, creo que esto es una deficiencia de diseño, un error. Los productos de Sharp tienen características similares.
@AliChen La detección de amplitud requiere control automático de ganancia (AGC) para aceptar un rango de amplitud de portadora enorme . La constante de tiempo de control de ganancia está integrada y fija para mantener estos chips simples. La mayoría tiene una constante de tiempo bastante corta, algunas son más largas. Pero todo debe con alta ganancia después de un tiempo.
@glen_geek, en una segunda reflexión, sí, el AGC puede explicar por qué necesita una brecha en la modulación. Es necesario cuando desea recibir bits sucesivos de modulación. Pero, ¿cómo explica por qué el receptor no puede producir una salida sostenida con una entrada de portadora no modulada? Las especificaciones de Vishay TSSP4038 podrían ser más claras sobre las limitaciones de la señal.
@AliChen: su edición fue muy inapropiada; las ediciones nunca deben invertir el significado de una respuesta como lo hizo la suya. Son precisamente las portadoras moduladas continuamente las que rechazan los receptores, solo responderán si la propia modulación es pulsada on y off - ráfaga de 38 KHz - silencio - ráfaga de 38 KHz - silencio - etc.
@Chris, esto podría deberse a mi comprensión limitada del inglés. Mi lectura es que si la señal es "constante" (alternancia de 38 kHz), no está modulada. Si la señal está modulada, no es "constante". La combinación "Señal modulada constante" no tiene ningún sentido literal para mí. Así que el significado no se invirtió. La alternativa comprensible podría ser "señal constante, no modulada", con coma.
Persistes en tratar de invertir el significado. La señal modulada constante es exactamente lo que se quiere decir, y obviamente es distinta de una señal no modulada . ¡Si no entiendes, es mejor que no trates de cambiar las palabras de otras personas!
Aparentemente tenemos aquí una dificultad terminológica. Según el motor de búsqueda más completo de Google, una consulta de "señal modulada" devuelve 455 000 resultados, con la definición "En electrónica y telecomunicaciones, la modulación es el proceso de variar una o más propiedades de una forma de onda periódica, llamada señal portadora" . * Por el contrario, su término "Señal modulada constante" devuelve 3 (¡tres!) aciertos. Aparentemente significa una señal de CC cortada por un portador periódico. La próxima vez, utilice una terminología comúnmente aceptada si desea comunicar sus ideas y observaciones.
El lenguaje tiene la propiedad de permitirnos agregar modificadores a los términos para ampliar su significado. "Constante" es un claro ejemplo de ello; también sucede que no es mi elección original de palabra, sino la palabra utilizada en la pregunta misma para describir el objetivo particular que sería contraproducente aquí: una señal modulada constante no funcionará, lo que se necesita es una señal modulada que no es constante.
El demodulador de 38 kHz utiliza con mucha frecuencia @AliChen AGC para determinar el nivel de umbral de bits en la modulación OOK. La portadora sostenida se convierte en la nueva "normalidad" y se confunde con "sin señal". Tienes toda la razón en que este tipo de demodulador requiere espacios. También requiere un pulso de portador completo inicial (acondicionamiento) de algún tipo. Todos los protocolos comienzan con un encabezado.
@ChrisStratton, su invención del término "señal modulada constante" es absurda. Una "señal modulada" no es constante por definición.
Su error está en tratar de aplicar "constante" y "modulado" individualmente a la "señal". Más bien, y obviamente, "constante" se aplica a "señal modulada" para decir que la "señal modulada" no cambia. Eso no es lo mismo que decir que la "señal" no cambia. Y nuevamente, no es mi "invención", sino que me quedo con el mismo modificador utilizado en la pregunta .
@glen_geek, gracias, me engañó tu expansión de AGC. En lugar de "automático", debería leerse "adaptativo", entonces todo se aclara. Gracias.
Finalmente conecté la barrera de luz y no es necesario modular la señal de 38 kHz. El TSSP4038 tiene una salida baja continua cuando ve la señal y una salida alta continua cuando no hay señal.

Toma un ATMega328p y ponle un cristal de cuarzo de 7.6MHz. Luego, con el modo de corrección de frecuencia de fase con ICR1 como 100, emitirá una señal exacta de 38 kHz.

Para hacer esto:

Configure los fusibles de la MCU al cargar el código, a estos valores:

low_fuses= 0x7D = 1111 1101
bit 7 = 1 = CKDIV8  = Divide clock by 8
bit 6 = 1 = CKOUT = clock output
bit 5 = 1 = SUT1 = Select start-up time
bit 4 = 1 = SUT0
bit 3 = 1 = CKSEL3 = Select clock source
bit 2 = 1 = CKSEL2
bit 2 = 0 = CKSEL1 
bit 0 = 1 = CKSEL0

El código para producir los 38kHz en los pines PB1/OSC1A y PB2/OSC1B será:

// Set Timer1 to phase and frequency correct mode. NON-inverted mode
TCCR1A = _BV(COM1A1) | _BV(COM1B1); 

// Set prescaler to clk/1
TCCR1B = _BV(WGM13) | _BV(CS10);

//ICR Register, which controls the total pulse length
ICR1 = 100; // Divides clock by 100/2, so 7.6MHz/100/2 = 38kHz
//OCR Registers, which control the duty cycle.
// OCR1A + OCR1B must be = IRC1.
OCR1A = 50; // 50% of the pulse will be LOW state
OCR1B = 50; // 50% of the pulse will be HIGH state

La especificación del sensor IR Vishay TSSP4038 muestra la capacidad de respuesta frente a la frecuencia relativa. Un 555 con componentes externos estables a la temperatura debería mantenerlo dentro de un rango razonable de capacidad de respuesta, pero debe averiguar qué porcentaje de capacidad de respuesta puede sufrir en el rango completo (una especificación de 0 % nunca es realista, pero el porcentaje real es muy específico de la aplicación). Solo tiene que hacer algunos cálculos para calcular la deriva en el peor de los casos frente a la temperatura en los componentes RC y averiguar si puede recibir el golpe de capacidad de respuesta.

Alternativamente, un microcontrolador con un cristal para medir el tiempo que utiliza una salida de temporizador para alternar un pin en el momento correcto funcionaría y, sin duda, sería más estable.

Las especificaciones del receptor de Vishay muestran la característica del filtro como +-5 % con una atenuación de 3 dB en relación con la frecuencia nominal (38 kHz).

El mejor (temporizador SE555 TI) tiene una sensibilidad interna de 90 ppm/C típica, que en un intervalo de más de 50 C da como resultado 4500 ppm o 0,45 %.

Para llegar a 38kHz, necesitará usar un capacitor de 10nF con una resistencia de 2k. Puede usar tapas de cerámica tolerantes al 1% de NPO (por ejemplo, de Murata), y si también obtiene una fuente de alimentación estable, debería poder obtener una estabilidad del 2-3% en un rango de 50 C.

Sin embargo, lo anterior es más como una ilusión, ya que TI en sí mismo no garantiza nada, consulte esta entrada de blog .

Además , como menciona Chris Stratton , la parte del receptor de Vishay no garantiza una salida constante si se aplica una señal óptica constante a la frecuencia de la portadora, el receptor necesita algunos "descansos" entre las ráfagas de pulsos de la portadora, consulte las especificaciones para una parte similar a TSOP6238 .

ACTUALIZACIÓN : Acabo de hacer un experimento rápido con un receptor IR similar, GP1UV700QS (36kHz, de Sharp). Con un LED IR alimentado desde un generador de señal como fuente, el comportamiento es el siguiente: si no hay señal IR, la salida del receptor es ALTA; si la señal se inicia y continúa, el receptor pasa a nivel BAJO y luego pasa a nivel ALTO por sí mismo . La duración del pulso BAJO depende de la proximidad al emisor. A una distancia cercana (20 cm), el pulso puede durar hasta 300 ms, mientras que a una distancia más larga (1 m) se reduce a 1-2 ms, hasta alternar a 250 us. Dado que la característica de respuesta de frecuencia de la portadora es bastante amplia (5% a -3dB) y el rango dinámico es enorme, realmente no importa mucho si la portadora se desvía +-5kHz, los resultados son los mismos.

LÍNEA DE FONDO: Si la señal del emisor de IR no está modulada, solo es una portadora de 38 kHz de amplitud constante, la clase de receptores de IR como Vishay TSSP40xx o Sharp GP1UV70xx no mantendrá la salida del detector lógico. Para que estos circuitos integrados funcionen como "barrera de luz", la amplitud de la portadora debe modularse en ráfagas distintivas de aproximadamente 1 ms en ON y ~ 1 ms de portadora en OFF. Desafortunadamente, la salida alternará en consecuencia, por lo que para usar el receptor como detector de "pasa-no pasa", el circuito de procesamiento debe detectar la alternancia.

Por lo tanto, podría ser más fácil usar un cristal con un microprocesador y usar temporizadores programables internos para obtener la frecuencia correcta y la modulación correcta, como sugiere la nota de aplicación original de Vishay .

Si la frecuencia es tan crítica, es posible que desee considerar un "bucle de bloqueo de fase" (PLL). Un oscilador de cristal que tenga un "denominador común más pequeño" con la frecuencia que está tratando de producir debería producir menos fluctuaciones (si eso es incluso un factor). Solo como ejemplo, 1,9 MHz dividido por 38 kHz = 50 veces. Entonces, 1,9 MHz dividido por 50 serían 38 kHz. Espero que esto ayude.

@ JMRM22 Gracias por detectar mi error. Es importante proporcionar información correcta a los lectores.

Dos opciones simples para una onda cuadrada de 38kHz:

  1. Use el oscilador controlado por voltaje integrado en este chip PLL: http://www.ti.com/lit/an/scha002a/scha002a.pdf (Consulte la página 16 del PDF para saber cómo elegir los componentes para establecer la frecuencia de salida)

  2. Construya un oscilador de relajación con un amplificador operacional y resistencias estables a la temperatura: http://www.falstad.com/circuit/e-relaxosc.html

Un 555 probablemente sería la solución más fácil y podría ser lo suficientemente estable en un amplio rango de temperatura.

Cristal de 38kHz en Ebay Simplemente use el cuadro de selección para la frecuencia correcta.

¡PERO! Teniendo en cuenta que estos sensores exactos se usan con Arduinos, que generalmente tienen relojes de 16 MHz, consideraría investigar un poco sobre el código Arduino para estos kits de sensores, ¡ya que podría haber algún código terminado para su proyecto!