/******************************************************************
* Spannungs- und Strommessung mit INA219
* mit Ausgabe auf LCD-Anzeige und Funktionsplotter
*
* http://www.dl8ma.de/Arduino/telemetrie/INA219.php
*
* 04.10.2017 Jürgen, www.DL8MA.de
*
*/
#include <Adafruit_INA219.h> // https://github.com/adafruit/Adafruit_INA219
#include <LiquidCrystal_I2C.h> // https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library
float busvoltage = 0;
float current_mA = 0;
LiquidCrystal_I2C lcd(0x27, 20, 4); // LCD-Display am I2C-Bus, Adresse: 0x27, 4x20 Zeichen
Adafruit_INA219 ina219;
void setup(void)
{
lcd.begin(); // Initialisierung LCD-Anzeige
lcd.backlight();
lcd.print(" INA219-Messmodul");
Serial.begin( 9600 ); // Initialisierung serielle Schnittstelle
}
void loop(void)
{
ina219.begin(0x40); // INA219 am I2C-Bus, Adresse 0x40
ina219.setCalibration_32V_1A(); // Kalbrieren und Messbereiche festlegen: 32V, 1A
busvoltage = ina219.getBusVoltage_V(); // Spannung messen
current_mA = ina219.getCurrent_mA(); // Strom messen
lcd.setCursor( 0,2 ); // Ausgabe auf LCD-Anzeige
lcd.print( "Spannung" );
lcd.setCursor( 9,2 );
lcd.print( busvoltage );
lcd.print( " V " );
lcd.setCursor( 0,3 );
lcd.print( "Strom" );
lcd.setCursor( 9,3 );
lcd.print( current_mA );
lcd.print( " mA " );
Serial.print(busvoltage); // Messwerte für Plotter auf serielle Schnittstelle
Serial.print(","); // ausgeben
Serial.println(current_mA);
delay( 1000 ); // Messintervall ca. 1 Sekunden ( 1 Hz )
}