0.4.0 INA219

This commit is contained in:
Rob Tillaart 2024-08-14 17:53:27 +02:00
parent a10164e153
commit 018ec25de3
7 changed files with 40 additions and 10 deletions

View File

@ -6,6 +6,14 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/)
and this project adheres to [Semantic Versioning](http://semver.org/). and this project adheres to [Semantic Versioning](http://semver.org/).
## [0.4.0] - 2024-08-14
- fix **float getShuntVoltage()** for negative values, kudos to aguilerabr
- add **int getMaxShuntVoltage()**, depends on GAIN (Table 7).
- removed default for **setGain()** as it was not sensors default.
- update readme.md
----
## [0.3.1] - 2024-04-22 ## [0.3.1] - 2024-04-22
- Bump version after Fix #17, Kudos to ChrisRed255 - Bump version after Fix #17, Kudos to ChrisRed255

View File

@ -1,6 +1,6 @@
// FILE: INA219.h // FILE: INA219.h
// AUTHOR: Rob Tillaart // AUTHOR: Rob Tillaart
// VERSION: 0.3.1 // VERSION: 0.4.0
// DATE: 2021-05-18 // DATE: 2021-05-18
// PURPOSE: Arduino library for INA219 voltage, current and power sensor // PURPOSE: Arduino library for INA219 voltage, current and power sensor
// URL: https://github.com/RobTillaart/INA219 // URL: https://github.com/RobTillaart/INA219
@ -74,7 +74,7 @@ uint8_t INA219::getAddress()
// //
float INA219::getShuntVoltage() float INA219::getShuntVoltage()
{ {
uint16_t value = _readRegister(INA219_SHUNT_VOLTAGE); int16_t value = _readRegister(INA219_SHUNT_VOLTAGE);
return value * 1e-5; // fixed 10 uV return value * 1e-5; // fixed 10 uV
} }
@ -167,6 +167,7 @@ bool INA219::setGain(uint8_t factor)
} }
uint16_t config = _readRegister(INA219_CONFIGURATION); uint16_t config = _readRegister(INA219_CONFIGURATION);
config &= ~INA219_CONF_PROG_GAIN; config &= ~INA219_CONF_PROG_GAIN;
// factor == 1 ==> mask = 00
if (factor == 2) config |= (1 << 11); if (factor == 2) config |= (1 << 11);
else if (factor == 4) config |= (2 << 11); else if (factor == 4) config |= (2 << 11);
else if (factor == 8) config |= (3 << 11); else if (factor == 8) config |= (3 << 11);
@ -187,6 +188,13 @@ uint8_t INA219::getGain()
} }
int INA219::getMaxShuntVoltage()
{
int gain = getGain(); // 1, 2, 4, 8
return gain * 40; // 40, 80, 160, 320
}
//////////////////////////////////////////////////////// ////////////////////////////////////////////////////////
// //
// BUS // BUS

View File

@ -1,7 +1,7 @@
#pragma once #pragma once
// FILE: INA219.h // FILE: INA219.h
// AUTHOR: Rob Tillaart // AUTHOR: Rob Tillaart
// VERSION: 0.3.1 // VERSION: 0.4.0
// DATE: 2021-05-18 // DATE: 2021-05-18
// PURPOSE: Arduino library for INA219 voltage, current and power sensor // PURPOSE: Arduino library for INA219 voltage, current and power sensor
// URL: https://github.com/RobTillaart/INA219 // URL: https://github.com/RobTillaart/INA219
@ -13,7 +13,7 @@
#include "Wire.h" #include "Wire.h"
#define INA219_LIB_VERSION (F("0.3.1")) #define INA219_LIB_VERSION (F("0.4.0"))
class INA219 class INA219
@ -54,9 +54,14 @@ public:
// voltage = 16, 32 (values below 32 are rounded to 16 or 32) // voltage = 16, 32 (values below 32 are rounded to 16 or 32)
bool setBusVoltageRange(uint8_t voltage = 16); bool setBusVoltageRange(uint8_t voltage = 16);
uint8_t getBusVoltageRange(); // returns 16 or 32. uint8_t getBusVoltageRange(); // returns 16 or 32.
// factor = 1, 2, 4, 8 // factor = 1, 2, 4, 8 (8 = sensor default)
bool setGain(uint8_t factor = 1); bool setGain(uint8_t factor); // removed default parameter.
uint8_t getGain(); uint8_t getGain();
// MaxShuntVoltagedepends on GAIN,
// See Table 7. Shunt Voltage Register Format
// default = 320.
int getMaxShuntVoltage();
// configuration BUS // configuration BUS
// use one of the next three // use one of the next three

