Monitorizar tensión de la batería

Nov 01, 2006 27 Replies

tengo un pic16f877A, quiero monitorizar constantemente el voltage de la batería, de manera que cuando baje hasta 11,5Voltios se active un buzzer.



Estoy programando con CCS, ¿como puedo conectar al pic para hacer lecturas y detectar que la batería está muy baja?.



gracias!


Hola, si se trata de detectar niveles de tensi=F3n es mejor usar un comparador cl=E1sico, con un operacional. Si lo que quieres es medir y hacer la comparaci=F3n por software tienes dos trabajos diferentes:

1=2E- Acondicionar la se=F1al (tensi=F3n de la bater=EDa) al rango que puede medir un PIC de esos. Calcula la precisi=F3n sabiendo cu=E1ntos bits usa el convertidor A/D que incorpora el propio PIC. 2=2E- Escribir un software que compare las sucesivas conversiones A/D con ciertos valores contenidos en una tabla y active la salida adecuada.

Te recomiendo una visita a las p=E1ginas del fabricante. Seguro que all=ED vas a encontrar respuesta.

G=2E

Para conectar la batería al PIC puedes usar un divisor resistivo, calculado por ejemplo para una relación 12/5, de forma que cuando en la batería haya

12V el PIC vea 5V. La salida de ese divisor la llevarías a una entrada del ADC del PIC, y listo. Sin embargo hay un pequeño inconveniente, por las limitaciones que impone la impedancia de entrada del ADC del PIC. Eso te obligaría a utilizar resistencias de un valor relativamente bajo, lo que supone un consumo de corriente constante, y relativamente alto.

En vez de eso podrías usar un comparador interno del PIC, pero, aunque su impedancia de entrada es más alta, Microchip sigue recomendando que la electrónica asociada no tenga una impedancia de salida mayor que 10k. Si esto es suficiente para tu caso (por la capacidad de la batería), podría ser una opción, con la ventaja de que también dispones internamente de la referencia de tensión para comparar.

Si te interesa un consumo menor, yo veo dos opciones. Una es la que te han dicho, utilizar un comparador externo, de bajo consumo y alta impedancia de entrada. Y otra, quizás más barata (un comparador también es muy barato) y con un consumo incluso menor, es utilizar un transistor, manejado por una salida del PIC, que haga que el divisor resistivo derive corriente sólo cuando vayas a medir, y el resto del tiempo permanezca en alta impedancia. Como el tiempo de medida es muy corto, y se puede hacer a intervalos muy grandes, aunque el divisor resistivo sea de bajo valor, el consumo de corriente será muy pequeño.

Saludos de Jose Manuel Garcia jose.mgg@terra.es http://213.97.130.124 "Carmelo J. Morales Muñoz" escribió en el mensaje news:P072h.33691$SA1.27517@fe06.highwinds-media.phx... > tengo un pic16f877A, quiero monitorizar constantemente el voltage de la > batería, de manera que cuando baje hasta 11,5Voltios se active un buzzer. > > Estoy programando con CCS, ¿como puedo conectar al pic para hacer lecturas > y detectar que la batería está muy baja?. > > gracias! > > >

En los dos casos, si pudiera prescindir de una pata mas del PIC, no podria usar un mosfet o algo parecido para cortar la entrada desde la bateria al PIC y evitar el consumo salvo cuando quiera medir ?

Mmmmm... Creo que eso es lo que decía yo en el último parrafo. :-?

--

Saludos de Jose Manuel Garcia snipped-for-privacy@terra.es http://213.97.130.124

"RooT" escribió en el mensaje news: snipped-for-privacy@individual.net...

su

Si

podría ser

usar

En vez de usar el AD que ya se ha comentado, puedes usar un comparador externo con un operacional, la salida del OP a cualquier puerto del PIC. De todas maneras, con el OP, realmente no hace falta para nada el PIC, es matar moscas a cañonazos, a menos que realices otras funciones adicionales.

Perdona me acababa de levantar y cuando no quieres ver algo... ya sabes XDD

De todas formas, paralelamente, supongo que en una medida de una bateria no seria muy grave, pero que errores puede introducir un transistor o mosfet en la medida? Y sobre la "precision", osease me refiero, habria que considerar algo a la hora de elegir el transistor? por las capacidades propias o cualquier otra cosa que se me puede escapar ...

Pepitof escribió:

Pepitof escribió:

El divisor debería ser de 5/16, ya que la batería puede subir hasta 15 Voltios durante un ciclo de igualación. En cuanto a la impedancia, se puede usar un operacional con ganancia unidad, por ejemplo el LM358 o uno con entrada de shutdown. El LM358 no llegaría a dar 0 Voltios de salida para 0 de entrada, pero se aproxima mucho. Tambien puede usar un R2R.

Saludos Miguel Giménez

En realidad no importa mucho si la tensión excede de 5V. Las entradas están protegidas contra sobre-tensiones con diodos. Con que la tensión que interesa quede en la zona "medible", sería suficiente. Aunque siempre es mejor que los diodos de protección no lleguen a conducir, a efectos de consumo, así que es mejor bajar la relación a 5/16 como dices, o incluso menos, por si acaso.

Realmente, usar un comparador o un operacional externo parece lo más simple. El que no llegue a 0V no importa en este caso, porque no va a medir tensiones tan bajas.

