Lipo überwachung

hallo Alex,
ich habe dir mal einen sketch für einen lifepo4 4s2p drangehängt, müsstest deinen Bedürfnissen entsprechend abändern
der sketch ist aufgeteilt in 2 Teile
gruß ardubu
Teil1

/*
  8+2 Kanal Spannungesmesser und Strommesser mit SD card Datenlogger
 inkl. Kapazitätsberechnung mit Ausgabe auf LCD + SD
 Alle Belegungen sind für den Mega 2560, sowie LCD 2004 mit I2C und SD Plus Shield
 Dieser Sketch speichert die Daten von 10 analogen Eingängen auf der SD Karte und zeigt sie auf dem LCD an
 	
 Die Schaltung:
  8 Spannungsteiler an den analogen Pins 8 bis 15
  2 ACS 715 an den analogen Pins 2 + 3
 
 Pinbelegung der RTC über I2C
 
  Pinbelgung für die SD Karte: 
   MOSI - pin 50
   MISO - pin 51
   CLK - pin 52
   CS - pin 53
 
 Die Schaltung für das LCD:
  Adresse 27 hex
  LCD GND an GND
  LCD VCC an 5V
  LCD SCL an Pin 21
  LCD SDA an Pin 22
 
 
 Created  6. Juni 2012
 geändert 9.März 2013
 by B. K.
 	 
 */

#include <SD.h>
#include <Wire.h>
#include <RTClib.h>
#include <LiquidCrystal_I2C.h> // benutzt den library code:
LiquidCrystal_I2C lcd(0x27,20,4); // initialisiert die library mit der I2C Adresse 0x27

File datei;  // test datei
//const uint8_t SD_CS = 53; // SD chip select
RTC_DS1307 RTC;  // define the Real Time Clock object
//------------------------------------------------------------------------------
// call back for datei timestamps
void dateTime(uint16_t* date, uint16_t* time) {
  DateTime now = RTC.now();

  // return date using FAT_DATE macro to format fields
  *date = FAT_DATE(now.year(), now.month(), now.day());

  // return time using FAT_TIME macro to format fields
  *time = FAT_TIME(now.hour(), now.minute(), now.second());
}
//------------------------------------------------------------------------------
const int chipSelect = 53;
const float mb =16.0; //Messbereich
const int tm = 1023.0; // Teiler Messbereich (10 Bit)
float (strom1)=0;
float (strom2)=0;
float C1=0;
float C2=0;
byte a=0;
byte b=0;
int c=0;
char d;// 8. Buchstabe des Dateinamens
char(dateiname)[13]="datalog0.csv";

//========================================================================================================================================================
void setup() {
  Serial.begin(9600);
  Wire.begin();
  if (!RTC.begin()) {
    Serial.println("RTC fehlt");
    while(1);       }
  DateTime now = RTC.now();
  lcd.init();
  lcd.begin(20,4); // gibt die Zeichenanzahl und Zeilenzahl des LCD's vor:
  lcd.backlight();
  pinMode(chipSelect, OUTPUT); //CS

  // setzt die date time callback function
  SdFile::dateTimeCallback(dateTime); 
  
if (!SD.begin(chipSelect)) {  // prüft ob die SD Karte eingeschoben ist und initialisiert werden kann
    Serial.println();
    Serial.print("Karte Fehlt");
    Serial.println();   
    lcd.print("Karte fehlt");
    delay(2000);
    lcd.clear();
    return;}
   
    while (SD.exists(dateiname)) {//püft ob der Datiename schon vergeben ist
    c=c++;
    if (c >9){Serial.println("Bereits 10 Dateien auf SD Karte");return;}
    d= c+'0'; //Umwandlung von int in char
    dateiname[7]=d;              }

    lcd.home();
    lcd.print("Hallo ");
    lcd.setCursor(0,1);
    lcd.print("Messen und loggen");
    lcd.setCursor(0,2);
    lcd.print("Timestamp + RTC ");
    lcd.setCursor(0,3);
    lcd.print("U_8 I_2 C_2");
    delay(3000);
    
    File datei = SD.open(dateiname, FILE_WRITE);
     datei.println();
     datei.print(now.day()); datei.print("."); datei.print(now.month()); datei.print("."); datei.print(now.year()); Serial.print("  ");
     datei.println();
     datei.println("Zeit,U1,U2,U3,U4,U5,U6,U7,U8,I1,I2,C1,C2"); // schreibt eine Kopfzeile auf den seriellen Monitor
     datei.close(); 
   
       Serial.println();
       Serial.print(now.day()); Serial.print("."); Serial.print(now.month()); Serial.print("."); Serial.print(now.year()); Serial.print("  ");
       Serial.println();
       Serial.println("Zeit,U1,U2,U3,U4,U5,U6,U7,U8,I1,I2,C1,C2"); // schreibt eine Kopfzeile auf den seriellen Monitor
    
}//setup ende
//===============================================================================================================================================================