,

INA226 Spannungssensor Bi-Directional I2C Monitoring Modul

NoName
Verfügbarkeit:

Vorrätig


CHF10.00 inkl. MWST

Vorrätig

Senses bus voltages from 0V ~ 36V
High-side or low-side sensing
Reports current, voltage, and power
High accuracy:
– 0.1% gain error(max)
– 10uV offset(max)
Configurable averaging options
12 programmable addresses
10-pin, DGS(VSSOP) package

Artikelnummer: INA226 Kategorien: ,
Marke

Farbe

Schnittstelle

Spannungseingang [V]

Pins

Pinform

,

Widerstand [Ohm]

Von http://shelvin.de

#include <Wire.h>

float rShunt=0.1; // Shunt Widerstand festlegen, hier 0.1 Ohm
const int INA226_ADDR = 0x40;

void setup() {
  Wire.begin();
  Serial.begin(115200);
  // Configuration Register Standard Einstellung 0x4127, hier aber 16 Werte Mitteln > 0x4427
  writeRegister(0x00, 0x4427); // 1.1ms Volt und Strom A/D-Wandlung, Shunt und VBus continous
}

void loop(){
  // Bus Spannung, read-only, 16Bit, 0...40.96V max., LSB 1.25mV
  Serial.print(" Volt: ");
  float volt = readRegister(0x02) * 0.00125; 
  Serial.print(volt,3);
  Serial.print(" V, Current: ");
  // Seite 24: Shunt Spannung +- 81,92mV mit 16 Bit, LSB 2,5uV
  int shuntvolt = readRegister(0x01);
  if (shuntvolt && 0x8000) {// eine negative Zahl? Dann 2er Komplement bilden
    shuntvolt = ~shuntvolt; // alle Bits invertieren
    shuntvolt += 1;         // 1 dazuzählen
    shuntvolt *= -1 ;       // negativ machen
  }
  float current = shuntvolt * 0.0000025 / rShunt; // * LSB / R
  Serial.print(current,3);
  Serial.print(" A, Power: ");
  float power=abs(volt*current);
  Serial.print(power,3);
  Serial.print(" W");
  Serial.println();
  delay(1000);
}

static void writeRegister(byte reg, word value) {
  Wire.beginTransmission(INA226_ADDR);
  Wire.write(reg);
  Wire.write((value >> 8) & 0xFF);
  Wire.write(value & 0xFF);
  Wire.endTransmission();
}

static word readRegister(byte reg) {
  word res = 0x0000;
  Wire.beginTransmission(INA226_ADDR);
  Wire.write(reg);
  if (Wire.endTransmission() == 0) {
    if (Wire.requestFrom(INA226_ADDR, 2) >= 2) {
      res  = Wire.read() * 256;
      res += Wire.read();
    }
  }
  return res;
}

INA Library: https://github.com/SV-Zanshin/INA

Arduino Uno: http://shelvin.de/ein-batteriemonitor-fuer-strom-und-spannung-mit-dem-ina226-und-dem-arduino-uno/

 

0.0 overall
0
0
0
0
0

Be the first to review “INA226 Spannungssensor Bi-Directional I2C Monitoring Modul”

Es gibt noch keine Bewertungen.