Funktionen der Library MyINA219
MyINA219 MyINA219(byte i2cAdd)
Funktion: Erzeugt eine neue Instanz
Parameter: i2cAdd: I2C-Adresse des INA219
Beispiel:
MyINA219 INA(0x40);
bool isReady(void)
Funktion: Überprüft, ob der INA219 über die I2C-Schnittstelle ansprechbar ist
Parameter: keine
Rückgabe: TRUE, wenn Sensor ansprechbar ist, sonst FALSE
Bemerkung: Die Funktion prüft nur, ob in einem I2C-Bus der Bauteil ansprechbar bzw. vorhanden ist. Es wird vorausgesetzt, dass der I2C-Bus technisch prinzipiell funktioniert (keine offenen Busleitungen, Pullup-Widerstände richtig, kein Kurzschluss oder Masseschluss, etc.).
void init(void)
Funktion: Initialisierung des INA219
Parameter: keine
Rückgabe: keine
void setShuntResistor(float shunt)
Funktion: Setzen der Größe des Shunt-Widerstandes, wenn dieser vom Defaultwert 0,1 Ohm abweicht
Parameter: shunt: Widerstandswert in Ohm
Rückgabe: keine
Bemerkung: Breakout Boards, wie z.B. von Adafruit haben standardmäßig einen 0,1 Ohm Widerstand als Shunt-Widerstand eingebaut. Der Aufruf der Funktion ist nur erforderlich, wenn ein anderer Shunt-Widerstand verwendet wird.
void setMode(byte mode)
Funktion: Setzen des Betriebsmodus
Parameter: mode: INA219_SHUNT_BUS_VOLTAGE_CONT (Default-Einstellung)
INA219_BUS_VOLTAGE_CONT
INA219_SHUNT_VOLTAGE_CONT
INA219_ADC_OFF
INA219_SHUNT_BUS_VOLTAGE_TRIG
INA219_BUS_VOLTAGE_TRIG
INA219_SHUNT_VOLTAGE_TRIG
INA219_POWER_DOWN
Rückgabe: keine
Bemerkung: Die Funktionen "startContinuousMeas, startSingleMeas, setPowerDown und setADC" benutzen die setMode-Funktion. Der Betriebsmodus kann somit direkt über die setMode-Funktion gesetzt werden, oder eben über die genannten Funktionen. Die Funktionen setPowerDown und setADC haben darüber hinaus den Vorteil, dass nach Deaktivierung der ursprüngliche Betriebsmodus automatisch wieder hergestellt wird.
void setShuntADC(byte sAdc)
Funktion: Setzen der ADC-Einstellung (Auflöung oder Anzahl der Samples) der Shunt-Spannungsmessung
Parameter: sAdc: INA219_ADC_9_BIT
INA219_ADC_10_BIT
INA219_ADC_11_BIT
INA219_ADC_12_BIT (Default-Einstellg.)
INA219_ADC_2_SAMPLES
INA219_ADC_4_SAMPLES
INA219_ADC_8_SAMPLES
INA219_ADC_16_SAMPLES
INA219_ADC_32_SAMPLES
INA219_ADC_64_SAMPLES
INA219_ADC_128_SAMPLES
Rückgabe: keine
Bemerkung: Wird die ADC-Einstellung für eine bestimmte Anzahl von Samples gewählt, so ist das Messergebnis der Mittelwert der einzelnen Messungen.
void setBusADC(byte bAdc)
Funktion: Setzen der ADC-Einstellung (Auflöung oder Anzahl der Samples) der Bus-Spannungsmessung
Parameter: bAdc: INA219_ADC_9_BIT
INA219_ADC_10_BIT
INA219_ADC_11_BIT
INA219_ADC_12_BIT (Default-Einstellg.)
INA219_ADC_2_SAMPLES
INA219_ADC_4_SAMPLES
INA219_ADC_8_SAMPLES
INA219_ADC_16_SAMPLES
INA219_ADC_32_SAMPLES
INA219_ADC_64_SAMPLES
INA219_ADC_128_SAMPLES
Rückgabe: keine
Bemerkung: Wird die ADC-Einstellung für eine bestimmte Anzahl von Samples gewählt, so ist das Messergebnis der Mittelwert der einzelnen Messungen.
void setGain(byte gain)
Funktion: Setzen des PGA (Programmable Gain Amplifier) -> Shunt-Spannung Einstellung
Parameter: gain: INA219_GAIN_40 : PGA = 1; max. Shuntspannung +/- 40mV
INA219_GAIN_80 : PGA = /2; max. Shuntspannung +/- 80mV
INA219_GAIN_160: PGA = /4; max. Shuntspannung +/- 160mV
INA219_GAIN_320: PGA = /8; max. Shuntspannung +/- 320mV (Default-Einstellg.)
Rückgabe: keine
Beispiel:
INA.setGain(INA219_GAIN_40);
byte getGain(void)
Funktion: Abfrage der eingestellten Verstärkung
Parameter: keine
Rückgabe: Byte-Zahl 4, 8, 16 oder 32:
4 -> GAIN_40 : PGA = 1; max. Shuntspannung +/- 40mV
8 -> GAIN_80 : PGA = /2; max. Shuntspannung +/- 80mV
16 -> GAIN_160: PGA = /4; max. Shuntspannung +/- 160mV
32 -> GAIN_320: PGA = /8; max. Shuntspannung +/- 320mV
void setRange(byte range)
Funktion: Setzen des Messbereichs der Bus-Spannung
Parameter: range: INA219_RANGE_16: Messbereich Bus-Spg. 16 V
INA219_RANGE_32: Messbereich Bus-Spg. 32 V (max. 26 V - Default-Einstellg.)
Rückgabe: keine
Beispiel:
INA.setRange(INA219_RANGE_16);
byte getRange(void)
Funktion: Abfrage des eingestellten Bus-Spannungsbereiches
Parameter: keine
Rückgabe: Byte-Zahl 16 oder 32
16 -> RANGE_16 : Messbereich Bus-Spg. 16 V
32 -> RANGE_32 : Messbereich Bus-Spg. 32 V (max. 26 V zulässig)
bool conversionReady(void)
Funktion: Gibt zurück, ob eine gestartete Einzelmessung bzw. -messreihe (Sample-Mode) beendet ist
Parameter: keine
Rückgabe: TRUE, wenn die Wandlung fertig ist, sonst FALSE
bool currentOverflow(void)
Funktion: Gibt zurück, ob eine Strom- oder Leistungsüberschreitung aufgetreten ist
Parameter: keine
Rückgabe: TRUE, wenn die ein Strom- oder Leistungsüberschreitung aufgetreten ist, sonst FALSE
bool voltageOverflow(void)
Funktion: Gibt zurück, ob eine Bus-Spannungsüberschreitung aufgetreten ist
Parameter: keine
Rückgabe: TRUE, wenn die Bus-Spannungsüberschreitung aufgetreten ist, sonst FALSE
void startSingleMeas(void)
void startSingleMeas(byte mode)
Funktion: Start einer Einzelmessung
Parameter: mode: INA219_SHUNT_BUS_VOLTAGE_TRIG
INA219_BUS_VOLTAGE_TRIG
INA219_SHUNT_VOLTAGE_TRIG
Rückgabe: keine
Bemerkung: Ohne mode-Angabe wird die Messung im SHUNT_BUS_VOLTAGE_TRIG - Modus ausgeführt
void startContinuousMeas(void)
void startContinuousMeas(byte mode)
Funktion: Start der kontinuierlichen Messungen
Parameter: mode: INA219_SHUNT_BUS_VOLTAGE_CONT
INA219_BUS_VOLTAGE_CONT
INA219_SHUNT_VOLTAGE_CONT
Rückgabe: Ohne mode-Angabe werden die Messungen im SHUNT_BUS_VOLTAGE_CONT - Modus gestartet
void readRawValues(void)
Funktion: Einlesen der gemessenen Rohwerte des INA219
Parameter: keine
Rückgabe: keine
float calcShuntVoltage(void)
Funktion: Berechnen der Shunt-Spannung aus den gemessenen Rohwerten
Parameter: keine
Rückgabe: Float-Zahl der Shunt-Spannung
float calcBusVoltage(void)
Funktion: Berechnen der Bus-Spannung aus den gemessenen Rohwerten
Parameter: keine
Rückgabe: Float-Zahl der Bus-Spannung
float calcCurrent(void)
Funktion: Berechnen des elektr. Stromes aus den gemessenen Rohwerten
Parameter: keine
Rückgabe: Float-Zahl der elektr. Stromes
float calcPower(void)
Funktion: Berechnen der elektr. Leistung aus den gemessenen Rohwerten
Parameter: keine
Rückgabe: Float-Zahl der elektr. Leistung
void setPowerDown(bool mode)
Funktion: Aktivieren/Deaktivieren des Power-Down Modus (Schlafmodus)
Parameter: mode: INA219_POWER_DOWN_ON : Schlafmodus Ein
INA219_POWER_DOWN_OFF : Schlafmodus Aus
Rückgabe: keine
Bemerkung: Wird der Schlafmodus deaktiviert, so wird der vor der Aktivierung des Schlafmodus eingestellte Betriebsmodus wieder hergestellt!
void setADCDown(bool mode)
Funktion: Aktivieren/Deaktivieren des ADC
Parameter: mode: INA219_ADC_DOWN_ON : ADC deaktivieren EIN
INA219_ADC_DOWN_OFF : ADC deaktivieren AUS
Rückgabe: keine
Bemerkung: Wird die Deaktivierung des ADC ausgeschaltetet, so wird der vor der Deaktivierung eingestellte Betriebsmodus wieder hergestellt!
void reset(void)
Funktion: Durchführung eines Software-Reset des INA219
Parameter: keine
Rückgabe: keine
Bemerkung: Alle Register des INA219 werden Default-Werte zurückgestellt!
void printConfigRegister(void)
Funktion: Ausgabe des Inhalts des Configuration-Register des INA219 am Seriellen Monitor
Parameter: keine
Rückgabe: keine
Bemerkung: Nur für Kontrollzwecke! Funktion nicht für Attiny vorgesehen!