

The Voltage & Current Sensor INA219 Breakout by Soldered is a high-side current sensor designed to measure both voltage and current in a circuit with exceptional precision. It utilizes the I2C communication protocol, making it easy to integrate into microcontroller-based projects. This breakout board is ideal for applications such as battery management, power monitoring, and energy-efficient system design.








The following table outlines the key technical details of the INA219 breakout:
| Parameter | Value |
|---|---|
| Operating Voltage | 3.0V to 5.5V |
| Current Measurement Range | ±3.2A (default shunt resistor) |
| Voltage Measurement Range | 0V to 26V |
| Communication Protocol | I2C |
| Default I2C Address | 0x40 |
| Resolution | 12-bit ADC |
| Shunt Resistor Value | 0.1Ω (pre-installed) |
| Accuracy | ±1% (typical) |
| Operating Temperature Range | -40°C to +85°C |
The INA219 breakout board has the following pin layout:
| Pin Name | Description |
|---|---|
| VIN+ | Positive input for current measurement (connect to load) |
| VIN- | Negative input for current measurement (connect to power) |
| GND | Ground connection |
| VCC | Power supply input (3.0V to 5.5V) |
| SDA | I2C data line |
| SCL | I2C clock line |
VCC pin to a 3.3V or 5V power source and the GND pin to ground.VIN+ pin to the positive terminal of the power source.VIN- pin to the positive terminal of the load.SDA and SCL pins to the corresponding I2C pins on your microcontroller (e.g., Arduino UNO: A4 for SDA and A5 for SCL).Below is an example of how to use the INA219 breakout with an Arduino UNO to measure voltage and current:
#include <Wire.h>
#include <Adafruit_INA219.h>
// Create an instance of the INA219 class
Adafruit_INA219 ina219;
void setup() {
Serial.begin(9600); // Initialize serial communication at 9600 baud
while (!Serial) {
delay(10); // Wait for the serial monitor to open
}
// Initialize the INA219 sensor
if (!ina219.begin()) {
Serial.println("Failed to find INA219 chip");
while (1) {
delay(10); // Halt execution if the sensor is not detected
}
}
Serial.println("INA219 sensor initialized");
}
void loop() {
float shuntVoltage = ina219.getShuntVoltage_mV(); // Get shunt voltage in mV
float busVoltage = ina219.getBusVoltage_V(); // Get bus voltage in V
float current_mA = ina219.getCurrent_mA(); // Get current in mA
float power_mW = ina219.getPower_mW(); // Get power in mW
// Print the measurements to the serial monitor
Serial.print("Bus Voltage: ");
Serial.print(busVoltage);
Serial.println(" V");
Serial.print("Shunt Voltage: ");
Serial.print(shuntVoltage);
Serial.println(" mV");
Serial.print("Current: ");
Serial.print(current_mA);
Serial.println(" mA");
Serial.print("Power: ");
Serial.print(power_mW);
Serial.println(" mW");
Serial.println("-----------------------------");
delay(1000); // Wait 1 second before taking the next reading
}
0x40. If multiple INA219 sensors are used, modify the address by adjusting the onboard address pins.No Communication with the Sensor
SDA and SCL connections and ensure the correct I2C address is used in the code.Incorrect Current or Voltage Readings
Sensor Not Detected
VCC and GND connections and test with another INA219 breakout.Q: Can the INA219 measure negative currents?
A: Yes, the INA219 can measure bidirectional currents. Ensure the configuration matches your application.
Q: How do I change the I2C address?
A: Adjust the address pins (A0 and A1) on the breakout board to set a new I2C address. Refer to the INA219 datasheet for address configuration details.
Q: Can I use the INA219 with a 3.3V microcontroller?
A: Yes, the INA219 is compatible with both 3.3V and 5V logic levels.
By following this documentation, you can effectively integrate the INA219 breakout into your projects for precise voltage and current measurements.