Algunas preguntas sobre un circuito de interfaz de interruptor de láminas de baja frecuencia

Necesito conectar este sensor de medidor de lluvia con interruptor de láminas a una entrada de contador o a un canal de entrada analógico aislado de una placa de adquisición de datos. El sensor estará a unos 30 metros de distancia de la placa de adquisición de datos. La entrada del contador tiene disparador Schmitt y debajo están las propiedades del contador:

ingrese la descripción de la imagen aquí

El circuito de interfaz que utilicé al principio arrojó el siguiente resultado para contrarrestar:

ingrese la descripción de la imagen aquí

Básicamente, vertí un vaso de agua en el cubo (ya que no llueve) y parece que, según el gráfico anterior, la frecuencia máxima es de alrededor de 3 Hz. Y el tiempo de conmutación es de alrededor de 0,03 segundos, es decir, 30 ms. Usé una resistencia de 4.7k y una tapa de 4.7u para el filtrado de paso bajo para el antirrebote. Solo usé 1 metro de cable. En real será de 30 metros.

Pero con esta interfaz no estoy contento con un par de cosas: la primera es el flanco ascendente curvo y la segunda es que quiero que la salida esté encendida cuando el interruptor está encendido. Pero arriba está invertido.

Así que decidí usar el siguiente circuito en su lugar:

ingrese la descripción de la imagen aquí

No implementé esto en real, pero tengo algunas preguntas al respecto:

1-) Desconozco el tiempo de rebote de contacto de este conmutador y tampoco figura en la hoja de datos:

ingrese la descripción de la imagen aquí

Como no conozco este período de rebote de contacto, no puedo decidir sobre los valores R y C del filtro LP. Sé por experimento que este interruptor cuando vierto agua tiene una frecuencia de alrededor de 3 Hz y el tiempo de encendido es de alrededor de 30 ms de mi gráfico MATLAB anterior. Tampoco quiero flancos ascendentes demasiado lentos. ¿Qué valores de RC pueden ser óptimos o adecuados para esta interfaz?

2-) Encontré algunos ejemplos usando el diodo pero realmente no sé el propósito de ese diodo. ¿Cuál podría ser la razón por la que se usa a veces? ¿Hay algún error fundamental en el circuito? (Si no uso R4, causa picos de corriente en la simulación, etc.)

editar:

Olvidé mencionar que la frecuencia de muestreo para ese diagrama de MATLAB fue de 500 Hz. Pero la entrada del contador tiene una frecuencia de nivel de MHz similar.

editar 2:

interruptor antirrebote con 20 ciclos 1ms antirrebote:

ingrese la descripción de la imagen aquí

esto se prueba con el circuito sugerido:

ingrese la descripción de la imagen aquí

C1 se incrementa a 2.2u:

ingrese la descripción de la imagen aquí

