← All parts

INA219 Current/Power Monitor

INA219

Texas Instrumentsinterface io display

The INA219 is a digital current and power monitor that uses an I2C/SMBUS interface to measure both shunt voltage drop and bus supply voltage. It offers programmable calibration for direct current and power readouts, with options for conversion times and filtering.

In stock

Specifications

11
Operating Voltage
3 V
Operating Voltage
5.5 V
Bus Voltage Range
0 V
Bus Voltage Range
26 V
Interface
I2C/SMBUS
Supply Current
1 mA
Temperature Range
-40 °C
Temperature Range
125 °C
Accuracy
0.5 %
Resolution
12 bit
Package
SOT23-8, SOIC-8

Pinout

8
PinNameFunctionsNotes
1IN+
ADC
Positive differential shunt voltage input. Connect to the positive side of the shunt resistor.
2IN-
ADC
Negative differential shunt voltage input. Bus voltage is measured from this pin to ground.
3GND
GND
Ground connection.
4VS
POWER
Power supply input, 3 to 5.5 V.
5SCL
I2C
Serial bus clock line.
6SDA
I2C
Serial bus data line.
7A0
GPIO
Address pin for I2C communication.
8A1
GPIO
Address pin for I2C communication.

Interactive pinout

Highlight:
INA219

Click a pin to copy its name · tap a tag above to spotlight a bus.

Logic level & voltage

Runs from 3-5.5 V (per the datasheet specs) on I2C/SMBus and can measure a bus voltage up to 26 V on the high side independent of its own supply.

Typical uses

  • Current / power / voltage monitoring of a load
  • Battery and solar power telemetry
  • Bench-supply and energy dashboards

Wiring notes & gotchas

  • Place the shunt in the high-side path; size it for your max current.
  • Up to four addresses via the A0/A1 pins for multiple monitors on one bus.
  • Provide I2C pull-ups; keep shunt sense traces short and matched.

Commonly used with

3

Starter code

Community starter examples — minimal, unofficial, and provided to get you wiring fast. Verify against the manufacturer datasheet before relying on them.

Arduino (C++)

Arduino library: Adafruit INA219

arduino
// INA219 current / power monitor (I2C) — community starter example
#include <Wire.h>
#include <Adafruit_INA219.h>

Adafruit_INA219 ina;

void setup() {
  Serial.begin(115200);
  if (!ina.begin()) { Serial.println("INA219 not found"); while (1) delay(10); }
}

void loop() {
  Serial.print("V="); Serial.print(ina.getBusVoltage_V()); Serial.print(" V  I=");
  Serial.print(ina.getCurrent_mA()); Serial.print(" mA  P=");
  Serial.print(ina.getPower_mW()); Serial.println(" mW");
  delay(1000);
}

MicroPython

MicroPython library: ina219 (chrisb2/pyb_ina219)

python
# INA219 (ESP32) — community starter example
# lib: chrisb2/pyb_ina219 (ina219.py + logging stub on the board)
from machine import Pin, I2C
from ina219 import INA219
import time

i2c = I2C(0, scl=Pin(22), sda=Pin(21))
ina = INA219(0.1, i2c)   # 0.1 ohm shunt
ina.configure()

while True:
    print(ina.voltage(), "V", ina.current(), "mA")
    time.sleep(1)

Wiring

PinArduino Uno R3ESP32 DevKitC (WROOM-32)Notes
VCC+5V3V3Logic 3-5 V
GNDGNDGND
SCLA5/SCLGPIO22I2C clock
SDAA4/SDAGPIO21I2C data
Vin+ / Vin---In series with the load being measured (up to 26 V bus)

Related parts

6