Power HC-SR04 desde el pin del microcontrolador y el MOSFET

1

simular este circuito : esquema creado usando CircuitLab

Estoy trabajando en un sensor de proximidad para mi garaje y estoy usando un sensor ultrasónico HC-SR04 para medir la distancia. El microcontrolador que estoy usando para controlarlo todo es un PIC16F88. Tengo una primera versión que funciona perfectamente bien, la distancia es precisa y consistente.

Sin embargo, estoy planeando encender el proyecto desde una batería (no estoy seguro de qué tipo de batería todavía), y por eso me gustaría reducir el consumo de energía tanto como sea posible. En estado inactivo, el sensor de distancia consume aproximadamente 3 mA, lo cual es demasiado. Comencé a modificar el proyecto para usar el modo de suspensión del PIC, esta parte funciona bien.

Ahora estoy intentando alimentar el HC-SR04 desde un pin del PIC y un MOSFET (2N7000). Tengo el sensor conectado de la siguiente manera:

  • Vcc: + 5V
  • Trig: Pin de salida del PIC
  • Echo: Pin de entrada del PIC
  • Gnd: Drenaje de MOSFET

El MOSFET está conectado como:

  • Drain: Gnd pin del HC-SR04
  • Fuente: Gnd del circuito
  • Puerta: pin de salida del PIC

La lógica de mi programa C es la siguiente:

  • Aplique el nivel lógico 1 a la puerta del MOSFET
  • medir la distancia
  • Aplique el nivel lógico 0 a la puerta del MOSFET
  • Ponga el PIC a dormir un poco (unos 500 ms)
  • Repetir

El problema es que las distancias medidas no son consistentes en absoluto. Parece variar alrededor de la distancia correcta, pero va de 10 a 20 centímetros por encima y por debajo de la distancia real. Si conecto la puerta del MOSFET a + 5V, entonces funciona perfectamente bien y tengo distancias consistentes y correctas. Intenté esperar hasta 500 ms después de configurar la compuerta a + 5 V antes de medir la distancia, pero no la reparó.

¿Alguien ha experimentado algo similar o tiene una idea de lo que podría intentar alimentar el HC-SR04 de esta manera?

¡Gracias por tu ayuda!

    
pregunta Asct20

2 respuestas

2

Después de mucho experimentar, parece que todo se debió a que las conexiones de la placa de pruebas no eran lo suficientemente fuertes. Cuando trato de "empujar" el MOSFET y los cables conectados a él de una manera que los obliga a tocar, parece ser mucho más consistente; cuando consigo una buena conexión y no muevo el tablero, la distancia es muy estable. También agregué un condensador entre + 5V y Gnd para el HC-SR04, para absorber cualquier inconsistencia en la señal dada por el pin del PIC y el MOSFET. Pronto soldaré todo en una placa prototipo y podré confirmar que este fue el problema.

El tiempo de activación del HC-SR04 parece ser de unos 60 ms. El tiempo mínimo sugerido entre 2 medidas para evitar colisiones de una señal anterior es de aproximadamente 60 ms, por lo que traté de esperar 60 ms después de alimentar el sensor también. Esperar menos eso da algunos valores incorrectos, por lo que recomendaría mantener un retraso de 60 ms o más cada vez que encienda el sensor, así como entre cada medida.

Supongo que la solución es simplemente que el HC-SR04 necesita ser alimentado por una señal estable, lo cual no fue el caso en mi tablero. De todos modos, muchas gracias por la ayuda!

    
respondido por el Asct20
1

Es un poco largo, pero puede considerar cambiar sus pines de E / S que están conectados al HC-SR04 a alta impedancia antes de apagar el FET, en caso de que esté perdiendo energía en el HC-SR04 a través de ellos cuando está aparentemente apagado. El módulo podría ponerse en un estado funky en ese caso, creo.

    
respondido por el vicatcu

Lea otras preguntas en las etiquetas