Medir el consumo de energía de un circuito con Arduino

1

Necesito medir el consumo de energía de un circuito que he construido. Los componentes son los siguientes:

  • Lipo batería 500mAh
  • acelerómetro
  • RTC
  • RedBear Nano 2

Por lo general, mido el consumo utilizando un Arduino y su pin analógico. El nivel de precisión es suficiente. En este caso, mi idea es conectar a cada componente una resistencia relativamente pequeña y ver cuál es el voltaje de estas resistencias. Al comparar estos valores con el voltaje de la batería, debería tener una idea de cuánto consumo de energía tengo. ¿Es correcto, me estoy perdiendo algo?

Laimagenmuestralaconfiguraciónquequierohacer,laanotaciónverderepresentalasmedidasquetomaréconunArduino.

ElcódigoArduinoqueestoyusandoparaunsolopinanalógicoeselsiguiente:

intRe=1000;voidsetup(){Serial.begin(9600);}voidloop(){intsensorValue=analogRead(A0);floatvoltage=sensorValue*(5.0/1023.0);floatcurrent=voltage/Re;Serial.print(millis());Serial.print(",");
Serial.print(voltage, 10);
Serial.print(",");
Serial.println(current, 10);
delay(500);
}

EDITAR: Lo que estoy tratando de medir es básicamente cuánto tiempo puede estar encendido mi circuito. Por lo tanto, digamos que 2 o 3 días de variación en el resultado pueden ser manejables.

    
pregunta Guido Muscioni

3 respuestas

1

Obtendrá resultados muy pobres con esta metodología.

  1. Ya que está detectando corriente en el lado bajo, la señal que cree se restará del sensor / MCU Vdd.
  2. La señal que desarrolla a través de la resistencia sensorial está en serie con cualquier señal entre los sensores y la MCU ... por ejemplo, la interfaz I2C.
  3. El Vdd para los sensores y MCU variará debido a la señal desarrollada a través de su resistencia sensorial, por lo que la medición del voltaje de la batería es inexacta.

Le sugeriría que, si usa una MCU separada para las mediciones de potencia, use INA219 o su variante de tres canales, el INA3221 para medir las corrientes utilizando un alto sentido lateral resistor.

Hay tarjetas de ruptura fácilmente disponibles en Ebay / Adafruit, y puedes modificar fácilmente la (s) resistencia (s) sensorial (es) para medir corrientes mucho más bajas.

Sitodoloquedeseaesunaestimacióndeladuracióndelabatería,nonecesitamedircadaparteindividualdesuproyecto.
Puedeusarunasolaresistenciadealtosentidolateralyunamplificadoroperacionalo,mejoraún,un INA169 para alimentarte ADC.
Incluso podría usar un multímetro sensible y una tapa de filtro grande en el Vdd para medir la corriente (y usar una fuente de alimentación en lugar de la batería para que pueda aumentar el voltaje). Esto le permitiría hacer una estimación.

Si todo lo que tiene es un Arduino Nano y algunos resistores (de su comentario), entonces la única forma de obtener un resultado que valga la pena es programar el ADC para que use la referencia interna de 1.1V. Esto al menos le dará un mejor rango en el ADC.
Consulte el Nano schematic y el ATMega328p datasheet , sección 28.

    
respondido por el Jack Creasey
0

Debería funcionar, siempre que esté agregando otro Arduino para realizar la medición y no intente usar el bloque marcado como "Nano" en su diagrama. Las entradas de ADC, incluso en modo diferencial, deben estar entre GND y Vcc, por lo que son negativas con respecto a la tierra Nano.

Por supuesto, si el dibujo actual no es estable, es posible que obtenga lecturas inexactas según la forma en que muestre los datos, ya que no tiene un filtro de suavizado que preceda al ADC.

    
respondido por el Spehro Pefhany
0

El sensor de corriente típico es solo una caída de 50 mV en el pico de corriente, por lo que se necesita amplificación para mejorar la precisión de la medición para usar el rango dinámico del ADC. Luego, un mux puede compartir este amplificador y pin de entrada, pero requiere una dirección de 2 bits en serie o en paralelo. Sin embargo, hasta que defina sus especificaciones de SNR y precisión, esta es solo otra solución hipotética. Tenga en cuenta el ruido del pulso y la frecuencia de muestreo con las demandas de Nyquist y filtre a < = 1/3 de la frecuencia de muestreo. Esto resulta en un filtro de ganancia común mux. para detección de corriente multipuerto.

    
respondido por el Tony EE rocketscientist

Lea otras preguntas en las etiquetas