Cirkit Designer Logo
Cirkit Designer
Your all-in-one circuit design IDE
Home / 
Component Documentation

How to Use Adafruit INA237 85V 10A 16-bit DC Current Voltage Power Monitor: Examples, Pinouts, and Specs

Image of Adafruit INA237 85V 10A 16-bit DC Current Voltage Power Monitor
Cirkit Designer LogoDesign with Adafruit INA237 85V 10A 16-bit DC Current Voltage Power Monitor in Cirkit Designer

Introduction

The Adafruit INA237 is a high-precision power monitor designed to measure DC current, voltage, and power with exceptional accuracy. Featuring a 16-bit resolution, it can handle up to 85V and 10A, making it suitable for a wide range of applications. The INA237 communicates via the I2C protocol, allowing seamless integration with microcontrollers and development boards such as the Arduino UNO.

Explore Projects Built with Adafruit INA237 85V 10A 16-bit DC Current Voltage Power Monitor

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Arduino UNO Based Precision Battery Monitoring System with INA228 and LM4040
Image of GIP_prelimiary: A project utilizing Adafruit INA237 85V 10A 16-bit DC Current Voltage Power Monitor in a practical application
This circuit is designed to monitor and measure current, voltage, and power using an INA228 sensor interfaced with an Arduino UNO via I2C. The LM4040 provides a precise voltage reference for the Arduino's ADC, and a rotary potentiometer along with a series resistor and Li-ion battery setup enables variable voltage input for monitoring purposes.
Cirkit Designer LogoOpen Project in Cirkit Designer
Raspberry Pi 4B with ADS1115 ADC and OLED Display for Current and Voltage Monitoring
Image of Task2-Virtual_Energy_Monitoring_System: A project utilizing Adafruit INA237 85V 10A 16-bit DC Current Voltage Power Monitor in a practical application
This circuit features a Raspberry Pi 4B as the central processing unit, interfacing with an Adafruit ADS1115 16-bit ADC for analog-to-digital conversion of signals from a current sensor and a ZMPT101B voltage sensor. The Raspberry Pi also communicates with a 0.96" OLED display over I2C for data visualization. The circuit is designed to monitor and display electrical parameters such as current and voltage.
Cirkit Designer LogoOpen Project in Cirkit Designer
Arduino UNO Power Monitor with LCD Display and Wi-Fi Connectivity
Image of Spup monitoring system: A project utilizing Adafruit INA237 85V 10A 16-bit DC Current Voltage Power Monitor in a practical application
This circuit is a power monitoring system that uses an Arduino UNO to read voltage and current values from multiple ZMPT101B voltage sensors and an ACS712 current sensor via a 16-channel analog multiplexer. The measured power is displayed on an LCD and transmitted to an ESP8266 NodeMCU for further processing.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP32-Controlled Smart Lighting System with Power Monitoring
Image of Energy Monitoring System: A project utilizing Adafruit INA237 85V 10A 16-bit DC Current Voltage Power Monitor in a practical application
This circuit appears to be a multi-channel current monitoring system using several ACS712 current sensors to measure the current through different loads, likely bulbs connected to a 220V power source. The current readings from the sensors are digitized by an Adafruit ADS1115 16-bit ADC, which interfaces with an ESP32 microcontroller via I2C communication for further processing or telemetry. A buck converter is used to step down the voltage to power the ESP32 and the sensors, and the system is powered through a 2.1mm DC barrel jack, indicating it is designed for external power supply.
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with Adafruit INA237 85V 10A 16-bit DC Current Voltage Power Monitor

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Image of GIP_prelimiary: A project utilizing Adafruit INA237 85V 10A 16-bit DC Current Voltage Power Monitor in a practical application
Arduino UNO Based Precision Battery Monitoring System with INA228 and LM4040
This circuit is designed to monitor and measure current, voltage, and power using an INA228 sensor interfaced with an Arduino UNO via I2C. The LM4040 provides a precise voltage reference for the Arduino's ADC, and a rotary potentiometer along with a series resistor and Li-ion battery setup enables variable voltage input for monitoring purposes.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of Task2-Virtual_Energy_Monitoring_System: A project utilizing Adafruit INA237 85V 10A 16-bit DC Current Voltage Power Monitor in a practical application
Raspberry Pi 4B with ADS1115 ADC and OLED Display for Current and Voltage Monitoring
This circuit features a Raspberry Pi 4B as the central processing unit, interfacing with an Adafruit ADS1115 16-bit ADC for analog-to-digital conversion of signals from a current sensor and a ZMPT101B voltage sensor. The Raspberry Pi also communicates with a 0.96" OLED display over I2C for data visualization. The circuit is designed to monitor and display electrical parameters such as current and voltage.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of Spup monitoring system: A project utilizing Adafruit INA237 85V 10A 16-bit DC Current Voltage Power Monitor in a practical application
Arduino UNO Power Monitor with LCD Display and Wi-Fi Connectivity
This circuit is a power monitoring system that uses an Arduino UNO to read voltage and current values from multiple ZMPT101B voltage sensors and an ACS712 current sensor via a 16-channel analog multiplexer. The measured power is displayed on an LCD and transmitted to an ESP8266 NodeMCU for further processing.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of Energy Monitoring System: A project utilizing Adafruit INA237 85V 10A 16-bit DC Current Voltage Power Monitor in a practical application
ESP32-Controlled Smart Lighting System with Power Monitoring
This circuit appears to be a multi-channel current monitoring system using several ACS712 current sensors to measure the current through different loads, likely bulbs connected to a 220V power source. The current readings from the sensors are digitized by an Adafruit ADS1115 16-bit ADC, which interfaces with an ESP32 microcontroller via I2C communication for further processing or telemetry. A buck converter is used to step down the voltage to power the ESP32 and the sensors, and the system is powered through a 2.1mm DC barrel jack, indicating it is designed for external power supply.
Cirkit Designer LogoOpen Project in Cirkit Designer

