Protección contra sobrecarga de batería Arduino (O-DP)

Voy a obtener un Arduino Uno pronto, y planeo usar un paquete de baterías NiMH de 8 celdas (a través del conector de alimentación). Suponiendo un corte de 0,9 V por celda, eso significará un voltaje de corte de 7,2. ¿Cómo lo cablearía para detectar el voltaje <7.2V y apagarlo?

¿Funcionaría este esquema?

#pseudo-code
if A0 < 3.65v then BUZZ
#buzz makes a square wave w/ PWM to PWM0

Apagado manual, alerta a los usuarios.

Creo que necesitará un circuito adicional (además del Arduino Uno) para poder apagarlo. Por sí mismo, el Uno no puede controlar su fuente de alimentación.
"(a través del conector de alimentación)" Esto no es lo que quieres.
Puede detectar el voltaje de entrada con el ATmega ADC (usando un divisor de voltaje de resistencia para llevar el voltaje al rango de 0-5 V del ADC de ATmega) y brindarle al usuario comentarios para apagarlo (haga sonar un zumbador, muestre alguna alarma en una pantalla LCD) . Pero eso no es tan genial...
@Ricardo Tenía la intención de que se apagara automáticamente
Lo sé. Solo sé que el Uno solo no lo hará (a sí mismo). Alguien más informado responderá a su pregunta. Yo también estoy interesado en la respuesta.
Encender el zumbador solo agrega MÁS carga a la batería, que no es lo que desea hacer cuando ya tiene un voltaje mínimo. Si la intervención humana no aparece, hace que la destrucción de la batería por sobredescarga ocurra antes. Como sugiere Russell, dicha advertencia debe configurarse para un voltaje más alto. Luego, en "vacío", desea que la carga se elimine por completo de la batería y no se vuelva a habilitar hasta que la batería se haya cargado al menos un poco.

Respuestas (1)

Su solución funcionará en principio.

Lo siguiente funcionará para cualquier uC genérico (microcontrolador).
Puede automatizarlo proporcionando un interruptor lateral alto (MOSFET o bipolar) que se encendió con un botón pulsador de acción momentánea, sostenido por el uC y apagado por el uC cuando se desea. Entonces no hay posibilidad de fluctuación o histéresis ya que el voltaje de la batería aumenta cuando se descarga, ya que cuando está apagada permanece apagada hasta que el usuario la enciende.

Tamaño R2 para adaptarse a la corriente de salida.
Los MOSFET se pueden usar para Q1 o Q2 con cambios menores.
Cambiar Ir! tiene que mantenerse bajo hasta que el uC tome el control de espera.
Agregar un capacitor a través de SW1 permitirá que el circuito permanezca encendido por un período breve hasta que Arduino se haga cargo.

esquemático

simular este circuito : esquema creado con CircuitLab

Para obtener puntos adicionales, tenga un zumbador de advertencia a un voltaje ligeramente más alto para que tenga la oportunidad de tomar medidas antes del apagado automático (punta de sombrero a 46464).


Las resistencias del divisor deben ser tan altas como la especificación ADC permita minimizar la corriente desperdiciada (solo alrededor de 0.5 mA aquí, pero todo ayuda).

0,9 V está muy por debajo de la curva de descarga de NimH, especialmente si la corriente es <= C/5, como suele ser el caso en este tipo de aplicación. Usaría más cerca de 1.0V / celda. Los voltajes de corte más altos darán una vida de ciclo de celda sustancialmente mejor con solo una pequeña disminución en la capacidad disponible de la batería.

¿Cómo evitar un apagón si V_battery es inferior al Vout mínimo requerido y presiono Go! botón presionado?
@Martin Hago algo similar a lo anterior en un producto comercial, pero uso un regulador de derivación TLV431 como detector de encendido. Si Vbat es demasiado bajo, presione GO! no logra activar el TLV431. El mismo IC también se usa para enganchar el circuito y hacer que se apague automáticamente cuando la batería está demasiado baja. [TLV431 cuesta aproximadamente 2 centavos en China, lo que ayuda a la decisión de diseño :-). ][TLV431 es una versión de 1,25 V del habitual TL431 de 2,5 V; tienen una corriente de regulación mínima mucho más baja]