Creo que sigo tu discusión. Pero déjame poner a prueba mi comprensión. Parece que el meollo de su pregunta es sobre el hecho de que no le gusta el tiempo de subida lento, pero tampoco puede manejar ningún rebote del interruptor después de este circuito, por lo que debe lidiar con él usando algún tipo de acondicionamiento. Pero desea que el acondicionamiento sea lo más rápido posible, en consonancia con la eliminación del rebote del interruptor. Y estás pensando en un método pasivo. No quieres un circuito activo. (Para cualquier otra persona, sí, veo el diodo allí). ¿Es eso?
Además, debe seguir las instrucciones de la hoja de datos y agregar el 100 Ω resistencia dentro de la unidad, en sí. Sinceramente, no sé por qué no siempre lo incluyen, instalado. (Excepto para ahorrar costos). Casi siempre es una buena idea, independientemente de la longitud del cable.
@jonk Eso es correcto, puedo vivir con un tiempo de subida lento pero no demasiado lento. Solo quiero estar casi seguro de que el antirrebote funciona. No quiero involucrar un circuito activo con un IC, pero tal vez un solo transistor esté bien. Sería bueno que cuando el interruptor esté encendido durante 30 ms, el voltaje también esté en 30 ms (comportamiento no inversor). No tengo experiencia con dicha interfaz, por lo que ni siquiera puedo decidir sobre los valores RC para el filtro. Pero el gatillo schmitt no es necesario porque el contador lo tiene.
Bueno. creo que sigo. Así que imagina que un circuito RC, correctamente diseñado, podría, por sí mismo o junto con la histéresis del disparador Schmitt, lidiar con el efecto de rebote. Tenga en cuenta que su circuito tiene un tiempo de reinicio significativo, así como un tiempo establecido. Los sistemas pasivos son así. Si tarda un tiempo en subir, también tarda un tiempo en declinar. Haría un esfuerzo adicional por activo. Pero se puede diseñar un sistema pasivo. ¿Ha mirado para ver qué hacen otros que usan este dispositivo en particular? ¿Alguien ha publicado su propio condicionamiento para ello?
¿Estaría dispuesto a considerar un circuito activo con partes discretas?
@jonk Sí, se pueden usar uno o dos transistores si no es excesivo para esta aplicación.
Tengo que despegar por un tiempo. Pero cuando regrese, si alguien aún no lo ha hecho mejor, agregaré mis pensamientos aquí.
Gracias, espero que puedas ayudar con esto. Por cierto, ¿para qué sirve esa resistencia recomendada de 100 ohmios? ¿Cómo puede ayudar?
Agregado. Vea si lo asusta o sigue siendo aceptable. Puedo proporcionar un circuito LTspice, si es necesario, para demostrar el comportamiento en presencia de requisitos de eliminación de rebotes y el tiempo que establezca para ello.
La resistencia de 100 ohmios está ahí exactamente para lo que dice la hoja de datos. Puede haber capacitancia en un cable que puede almacenar carga que se descarga cuando se cierra el interruptor de láminas. La resistencia en serie limita la corriente máxima.

Respuestas (1)

Esquema conceptual y sincronización

El siguiente circuito, y similar, ha sido publicado por mí para otros fines. Para su caso, no necesité hacerle mucho.

Este es el concepto básico, que explicaré en breve:

esquemático

simular este circuito : esquema creado con CircuitLab

(Tenga en cuenta que tengo la intención de seguir la recomendación de su hoja de datos al final de mi respuesta y agregar una resistencia en serie a la línea del interruptor de lengüeta. Pero por ahora, me gustaría evitar discutirlo y centrarme en los detalles básicos).

Me gusta usar un BAV99 para D 1 y D 2 . Pieza única, fácil de conseguir, barata. Pero creo que puedes usar cualquier par de diodos que quieras. El más importante de los dos es D 2 , a través del cual carga en C 1 debe desaparecer cuando el circuito se restablece. Hay poco daño que puedo ver si te fueras D 1 aunque fuera del circuito. Aún así, creo que es una buena idea mantenerlo, si es posible.

R 4 es un desplegable. Lo mantendría en un valor bajo para ayudar realmente a restablecer el circuito rápidamente. Pero su valor tampoco es crítico. Así que no te preocupes mucho por el valor exacto.

Las partes críticas de tiempo son R 1 y C 1 . He configurado estos para el estadio de béisbol de 30 EM . Pero siéntete libre de ajustarlos a diferentes valores. El voltaje umbral para METRO 1 debe ser lo suficientemente bajo para que el circuito funcione, por lo que debe buscar algo en el área alrededor de VTO de aproximadamente 2.0 2.5 V y la menor capacitancia de puerta posible. El BSS145 podría funcionar bien, aquí. Pero nuevamente, esto es solo una cuestión de seleccionar un NFET con un VTO bajo y una capacitancia general baja. Tampoco es necesario que tenga una resistencia de encendido súper baja. (Solo va a extraer una corriente de drenaje de aproximadamente 1 mamá .)


Qué hace que funcione

El concepto básico es que cuando la lengüeta se cierra, tira hacia arriba C 1 y esto tira METRO 1 's puerta en. Una vez METRO 1 continúa, extrae la corriente base de q 1 y q 1 enciende la fuente de corriente en R 4 que va ALTO. Hay un ciclo de tiempo que comienza entonces, con C 1 cargando lentamente a través de R 1 . Mientras eso sucede, esto empuja hacia abajo en METRO 1 la puerta y finalmente la apaga, apagando q 1 . En ese momento, R 4 tira hacia abajo con fuerza C 1 (si el interruptor de láminas está abierto) forzando C 1 para descargar su cargo a través de D 2 en el suelo y en su mayoría descargándose, y lo suficiente como para restablecer el ciclo. (Un drenaje adicional muy ligero de C 1 luego tiene lugar a través de R 1 y R 4 para exprimir lo que quede.)

