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.
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.
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á.
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.
Dos opciones simples para una onda cuadrada de 38kHz:
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)
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!
winny
usuario98663
Ale..chenski
feklee
chris stratton
Ale..chenski