Saludos de Jose Manuel Garcia jose.mgg@terra.es http://213.97.130.124 "Miguel Gimenez" escribió en el mensaje news:eid4s2$4i5$1@web.aioe.org... > > El divisor debería ser de 5/16, ya que la batería puede subir hasta 15 > Voltios durante un ciclo de igualación. En cuanto a la impedancia, se > puede usar un operacional con ganancia unidad, por ejemplo el LM358 o > uno con entrada de shutdown. El LM358 no llegaría a dar 0 Voltios de > salida para 0 de entrada, pero se aproxima mucho. Tambien puede usar un R2R. >

Hombre, precisión, poca, y normalmente habrá dependencia de la temperatura, pero para este caso no creo que haga falta más.

Lo del transistor, para cosas así, sobre todo si hablamos de MOSFET, yo pienso que se elige casi exclusivamente según encapsulado y disponibilidad.

--

Saludos de Jose Manuel Garcia snipped-for-privacy@terra.es http://213.97.130.124

"RooT" escribió en el mensaje news: snipped-for-privacy@individual.net...

XDD

no

en la

algo a

otra

me interesa lo del comparador, jamás he usado esa función en un pic, así que por probar me gustaría intentarlo.... voy a ver que dice el datasheet.

btye!

¿tan elevado puede ser el consumo?.

Es que si me va a influir mucho casi que podría utilizar algún otro sistema fuera del pic, y colocar un nivel bajo cuando la batería esté a ese voltage o por debajo.

realiza otras funciones, pero entre sus funciones, me gustaría que vigile el nivel de batería. Está conectado a un modem gsm y envia un sms cuando batería está baja.

Esa es la idea. pero como ando muy perdido pues no se como hacerlo, con vuestras sugerencias creo que ya puedo ir haciendo cosas, claro está que tendré que volver a recurrir a vosotros..

hola!

nuevamente vuelvo a lo mismo, me ha dicho unprofesor via telefonica que utilize un simple transistor ajustado para que cuando haya menos de la tensión que indico cambie su estado y esto lo vea una patilla del pic.

el caso es que no lo he entendido muy bien, y me pregunto si podeis ilustrarme a ver si es una solución fácil y ampliarme un poco pues no lo he pillado o entendido bien.

Pepitof escribió:

Las zonas de interés para una batería de plomo-ácido son (aproximadamente) 13.8 para la flotación, 14.7 para el gaseo, 15 para la igualación y más de 15 para detección de problemas. Además, si la temperatura desciende, las tensiones suben. Por todo esto, el A/D debe seguir proporcionando información válida por encima de 15 Voltios. Hoy mismo me ha llamado un cliente que tenía las baterías a 16'2 Voltios (porque se le habían secado), el micro debe ser capaz de detectar estas anomalías.

Saludos Miguel Giménez

Carmelo J. Morales Muñoz escribió:

Tienes que aprovechar que el transistor empieza a conducir cuando la tensión base-emisor supera un umbral (~ 0.7V). Con un divisor resistivo o (mejor) un zéner puedes adaptar la tensión de consigna a ese umbral. Si lo quieres hacer bien busca "Schmitt trigger" en Google.

Saludos Miguel Giménez

Pues no sé, no veo yo que eso sea muy práctico.

Mira bien el post de Miguel Giménez, que no tiene desperdicio. Podrías medir la tensión y tener en cuenta todas esos posibles estados. Si es el propio PIC el que controla la carga de la batería, hacerlo así sería más que aconsejable.

Y la circuitería que necesitas para tomar la señal es mínima, un divisor de tensión con resistencias de valor alto, para que el consumo sea muy bajo, y un amplificador operacional de bajo consumo y gran impedancia de entrada, como el LM358, por ejemplo, utilizado como seguidor de tensión. El operacional lo alimentas directamente de la batería, y te dará a la salida la tensión de la batería dividida por 4 aproximadamente. Sería algo como esto (pon un tipo de letra de paso fijo para verlo bien, por ejemplo Courier):

BAT ----. | .-. | | 1M| | '-' | |\ LM358 o------|+\ | | >--o--- ADC DEL PIC .-. .--|-/ | | | | |/ | 330k| | | | '-' '--------' | | | GND

Eso sí, si pretendes medir tensión con el PIC, piensa que habrá que calibrarlo de alguna forma. La más elegante sería por software, pero si eso te complica la vida, puedes por ejemplo substituir la resistencia de 330k por una de 270k en serie con un ajustable de 100k.

Saludos de Jose Manuel Garcia jose.mgg@terra.es http://213.97.130.124 "Carmelo J. Morales Muñoz" escribió en el mensaje news:46r2h.12891$6l3.2874@fe06.highwinds-media.phx... > hola! > > nuevamente vuelvo a lo mismo, me ha dicho unprofesor via telefonica que > utilize un simple transistor ajustado para que cuando haya menos de la > tensión que indico cambie su estado y esto lo vea una patilla del pic. > > el caso es que no lo he entendido muy bien, y me pregunto si podeis > ilustrarme a ver si es una solución fácil y ampliarme un poco pues no lo he > pillado o entendido bien. > > >

Esto me parece muy interesante.... es lo que mas miedo me da, que la batería pueda incendiarse o explotar..

definitivamente estoy contigo, voy a seguir ese consejo, para vigilar sobrecargas de bateria y demás....

me pongo manos a la obra en cuanto compre un parde integrados de esos lm358.

"Pepitof" escribió en el mensaje news: snipped-for-privacy@individual.net...

Entonces, tienes dos opciones, usar el AD del PIC, o un comparador externo con un OP, que entregue un estado 1 ó 0 a un puerto del PIC, según la batería esté por encima o por debajo del voltaje de referencia del comparador.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required