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.

  • 591 views
  • 0 comments
  • 6 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

  • 5,261 views
  • 10 comments
  • 4 respects

Arduino + GPS Module - Destination Notifier

Project tutorial by Amal Mathew

  • 2,167 views
  • 2 comments
  • 19 respects

Control Arduino Uno Using ESP8266 WiFi Module and Blynk App

Project tutorial by Adithya TG

  • 9,076 views
  • 10 comments
  • 30 respects

Vibration Sensor Module

Project tutorial by Alberto Zanon

  • 30,093 views
  • 2 comments
  • 10 respects
Add projectSign up / Login