Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:
Hola a todos!!
Para un modulo alimentado a batería que tengo necesito saber cuándo el voltaje baja por debajo de, digamos 4V; de manera que antes de que se quede del todo sin batería, mande un mensaje notificándolo. Y para que este mensaje se lance, necesito un circuito que me detecte la bajada de voltaje y me ponga un 1 o un 0 en una entrada del microcontrolador, de manera que éste se entere de la bajada de tensión.
Para ello lo primero que hice fue activar el Brown Out Detector (BOD) del micro, pero lo malo de esto es que cuando el voltaje cae por debajo de unos 4.5V el micro se resetea, con lo que se me queda en un estado totalmente inestable de reseteos continuos y aleatorios que ni dejan que el micro termine de ejecutar las funciones de detección de batería baja. Asi que, aunque no sea el foro adecuado, ¿alguno sabeis cómo desactivar el BOD por software o cómo hacer que no se resetee o cómo podría solucionar lo que me ocurre?
Y en caso de no utilizar el BOD como solución, ¿me podríais recomendar algún circuito, lo más sencillo posible que desempeñe esas funciones? Y sobretodo, que consuma lo menos posible (1mA es excesivo).
Muchas gracias y saludos!!!
El tema es que mi intención era utilizar al propio BOD para detectar la bajada de tensión, mandar el mensaje y continuar funcionando como si nada. Pero como esto parece ser que no es posible debido a la condición de reseteo de este sistema, me parece, salvo que alguien reconozca lo contrario, que lo mejor es plantearme la introducción de un circuito a parte que me detecte la bajada de tensión.
El micro que uso es un Atemga8. Me parece que el BOD resetea siempre, sin opción de generar una interrupción. El poner el BOD a un nivel más bajo (3V) no me vale porque estamos en las mismas: una vez llegue a 3V empieza a resetearse hasta la extenuación, lo cual es muy nocivo para mi aplicación.
Utilizar la referencia del micro de momento no me convence, ya que la idea es que el micro pueda detectar la batería baja incluso mientras duerme (poniendo la salida del circuito que indique si hay batería baja a una entrada de interrupción externa), pero todo esto tengo que ver si me compensa en relación con el consumo.
Lo de utilizar un divisor resistivo me gusta pero no lo entiendo: la caida del voltage de la batería no provoca que caiga en ambas partes de la división de resistencias?
Por favor, a ver si me puedes explicar un poco mejor este circuito, que me parece que por ahí pueden ir los tiros.
Como aportación por mi parte, he encontrado un diagrama que me puede servir, pero que he intentado reproducir en un software que tengo para probar circuitos teóricos y no me sale... os dejo el enlace a ver que os parece.
http://www.neoteo.com/construya-un-indi ... de-sus.neo
Y ya sabeis: cuanto más barato y menos consuma, mejor 😉
Muchas gracias a todos y saludos!!!
Bueno, lo de poner 2 resistencias de 1M... creo que eso dependerá del convertidor, en el caso de los PIC creo que admiten máximo 10k en la puerta del convertidor.
En el capitulo 4 del PDF que te he dicho viene explicado lo que buscas: Single-Supply Op Amp Design Techniques
Morgoz, la idea es sencilla: un divisor de tensión te da la tensión de batería dividida por un factor. Supongamos que si tienes 6V, con las resistencias que te pongo, tendrías 3V. Es decir, Vbat/2. Si eso lo comparas, bien con el comparador interno, bien con el conversor AD, con un valor umbral que hayas decidido que corte, como por ejemplo 5V, entonces, en el momento en que el resultado de la comparación (la salida del comparador interno, que te puede generar una interrupción, o en la IRQ del conversor) sea inferior, el micro se despierta o reacciona en consecuencia.
Para que eso funcione, tienes que comparar con una tensión de referencia, y para eso la referencia interna del micro te vale. Piensa que el ADC lo que hace es te dice que porcentaje (de hecho que tanto por 1024) de esta tensión de referencia tienes en la entrada. El comparador lo que hace es comparar la tensión de un pin con la de otro, que puede ser al referencia de tensión. En el momento en que cambia el resultado de la comparación, te genera una interrupción (si la tienes habilitada, claro).
Lo de autoresetearse yo lo arreglaba con un regulador de tensión low dropout con entrada de enable. Al detectar que había bajado la tensión, desactivaba la señal de enable, y el regulador cortaba. Al estar cortado, el micro no podía volver a rearrancarlo, a no ser que se aplicase tensión externa.
La impedancia máxima de entrada en los AVR, igual que en los PIC que comentas, FJ, también es de 10K, a altas frecuencias o velocidades, pero poniendo un condensador de digamos 100nF entre la entrada del ADC y masa, la conviertes en muy pequeña, así que desaparece el problema.
Vale,
pero entonces, ¿no podría, directamente, meter en una de las entradas del ADC la alimentación de 5V, sin divisores, y comprobar hasta que sean 4V (tomando como referencia 5V de la referencia interna del micro) y, una vez el valor del voltaje llegue a los 4V, salta la subrutina de batería baja?
Y otra cosa: una vez el micro detecte que hay batería baja, a parte de notificarlo para que se le cambie la batería, ¿qué es lo más aconsejable que debería de hacer él? ¿dormir? ¿Seguir funcionando normalmente aunque falle?
Gracias!!
Mmm, yo haría como ya te han dicho. Un regulador con pata de enable, la bajas y ale, todo desconectado...