View File

@ -33,6 +33,12 @@ A few important maxima, see datasheet, chapter 7, esp 7.5
#### 0.4.0 Breaking change
Version 0.4.0 fixed negative values for **getShuntVoltage()**.
Older versions are obsolete now.
#### 0.2.0 Breaking change #### 0.2.0 Breaking change
Version 0.2.0 introduced a breaking change. Version 0.2.0 introduced a breaking change.
@ -146,14 +152,16 @@ See section below.
Returns false if it could not write settings to device. Returns false if it could not write settings to device.
- **bool setBusVoltageRange(uint8_t voltage = 16)** set to 16 or 32. - **bool setBusVoltageRange(uint8_t voltage = 16)** set to 16 or 32.
Values <= 16 map to 16 and values between 16 and 32 map to 32. Values <= 16 map to 16 and values between 16 and 32 map to 32.
Returns false if voltage is above 32.. Returns false if voltage is above 32.
Returns false if it could not write settings to device. Returns false if it could not write settings to device.
- **uint8_t getBusVoltageRange()** returns 16 or 32. (Volts) - **uint8_t getBusVoltageRange()** returns 16 or 32. (Volts)
- **bool setGain(uint8_t factor = 1)** factor = 1, 2, 4, 8. - **bool setGain(uint8_t factor)** factor = 1, 2, 4, 8 (default).
Determines the shunt voltage range. 40, 80, 160 or 320 mV. Determines the shunt voltage range. 40, 80, 160 or 320 mV.
Returns false if factor is not a valid value. Returns false if factor is not a valid value.
Returns false if it could not write settings to device. Returns false if it could not write settings to device.
- **uint8_t getGain()** returns set factor. - **uint8_t getGain()** returns set factor.
- **int getMaxShuntVoltage()** returns 40, 80, 160 or 320 (mV).
320 is the sensors default.
#### Configuration BUS and SHUNT #### Configuration BUS and SHUNT

View File

@ -32,6 +32,7 @@ setBusVoltageRange KEYWORD2
getBusVoltageRange KEYWORD2 getBusVoltageRange KEYWORD2
setGain KEYWORD2 setGain KEYWORD2
getGain KEYWORD2 getGain KEYWORD2
getMaxShuntVoltage KEYWORD2
setBusResolution KEYWORD2 setBusResolution KEYWORD2
setBusSamples KEYWORD2 setBusSamples KEYWORD2

View File

@ -15,7 +15,7 @@
"type": "git", "type": "git",
"url": "https://github.com/RobTillaart/INA219.git" "url": "https://github.com/RobTillaart/INA219.git"
}, },
"version": "0.3.1", "version": "0.4.0",
"license": "MIT", "license": "MIT",
"frameworks": "*", "frameworks": "*",
"platforms": "*", "platforms": "*",

View File

@ -1,5 +1,5 @@
name=INA219 name=INA219
version=0.3.1 version=0.4.0
author=Rob Tillaart <rob.tillaart@gmail.com> author=Rob Tillaart <rob.tillaart@gmail.com>
maintainer=Rob Tillaart <rob.tillaart@gmail.com> maintainer=Rob Tillaart <rob.tillaart@gmail.com>
sentence=Arduino library for INA219 voltage, current and power sensor. sentence=Arduino library for INA219 voltage, current and power sensor.