En efecto, hace rebotar el interruptor de lengüeta por usted. Puede ajustar el período de rebote ajustando C 1 y R 1 .

Hay métodos más simples, pero creo que valdrá la pena tener una unidad activa.


Esquema final

La hoja de datos recomienda una resistencia en serie de 100 Ω colocado dentro de la caja. Creo que esa recomendación es buena y que deberías considerar seriamente la idea. Si decide incluirlo, entonces el circuito anterior seguirá funcionando bien.

Lo representaré en el esquema aquí abajo:

esquemático

simular este circuito

Su uso no debería perjudicar el esquema conceptual ofrecido anteriormente. De hecho, lo mejora significativamente al limitar drásticamente la corriente máxima a través del interruptor de láminas.

Por lo tanto, le recomiendo que definitivamente incluya la nueva resistencia, como se indica tanto en la hoja de datos como en el esquema recién agregado anterior, para ayudar a preservar la vida útil del interruptor de lengüeta. Dado que este esquema en realidad usa un condensador para la temporización y expone el interruptor al condensador, ahora es más que una buena idea. Realmente deberías tomarte el tiempo para agregarlo.


Esquema de validación de LTspice

Aquí está el texto. Deberá tomar una copia y luego guardarla como un archivo .ASC para que LTspice lo lea. Espero no haber usado alguna parte que aún no tengas disponible en tu encarnación de LTspice.

Version 4
SHEET 1 1224 800
WIRE 400 -112 352 -112
WIRE 496 -112 400 -112
WIRE 304 -80 304 -112
WIRE 400 -80 400 -112
WIRE 496 -80 496 -112
WIRE 352 -64 352 -112
WIRE -288 16 -288 -64
WIRE 352 32 352 -16
WIRE 496 32 496 0
WIRE 496 32 352 32
WIRE 400 96 352 96
WIRE 496 96 400 96
WIRE 304 128 304 0
WIRE 400 128 400 96
WIRE 496 128 496 96
WIRE -288 144 -288 96
WIRE 352 144 352 96
WIRE -144 176 -144 112
WIRE 352 240 352 192
WIRE 496 240 496 208
WIRE 496 240 352 240
WIRE 32 256 32 112
WIRE 304 256 304 208
WIRE -144 304 -144 256
WIRE -32 304 -144 304
WIRE -144 352 -144 304
WIRE -288 368 -288 320
WIRE 32 384 32 352
WIRE 304 384 304 336
WIRE 304 384 32 384
WIRE 32 400 32 384
WIRE 304 416 304 384
WIRE 560 416 304 416
WIRE -288 496 -288 432
WIRE -224 496 -288 496
WIRE 32 496 32 464
WIRE 32 496 -224 496
WIRE -288 528 -288 496
WIRE -144 528 -144 432
WIRE 304 544 304 416
WIRE 32 560 32 496
WIRE -224 608 -224 496
WIRE -192 608 -224 608
WIRE -288 624 -288 592
WIRE -144 688 -144 624
WIRE 32 688 32 640
WIRE 304 688 304 624
FLAG -144 688 0
FLAG 32 688 0
FLAG -144 112 Vcc
FLAG 32 112 Vcc
FLAG 304 -112 Vcc
FLAG 304 688 0
FLAG 400 -80 0
FLAG -288 144 0
FLAG -288 -64 Vcc
FLAG -288 320 Vcc
FLAG -288 624 0
FLAG 400 128 0
FLAG 560 416 DEBOUNCED
SYMBOL pnp2 -32 352 M180
SYMATTR InstName Q1
SYMATTR Value 2N3906
SYMBOL res -160 160 R0
SYMATTR InstName R1
SYMATTR Value 33k
SYMBOL res -160 336 R0
SYMATTR InstName R2
SYMATTR Value 2.2k
SYMBOL nmos -192 528 R0
SYMATTR InstName M1
SYMATTR Value BSS145
SYMBOL res 16 544 R0
SYMATTR InstName R3
SYMATTR Value 100k
SYMBOL cap 16 400 R0
SYMATTR InstName C1
SYMATTR Value 470n
SYMBOL res 288 528 R0
SYMATTR InstName R4
SYMATTR Value 220
SYMBOL sw 304 -96 M0
SYMATTR InstName S1
SYMATTR Value MS1
SYMBOL voltage 496 16 R180
WINDOW 0 24 104 Left 2
WINDOW 3 -471 7 Left 2
WINDOW 123 0 0 Left 2
WINDOW 39 0 0 Left 2
SYMATTR InstName V1
SYMATTR Value PULSE(0 5 {t/30} 1u 1u {t/60} {t/30})
SYMBOL voltage -288 0 R0
WINDOW 123 0 0 Left 2
WINDOW 39 0 0 Left 2
SYMATTR InstName V2
SYMATTR Value 5
SYMBOL sw 304 112 M0
SYMATTR InstName S2
SYMATTR Value MS1
SYMBOL voltage 496 224 R180
WINDOW 0 24 104 Left 2
WINDOW 3 -485 5 Left 2
WINDOW 123 0 0 Left 2
WINDOW 39 0 0 Left 2
SYMATTR InstName V3
SYMATTR Value PULSE(0 5 {t/30} 1u 1u {t*0.7} {t*1.8})
SYMBOL res 288 240 R0
SYMATTR InstName R5
SYMATTR Value 100
SYMBOL diode -272 592 R180
WINDOW 0 24 64 Left 2
WINDOW 3 24 0 Left 2
SYMATTR InstName D1
SYMATTR Value 1N4148
SYMBOL diode -272 432 R180
WINDOW 0 24 64 Left 2
WINDOW 3 24 0 Left 2
SYMATTR InstName D2
SYMATTR Value 1N4148
TEXT -392 784 Left 2 !.model MS1 SW(Ron=.1 Roff=1000Meg Vt=2 Vh=0 Lser=10n Vser=.01)
TEXT -392 744 Left 2 !.tran {t*4}
TEXT -392 704 Left 2 !.param t={30m}

