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!



Zur Library Stromsensor INA219