Common Applications and Use Cases

  • Battery management systems
  • Solar power monitoring
  • DC motor current sensing
  • Power consumption analysis in embedded systems
  • Industrial equipment monitoring

Technical Specifications

The Adafruit INA237 is a robust and versatile component. Below are its key technical details:

Parameter Value
Operating Voltage 3.3V to 5V (logic level)
Measurable Voltage Range 0V to 85V
Measurable Current Range Up to 10A (with appropriate shunt resistor)
Resolution 16-bit
Communication Protocol I2C
Default I2C Address 0x40 (configurable)
Operating Temperature -40°C to +125°C

Pin Configuration and Descriptions

The Adafruit INA237 breakout board has the following pin layout:

Pin Name Description
VIN+ Positive input for current sensing (connect to the high side of the load).
VIN- Negative input for current sensing (connect to the low side of the load).
VBUS Voltage sense input (connect to the voltage source being monitored).
GND Ground reference for the circuit.
SCL I2C clock line (connect to the microcontroller's SCL pin).
SDA I2C data line (connect to the microcontroller's SDA pin).
ALERT Configurable alert pin for overcurrent, overvoltage, or other conditions.
3V3 3.3V power supply input (optional, for logic level shifting).
VIN Main power supply input (3.3V to 5V).

Usage Instructions

How to Use the Component in a Circuit

  1. Power the INA237: Connect the VIN pin to a 3.3V or 5V power source and GND to the ground.
  2. Connect the Load:
    • Attach the VIN+ pin to the positive side of the load.
    • Attach the VIN- pin to the negative side of the load.
  3. Voltage Sensing: Connect the VBUS pin to the voltage source you want to monitor.
  4. I2C Communication:
    • Connect the SCL and SDA pins to the corresponding I2C pins on your microcontroller.
    • Use pull-up resistors (typically 4.7kΩ) on the SCL and SDA lines if not already present.
  5. Optional Alert Pin: Use the ALERT pin to trigger an interrupt or signal when a specific condition is met (e.g., overcurrent).

Important Considerations and Best Practices

  • Shunt Resistor Selection: The INA237 requires an external shunt resistor to measure current. Choose a resistor with a low resistance value and high power rating to minimize power loss and ensure accurate measurements.
  • I2C Address Configuration: The default I2C address is 0x40. If multiple INA237 devices are used on the same I2C bus, configure their addresses using the onboard solder jumpers.
  • Voltage and Current Limits: Ensure the monitored voltage and current do not exceed the component's maximum ratings (85V and 10A, respectively).
  • Bypass Capacitor: Place a bypass capacitor (e.g., 0.1µF) near the power pins to reduce noise.

Example Code for Arduino UNO

Below is an example of how to use the Adafruit INA237 with an Arduino UNO to measure voltage, current, and power:

#include <Wire.h>
#include <Adafruit_INA237.h>

// Create an INA237 object
Adafruit_INA237 ina237;

void setup() {
  Serial.begin(115200);
  while (!Serial) {
    delay(10); // Wait for Serial Monitor to open
  }

  // Initialize I2C communication
  if (!ina237.begin()) {
    Serial.println("Failed to find INA237 chip!");
    while (1) {
      delay(10); // Halt if initialization fails
    }
  }
  Serial.println("INA237 initialized successfully!");

  // Configure the INA237
  ina237.setShuntResistorValue(0.01); // Set shunt resistor value in ohms
  ina237.setAveragingMode(INA237_AVERAGE_16); // Set averaging mode
  ina237.setBusVoltageRange(INA237_BUS_VOLTAGE_RANGE_85V); // Set voltage range
}

void loop() {
  // Read voltage, current, and power
  float busVoltage = ina237.readBusVoltage(); // Voltage in volts
  float current = ina237.readCurrent();       // Current in amps
  float power = ina237.readPower();           // Power in watts

  // Print the measurements to the Serial Monitor
  Serial.print("Bus Voltage: ");
  Serial.print(busVoltage);
  Serial.println(" V");

  Serial.print("Current: ");
  Serial.print(current);
  Serial.println(" A");

  Serial.print("Power: ");
  Serial.print(power);
  Serial.println(" W");

  delay(1000); // Wait 1 second before the next reading
}

Troubleshooting and FAQs

Common Issues and Solutions

  1. INA237 Not Detected on I2C Bus:

    • Ensure the SCL and SDA lines are correctly connected to the microcontroller.
    • Verify that pull-up resistors are present on the I2C lines.
    • Check the I2C address and ensure it matches the one configured on the INA237.
  2. Incorrect Voltage or Current Readings:

    • Double-check the shunt resistor value and ensure it is correctly set in the code.
    • Verify that the connections to VIN+ and VIN- are secure and correct.
    • Ensure the monitored voltage and current are within the component's specified range.
  3. Alert Pin Not Functioning:

    • Confirm that the ALERT pin is properly configured in the code.
    • Check for any conditions that might prevent the alert from triggering (e.g., incorrect thresholds).

FAQs

Q: Can the INA237 measure negative currents?
A: No, the INA237 is designed for unidirectional current measurement. Ensure the current flows in the correct direction through the shunt resistor.

Q: What is the maximum sampling rate of the INA237?
A: The INA237 can achieve a maximum sampling rate of approximately 1.1kHz, depending on the averaging mode and configuration.

Q: Can I use the INA237 with a 3.3V microcontroller?
A: Yes, the INA237 is compatible with both 3.3V and 5V logic levels. Ensure the VIN pin is powered accordingly.

Q: How do I change the I2C address of the INA237?
A: The I2C address can be changed by modifying the solder jumpers on the breakout board. Refer to the Adafruit documentation for detailed instructions.