Hay dos interruptores diferentes en serie en ese esquema. Uno de ellos es simplemente un pulsador rápido, que se usa para 'simular' el efecto de rebote de la caña. Estoy seguro de que ni siquiera está cerca de la circunstancia real. Pero es lo suficientemente bueno, creo, para probar el circuito. El otro "compuertas" este pulsador rápido, por lo que ráfagas de aproximadamente 20 EM de ella pasa al circuito.

Mira lo que piensas.

Ah, y aquí está el modelo para el ZVN3310A que mencionó que obtuve de Diodes Inc.

.SUBCKT ZVN3310A 3 4 5
M1 3 2 5 5 MOD1   
RG 4 2 356
RL 3 5 1E8
C1 2 5 21.5P
C2 3 2 2.5P 
D1 5 3 DIODE1
.MODEL MOD1 NMOS VTO=1.736 RS=2.147 RD=1.682 IS=1E-15 KP=0.157
+CBD=25.5P PB=1
.MODEL DIODE1 D IS=6.12E-13 RS=.629
.ENDS ZVN3310A

parece bien Pero sí, claramente aumenta el tiempo. Espalda fácilmente ajustable, por supuesto.

Simularé esto en LTspice y escribiré de nuevo. Muchas gracias por la sugerencia. Solo necesito encontrar el equivalente para el diodo que usa y el MOSFET. No puedo hacer el montaje en superficie, ambos deben ser a través del orificio.
@ cm64 Use cualquier diodo que desee. El BAV99 es un par de diodos de silicio de propósito general. Si desea un esquema de LTspice para probar esto, como escribí anteriormente, puedo proporcionarle uno.
Si, eso sería muy bueno. Traté de simular ese rebote de contacto pero está más allá de mis límites en LTspice. La segunda cosa es ¿cuál debería ser esa frecuencia de rebote de contacto? Quiero decir, dado que en la hoja de datos no se proporciona, debemos adivinar, ¿verdad? Una suposición realista. Vi que algunos escribieron que normalmente es alrededor de un ms.
@ cm64 Simplemente inventaría la frecuencia. Creo que pude haber usado 1 EM , En realidad. Pero realmente no tengo idea de cómo se verían los datos reales con su interruptor de láminas.
Primero hice un interruptor similar a este: i.stack.imgur.com/suxOT.jpg Luego lo conecté a tu circuito. Consulte mi "edit2" al final de mi pregunta. Lo que entiendo es que su circuito estira el ancho del pulso para deshacerse del rebote, ¿estoy en lo correcto? Tuve que aumentar C1 a 2.2u. Me gustaría escuchar sus comentarios.
@cm64 El primer impulso enciende el circuito y, durante un período de tiempo establecido, ignora los impulsos adicionales y mantiene la configuración de encendido. Puede establecer ese período, como desee. Proporciona un buen borde de ataque afilado. Pero si el interruptor de lengüeta se apaga completamente antes de que expire el período de tiempo, seguirá ENCENDIDO durante el período de tiempo dado. Eso puede, o no, ser lo que quieres.
@ cm64 Otro enfoque que usa un circuito muy similar (dos diodos agregados), pero configurado para un enfoque diferente, podría ser ver cuál es la duración de la fluctuación en el peor de los casos y establecer el tiempo para ese tiempo mucho más corto. Entonces, por ejemplo, si el período en el peor de los casos entre rebotes es de 3 ms, establezca el tiempo en 3,5 ms. De esta manera, el borde final caerá muy cerca del interruptor de lengüeta, si es necesario.
Si el contador está contando flancos ascendentes, entonces no hay problema. Pero incluso el contador está contando los bordes descendentes, este es un medidor de lluvia, así que supongo que el retraso no es importante, parece que lo importante es que cuenta el número correcto de acciones de conmutación. (?)
@cm64 Sí, eso es lo que estaba imaginando para ti y por qué pensé que este circuito sería aceptable. El único problema que veo es si necesitas conteos muy rápidos. Si establece el tiempo en 30 ms, no podrá contar más de 30 por segundo, aproximadamente. Pero un relé de lengüeta que rebota también es un problema. Por lo tanto, debe adaptarse a la necesidad de eliminación de rebotes (tiempo de demora más largo), pero también manejar la tasa de conteo máxima que desea (tiempo de demora más corto). Atrapado entre estos dos, debe elegir un tiempo y una tasa que pueda aceptar.
Vertí agua y parece que la conmutación es de un máximo de 3 Hz (ver mi diagrama de MATLAB). Entonces sabemos que la frecuencia máxima del interruptor de láminas. es 3 Hz (período de 333 ms) y también sabemos/suponemos que un tiempo de rebote es de 1 ms (simplemente no sabemos la cantidad de ciclos de rebote, tomé 20 en sim). Por lo tanto, el ancho de pulso estirado no debe exceder los 300 ms. Si configuro C1 en 2.2u en su circuito, corresponde a un ancho de pulso de 120 ms. Supongo que no debería ser un problema (?)
@cm64 ¡Me parece bien! Sin embargo, no puedo imaginar CÓMO un interruptor de láminas podría rebotar tanto tiempo. ¿Probablemente establecería el tiempo en quizás 50 ms? No 120. Pero creo que esto realmente depende de ti.
Gracias, solo necesito encontrar un MOSFET equivalente a un orificio pasante antes de soldar. Pero en LTspice VTO de BSS145 es 2.8V. También es de montaje en superficie. Puedo obtener este docs-emea.rs-online.com/webdocs/1321/0900766b81321be0.pdf su Vgs es 2.4V. ¿Se puede usar en su lugar?
@ cm64 Difícil de decir. Parece que se las arreglará. Pero los gráficos no hacen mucha justicia a la corriente de drenaje baja que mencionan (y que es adecuada para esta aplicación) para ese voltaje de umbral. Así que eso es lo mínimo para ello. Hay un cuadro en la esquina inferior izquierda de la página 3-379 que simplemente no "va allí". Y donde va, sugeriría un problema. Pero tampoco puedo decir que no funcionará. No soy un experto en mosfet, por lo que tal vez alguien más podría leer más en la hoja de datos de lo que soy capaz.
Encontré el modelo LTspice de ZVN3310A, creo que su capacitancia de entrada es el doble, el ancho de pulso en la simulación se duplicó.
@cm64 Encontré un modelo en Diodes Inc. Parece funcionar bien.
Sin embargo, @ cm64 aumenta el tiempo. Probablemente porque su voltaje de umbral puede bajar. Entonces, el tiempo se prolonga más a medida que se carga el capacitor.