mirror of https://github.com/meshcore-dev/MeshCore
1 changed files with 0 additions and 48 deletions
@ -1,48 +0,0 @@ |
|||
#pragma once |
|||
|
|||
#include <Mesh.h> |
|||
#include <INA219.h> |
|||
|
|||
#define TELEM_INA219_ADDRESS 0x40 // INA219 single channel current sensor I2C address
|
|||
#define TELEM_INA219_SHUNT_VALUE 0.100 // shunt value in ohms (may differ between manufacturers)
|
|||
#define TELEM_INA219_MAX_CURRENT 5 |
|||
|
|||
static INA219 INA_219(TELEM_INA219_ADDRESS, &Wire); |
|||
|
|||
class INA219Sensor { |
|||
bool initialized = false; |
|||
public: |
|||
void begin() { |
|||
if (INA_219.begin()) { |
|||
MESH_DEBUG_PRINTLN("Found INA219 at address: %02X", INA_219.getAddress()); |
|||
INA_219.setMaxCurrentShunt(TELEM_INA219_MAX_CURRENT, TELEM_INA219_SHUNT_VALUE); |
|||
initialized = true; |
|||
} else { |
|||
initialized = false; |
|||
MESH_DEBUG_PRINTLN("INA219 was not found at I2C address %02X", TELEM_INA219_ADDRESS); |
|||
} |
|||
} |
|||
|
|||
bool isInitialized() const { return initialized; } |
|||
|
|||
float getVoltage() const { |
|||
if (initialized) { |
|||
return INA_219.getBusVoltage(); |
|||
} |
|||
return 0; |
|||
} |
|||
|
|||
float getCurrent() const { |
|||
if (initialized) { |
|||
return INA_219.getCurrent(); |
|||
} |
|||
return 0; |
|||
} |
|||
|
|||
float getPower() const { |
|||
if (initialized) { |
|||
return INA_219.getPower(); |
|||
} |
|||
return 0; |
|||
} |
|||
}; |
|||
Loading…
Reference in new issue