Project tutorial
Isolated INA219 Module

Isolated INA219 Module © GPL3+

It is a standard INA219 module but this has an isolated measured voltage from the MCU.

  • 922 views
  • 0 comments
  • 7 respects

Components and supplies

Necessary tools and machines

09507 01
Soldering iron (generic)

Apps and online services

About this project

It is a standard INA219 module but this has an isolated measured voltage from the MCU. This means you can measure the voltage that does not have the same GND on both sides.

Board measure voltage 0-26V and current 0-3A.

On board are four mounting holes of diameter 4mm.

On board is 3A fuse for module protection.

MCU is connected to the right pin header.

The top pin header is just for other modules that we want to isolate from the MCU,

The maximum current consumption of devices connected to the top pin header is 50mA.

I2C address:

  • 0x40 - no jumpers required
  • 0x41 - bridge JP1
  • 0x44 - bridge JP2
  • 0x45 - bridge JP1 and JP2

Thank you for reading, please like and write comments.

This project is sponsored by LCSC component.

Code

CodeArduino
Original Adafruit INA219 Test Code
#include <Wire.h>
#include <Adafruit_INA219.h>

Adafruit_INA219 ina219;


void setup(void) 
{
  Serial.begin(115200);
  while (!Serial) {
      // will pause Zero, Leonardo, etc until serial console opens
      delay(1);
  }

  uint32_t currentFrequency;
    
  Serial.println("Hello!");
  
  // Initialize the INA219.
  // By default the initialization will use the largest range (32V, 2A).  However
  // you can call a setCalibration function to change this range (see comments).
  ina219.begin();
  // To use a slightly lower 32V, 1A range (higher precision on amps):
  //ina219.setCalibration_32V_1A();
  // Or to use a lower 16V, 400mA range (higher precision on volts and amps):
  //ina219.setCalibration_16V_400mA();

  Serial.println("Measuring voltage and current with INA219 ...");
}

void loop(void) 
{
  float shuntvoltage = 0;
  float busvoltage = 0;
  float current_mA = 0;
  float loadvoltage = 0;
  float power_mW = 0;

  shuntvoltage = ina219.getShuntVoltage_mV();
  busvoltage = ina219.getBusVoltage_V();
  current_mA = ina219.getCurrent_mA();
  power_mW = ina219.getPower_mW();
  loadvoltage = busvoltage + (shuntvoltage / 1000);
  
  Serial.print("Bus Voltage:   "); Serial.print(busvoltage); Serial.println(" V");
  Serial.print("Shunt Voltage: "); Serial.print(shuntvoltage); Serial.println(" mV");
  Serial.print("Load Voltage:  "); Serial.print(loadvoltage); Serial.println(" V");
  Serial.print("Current:       "); Serial.print(current_mA); Serial.println(" mA");
  Serial.print("Power:         "); Serial.print(power_mW); Serial.println(" mW");
  Serial.println("");

  delay(2000);
}

Custom parts and enclosures

PCB Gerber Files
gerber_isolated-ina219_JHdfeXz0P5.zip

Schematics

Schematics

Comments

Similar projects you might like

An Isolated Analog Input for Arduino

Project tutorial by Giovanni Carrera

  • 7,006 views
  • 10 comments
  • 8 respects

Control Arduino Uno Using ESP8266 WiFi Module and Blynk App

Project tutorial by Adithya TG

  • 36,161 views
  • 13 comments
  • 40 respects

Using the RAK811 LoRa module with Arduino

Project tutorial by Naresh krish

  • 12,838 views
  • 4 comments
  • 13 respects

Arduino + GPS Module - Destination Notifier

Project tutorial by Amal Mathew

  • 4,015 views
  • 4 comments
  • 22 respects

SIM800L GPRS Module with Arduino AT Commands

Project tutorial by EasyMades

  • 4,041 views
  • 1 comment
  • 2 respects
Add projectSign up / Login