lectura de baja potencia del interruptor NC con mcu

0

Quiero leer el estado de un interruptor normalmente cerrado (sensor de nivel de agua) con una MCU. El interruptor NC está conectado a través de dos cables de aproximadamente 20 metros de largo. La MCU se despierta periódicamente y habilita un pullup externo (R5) y luego lee la señal en un pin de entrada GPIO. El pullup es activado por un transistor para minimizar la corriente de inactividad. Los diodos Schottkey y las resistencias en serie son para protección contra voltajes inducidos externos.

¿Funcionará este circuito? Si se abre el interruptor, un extremo del cable flotará la mayor parte del tiempo cuando el pullup no esté activo mientras no esté leyendo el estado ... ¿Esto es un problema?

Gracias por cualquier comentario sobre esto.

    
pregunta wildcard

2 respuestas

1

Ya estás usando un pull-up de 1M ... ¿a qué baja corriente quieres ir?

También es una maravillosa antena que tienes, por lo que supongo que tienes esa tapa de 10 nF.

Usted sabe que el tiempo RC de carga es 10 ms correcto.

Necesitas hacer los cálculos y ver si la caída de corriente que ganas al cambiar supera la corriente que pierdes al permanecer despierto el tiempo suficiente para permitir que se asiente. Lo cual dudo.

En cuanto a la parte flotante, ya que la protegió con diodos, debería estar bien, aunque sería prudente proporcionar una ruta de descarga para el límite.

Personalmente creo que algo más en estas líneas sería más prudente. Utilice el pin de salida para conducir la línea directamente y sentir con el otro. También agrega el beneficio de que puede modular la salida si es necesario detectar que realmente es el cable y no un corto en alguna parte.

simular este circuito : esquema creado usando CircuitLab

    
respondido por el Trevor_G
1

El MOSFET ... se puede quitar de forma segura. Puede conducir su Pullup directamente desde un pin de salida del microcontrolador en lugar de usar un FET. La carga no consume suficiente corriente para justificar un FET externo.

También puede usar un pullup interno (encendido / apagado) en lugar de uno externo, guardando un pin.

Hacer que R1 sea más alto brindará una mejor protección contra EMI, ESD, etc.

BAT54 tiene una fuga de aproximadamente 0.5-1µA a su bajo voltaje. Decide si esto es malo para la duración de la batería. Si es así, use un diodo estándar (no Schottky). Gracias a R4, la corriente que puede fluir hacia el pin de entrada es bastante limitada de todos modos.

1Mohm pullup me pone incómodo. La humedad leve a lo largo de los cables sería suficiente para filtrar unos pocos µA, lo que hace que su micro crea que el interruptor está cerrado.

Además, 1Mohm * 10nF necesitará mucho tiempo para establecerse. Si realmente desea ahorrar energía, deberá volver a poner el micro en suspensión mientras espera a que se asiente ...

Aquí está mi propuesta.

La cantidad de carga que consumirá es lo que se necesita para cargar C2 hasta un voltaje que el micro lea como "1", digamos 3V * 10nF = 30nC.

Aquí está mi solución:

  • Eliminar MOSFET, eliminar R7
  • R1 = 1k
  • Establezca C2 en 1nF, y póngalo en paralelo con los diodos para un mejor filtrado de EMI
  • Reemplace R5 con condensador de 33 nF
  • Establezca SW_EN como salida, dirigido a GND

Para consultar el sensor:

  • Establezca SW_EN en ALTO. Esto permite que la tapa de 33 nF envíe un impulso al cable y cargue C2. Si el interruptor está abierto, C2 se cargará a 90% VCC. Si está cerrado, su voltaje disminuirá rápidamente a 0V.
  • Espere 500µs (TBD)
  • Comprueba GPIO_IN
  • Establezca SW_EN en LOW
  • Vete a dormir

Esto consume 100 nC en cada cheque (cargo en el límite de 33 nF por debajo de 3 V), por lo que si lo marca 10 veces por segundo, es de 1µA.

La corriente enviada a través del cable será bastante alta (unos pocos mA). Esto debería ser suficiente para superar cualquier fuga debido a la humedad.

También puedes usar una resistencia en lugar de un condensador de 33 n, pero luego tendrás que comprometer las resistencias de protección de entrada.

    
respondido por el peufeu

Lea otras preguntas en las etiquetas