Medición del voltaje de la fuente de energía de un Arduino usando Analog In

9

Estoy alimentando un Arduino con una batería de 5v (3.7v a un módulo elevador), y necesito medir el voltaje. Digamos que la batería entrega alta corriente , ¿es seguro medir el voltaje a través de Analog In? Como en esto:

ingrese la descripción de la imagen aquí

La razón por la que pregunto es que no sé mucho sobre la arquitectura y las limitaciones de ADC de Arduino. Entonces, normalmente, lo haría por seguridad:

ingrese la descripción de la imagen aquí

¿Las conexiones en el primer diagrama son seguras para el ADC? ¡Gracias por adelantado!

Nota: Aquí se hizo una pregunta similar: ( Monitorear el uso de energía de CC ), pero no responde la pregunta de las altas cargas de corriente en la batería.

Ahmed Farid
fuente
1
¿De dónde sacaste una batería de 5V?
En realidad, es una batería de 3.7v que entra en un circuito regulador de voltaje. De hecho, estoy interesado en medir la batería de 3.7v en sí misma, pero por ejemplo, simplemente asumí que su 5v muestra que el Arduino está funcionando.
Ahmed Farid el
Ah, pero podría cambiar las cosas. Sin embargo, probablemente no: al arduino no le importará la cantidad de corriente que consume la batería, siempre que no pase toda esa corriente a través del pin IO. Pero no estoy seguro, no sé Arduino.
Es verdad. Me preocupa la entrada actual al pin de entrada analógica si lo conecto directamente a una batería.
Ahmed Farid

Respuestas:

6

Consulte la hoja de datos para conocer la corriente de entrada en un pin de E / S. Depende del tipo exacto de controlador en su Arduino. Probablemente se llama pin de E / S de corriente de fuga de entrada y estará cerca de 1 μA .

Aquí hay una hoja de datos típica de ATmega utilizada en Uno / Duemilanove / ... , puede encontrar el parámetro en la página 304. Consulte la hoja de datos de su controlador específico para obtener detalles precisos.

Si utiliza una batería de 3.7V y un convertidor elevador para suministrar 5V al controlador, puede conectar la batería directamente a la entrada analógica de su controlador. Sin embargo, cuando el voltaje de salida del convertidor elevador cae por debajo del voltaje de la batería (por cualquier razón), todo su Arduino se alimentará a través del pin de entrada analógica y eso es lo que no desea. Todos los pines de entrada tienen protección contra sobretensión que permite este comportamiento, pero los diodos no están clasificados para corrientes continuas. En conclusión: es mejor incluir una resistencia en serie entre la batería y el pin de entrada.

Pero ahora su medición se basa en la precisión de la fuente de alimentación de 5V. Dependiendo del controlador exacto que tenga, hay varios voltajes de referencia internos disponibles que son mucho más precisos que el voltaje de la fuente de alimentación. Si agrega una resistencia adicional a tierra (R2) puede usar dicha referencia para medir con precisión el voltaje de entrada. Esto se llama un divisor de voltaje (resistivo). Con la relación dada, el voltaga en el pin de entrada será 1V cuando el voltaje de la batería es 3.7V:

Vmeasurement=R2×VBATTR1+R2

esquemático

simular este circuito : esquema creado con CircuitLab

jippie
fuente
1
Entonces, en esencia, es posible conectarlo directamente a una batería, pero NO se recomienda si el 5v varía. ¿Incluso si el 5v es regulado y constante?
Ahmed Farid
2
Debería ser seguro si 5V es constante, pero las cosas van mal todo el tiempo, así que es mejor prevenir que curar. Una o dos resistencias son mucho más baratas que un nuevo microcontrolador. La ingeniería no se trata solo de hacer que las cosas funcionen, también se trata de hacer que las cosas sigan funcionando según sea necesario.
jippie
Otra pregunta si puedo: ¿No es una resistencia única (1K) en paralelo a la batería lo suficientemente buena como para evitar una entrada de corriente alta? (Ver mi segunda figura)
Ahmed Farid
No, no hace nada más que extraer la batería.
jippie
4

Otra opción es usar la referencia de voltaje interno de banda de 1.1V del Arduino para determinar el valor de VCC sin el uso de ninguna parte externa adicional como se detalla en estos dos enlaces:

http://jeelabs.org/2012/05/04/measuring-vcc-via-the-bandgap/

y

http://arduino.cc/forum/index.php?topic=88935.0

El único problema es que debe determinar un valor de calibración contra el intervalo de banda interno de 1.1V, ya que puede estar apagado hasta en un 10%.

Pero eso no requeriría partes adicionales, y le permitiría a su atmega determinar el voltaje de su fuente de energía.

Wing Tang Wong
fuente
3
Aquí hay otro artículo que discute cómo hacer esto. El código que usa es ligeramente diferente: provideyourown.com/2012/…
ThomasW
@ThomasW agradable! Otro gran artículo sobre el uso del bandgap 1.1v.
Wing Tang Wong