Tu solución funcionará en principio.
Lo siguiente funcionará para cualquier UC genérica (microcontrolador).
Puede automatizarlo proporcionando un interruptor lateral alto (MOSFET o bipolar) que se encendió con un botón de acción momentánea, que se mantiene pulsado mediante la uC, y que se desactiva con la uC cuando se desee. Entonces, no hay posibilidad de caza o histéresis, ya que el voltaje de la batería aumenta cuando se desaloja, ya que cuando está apagado permanece apagado hasta que el usuario la enciende.
Tamaño R2 para adaptarse a la corriente de salida.
Los MOSFETS se pueden usar para Q1 o Q2 con cambios menores.
Cambiar de marcha tiene que mantenerse bajo hasta que el uC tome el control de retención.
Agregar un capacitor a través de SW1 permitirá que el circuito permanezca encendido por un período pequeño hasta que Arduino tome el control.
simular este circuito : esquema creado usando CircuitLab
Para 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 divisoras deben ser tan altas como lo permita la especificación ADC para minimizar la corriente desperdiciada (solo alrededor de 0.5 mA aquí, pero todo ayuda).
0.9V 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. Yo usaría más cerca de 1.0V / celular. Los voltajes de corte más altos darán una vida útil del ciclo celular sustancialmente mejor con solo una pequeña disminución en la capacidad disponible de la batería.