mehrere Relais schalten

herbk:
.....
Kann das sein, dass da dann einfach der Strom zu niedrig wird?

Am Sketch liegt es sicher nicht, denn wenn ich mit dem Labornetzteil die Spannung direkt auf die Analogeingänge gebe schalten die Relais wie gewollt.

Zu hochohmig ist der Spannungsteiler nicht, da muss ein anderer Fehler vorliegen.
Zeig doch mal ein Schaltbild, wie du es aufgebaut hast.

Hast du auch GND verbunden ?

gnd ist verbunden, sonst würde er ja auch nicht schalten wenn ich die Spannung direkt am Arduino anlege, - oder?

Den Schaltplan habe ich jetzt nur für einen Eingang gezeichnet, ist aber ja für alle Eingänge das Gleiche.

Ich habe auch noch mal nachgemessen: Über die Spannungsteiler kommen (bei 4,5V Spannung) 0,16 mA an den Analogeingängen an. Wenn ich die Spannung direkt an die Analogeingänge lege, "zieht" der Arduino mehr als 0,5 mA.

Hi

Auch, wenn Du Es explizit sagst: In dem Plan ist der GND der zu messenden Spannung gar nicht erst vorhanden - ob Dieser also wirklich mit dem Arduino GND verbunden ist, ist immer noch nicht raus.

Die Schaltung von KatsumiS vom 6.11. z.B. sollte bei Dir funktionieren, dort ist der GND (laut Schaltplan) mit dem Arduino-GND verbunden - wenn auch die Messwerte der ganzen Spannungsteiler keine wirklich Aussage zu den Einzel-Spannungen zulassen werden.

MfG

PS: Zu den 0,5mA: Kunststück - sofern die externe Beschaltung dran geblieben ist, fließt das Groh des Strom dort drüber ab (bei 5V alleine 0,8mA - da muß der Arduino noch mit 0,3mA aushelfen, daß Du 'nur' 0,5mA Strom misst!!)

herbk:
gnd ist verbunden, sonst würde er ja auch nicht schalten wenn ich die Spannung direkt am Arduino anlege, - oder?
......

Wenn du dein Netzteil zum Messen verwendest, ist es klar, das da GND schon verbunden ist. Ob das mit deiner zu messenden Spannung auch so ist, können wir nicht sehen. Und ich glaube das immer noch nicht, da in deinem Bild nichts davon zu sehen ist.
Eine Spannung kann man an einer Leitung nicht messen.
Warum glaubst du es nicht ?

Die gnd Verbindung der zu messenden Stromquelle ist dran, auch wenn ich sie in der Skizze vergessen habe...
Das Netzteil versorgt auch nicht den Arduino, es dient ausschließlich als Ersatz für die Batterie (zu messende Stromquelle) damit ich eine zuverlässige Spannung habe.

@postmaster-ino: Weshalb denkst Du liefern die Messwerte der Spannungsteiler keine zuverlässigen EInzelspannungen? Wenn das so ist, dann brauch' ich so nicht weitermachen...

Schaut doch einfach mal ins Datenblatt. Hier hat das jemand gemacht. Letzter Beitrag. Da steht auch die Seite im Datenblatt zum Nachlesen mit drin.

10 kOhm Quellinnenwiderstand sollte demnach die Obergrenze sein.

Gruß Tommy

herbk:
Die gnd Verbindung der zu messenden Stromquelle ist dran.....

Du willst doch Spannung messen, was hat das mit dem Strom zu tun ?
Ich befürchte, du verwechselst da etwas.
Miss doch mal die Spannung hinter dem Spannungsteiler mit einem Vielfachmessgerät.

Hi

Man könnte per Spannungsfolger den Quellenwiderstand überlisten - eine Hand voll OpAmps und zumindest dieser Trops wäre gelutscht.

Ungelutscht bleibt, daß der Analog-Wert der untersten Zelle, Welcher die Spannung dieser Zelle wiederspiegelt, ebenfalls unser GND der 2.ten Zelle ist.
Somit bleibt zur Erfassung der Spannung der 2.ten Zelle nicht mehr der ganze ADC-Bereich.
Gleiches gilt für Zelle Nummer Drei, Vier, Fünf und Sechs, wobei Zelle Sechs die Gesamt-Spannung aller Zellen darstellt und von 'Zelle 1-5 tot' bis zu 'Zelle 1-6 voll geladen' abdecken muß.

Du kannst Das gerne ausprobieren und uns von Deinen Ergebnissen berichten - ich befürchte aber, daß Du bis auf 'hmm ... ja ... Da ist wohl was' und 'ok, definitiv tot' keine Angaben zu den Messwerten treffen kannst.

Was man machen könnte - ich hatte vor einigen Wochen mit einem ICL7660 gespielt, Der intern per Analog-Schalter Kondensatoren umlädt:
Per Analogschalter wird ein Kondensator mit einer der Zellen verbunden, eine Zeit gewartet (Widerstand von 40Ω meine ich im Kopf zu haben), damit der Kondensator sich auf die Spannung laden/entladen kann, dann den Kondensator an GND und A0 geschaltet und gemessen.
Da der A0 (... jeder IN) nahezu keinen Strom nimmt, sind die Widerstände der Analog-Schalter vernachlässigbar gering.
Vll. ein/zwei Messungen mehr machen, damit man sichergehen kann, daß ich mich hier nicht irre und der S&H-Kondensator im µC Das auch so sieht.

MfG
Edit
DaBla ICL7660

Hi postmaster-ino,

Ungelutscht bleibt, daß der Analog-Wert der untersten Zelle, Welcher die Spannung dieser Zelle wiederspiegelt, ebenfalls unser GND der 2.ten Zelle ist.
Somit bleibt zur Erfassung der Spannung der 2.ten Zelle nicht mehr der ganze ADC-Bereich.
Gleiches gilt für Zelle Nummer Drei, Vier, Fünf und Sechs, wobei Zelle Sechs die Gesamt-Spannung aller Zellen darstellt und von 'Zelle 1-5 tot' bis zu 'Zelle 1-6 voll geladen' abdecken muß.

Da sollte ich aber im Vorfeld ausmessen können. Stand ist, dass ich, mit der gleichen Zelle als Quelle, an den Spannungsteiler Ausgängen recht genau (0,002V max Abweichung ) die gleiche Spannung habe.
Die Spannungsdiferenzen zwischen den Messpunkten bestimme ich im sketch durch abziehen der vorherigen Spannungen (z.B. Spannung Zelle 6 = Spannung Zelle 6 minus Spannung Zelle 1 bis 5).
Die rechnerischen Differenzen kann ich ja mit den Gemessenen vergleichen, - mal sehen welche Abweichungen sich da ergeben...

@herbk
Danke, dass du auf alle Anmerkungen eingehst.

Hallo,

ich habe das gerade mal für mich durchgespielt, da ich das auch irgendwann ähnlich brauche, hier aber mit den Werten für den TO.
Die Spannungsteiler sind individuell angepasst, außer an A0 hat man immer einen Pegel von ~ 4,0V bei ZellenNennspannung an A1 bis A5, damit hat man den Messbereich des ADC bei 5V Referenz zu 80% ausgenutzt. Die gemessen Spannung errechnet sich dann über den Spannungsteiler, die einzelne Zelle jeweils durch Abzug des darunter gemessenen Pegels. Die Kondensatoren habe ich im Plan weggelassen, kommen aber jeweils an die ADC-Eingänge.

Gruß André

mal wieder ein Zwischenstand von dieser Geschichte...:

Grundsätzlich funktioniert es jetzt erst mal, teilweise.... Danke an dieser Stelle an die Helfer.
Der Fehler sass nätürlich mal wieder vor dem Bildschirm. :blush: Ich hatt im sketch die Vergleichswerte falsch (auf die Spannung vor dem Spannungsteiler statt nach ihm), also viel zu hoch, gesetzt.
Nachdem ich die Werte korrigiert habe, wird jetzt der Ladestrom bei 2,55V Zellenspannung getrennt und bei 2,25 wieder eingeschaltet.
Allerdings leider nur an den Zellen die am A1, A2, A5 und A6 hängen.
An A3 und A4 misst der Arduino scheinbar nichts, denn A5 schaltet bei einer Wert wie wenn "spanndiv4" 0 wäre, A6 schaltet dann wieder richtig.
Was auch für das Fehelen eines Messwertes spricht: Die "Unterspannungs Sicherung" reagiert auch unmittelbar nach dem Einschalten des Arduino.
Spannung liegt an A3 und A4 aber jeweils die Richtige an, das habe ich wiederholt nachgemessen.

Auch den sketch habe ich jetzt wiederholt durch ohne noch einen Fehler (außer der unprofessionellen Struktur) zu erkennen...

/*
Experimentelle Laderegelung für "12V" LTO Akkus.
Die Regelung misst jede Zelle einzeln und schaltet den Ladestrom bei Erreichen der Ladeschlussspannung ab. 
Es wird jede Zelle separat geladen, weshalb auch die Zellenspannung separat gemessen und der Ladestrom 
für jede Zelle separat geschalten wird. 


*/

const byte voltin1 = A1; // input Pin für Spannung Zelle 1
const byte voltin2 = A2; // input Pin für Spannung Zelle 2
const byte voltin3 = A3; // input Pin für Spannung Zelle 3
const byte voltin4 = A4; // input Pin für Spannung Zelle 4
const byte voltin5 = A5; // input Pin für Spannung Zelle 5
const byte voltin6 = A6; // input Pin für Spannung Zelle 6

//const byte voltinall = A7; // input Pin für Spannung ganze Batterie

const int lssp = 130; // digitalwert für Ladeschlussspannung 
const int lwasp = 114; // digitalwert für wiederaufnahme des Ladevorgangs
const int cutoffsp = 100; // digitalwert für Unterspannungs Abschaltung

int voltzelle1 = 120; // Startwerte setzen 
int voltzelle2 = 120; 
int voltzelle3 = 120; 
int voltzelle4 = 120; 
int voltzelle5 = 120; 
int voltzelle6 = 120; 


void setup() {
  digitalWrite(2, HIGH);
  pinMode(2, OUTPUT);
  digitalWrite(3, HIGH);  
  pinMode(3, OUTPUT);
  digitalWrite(4, HIGH);
  pinMode(4, OUTPUT);
  digitalWrite(5, HIGH);
  pinMode(5, OUTPUT);
  digitalWrite(6, HIGH);
  pinMode(6, OUTPUT);
  digitalWrite(7, HIGH);
  pinMode(7, OUTPUT); 

  digitalWrite(10, HIGH);
  pinMode(10, OUTPUT); 

  
}



void loop() {

int spanndiv1 = 0; // Spannungs Ausgleichswerte auf 0 setzen
int spanndiv2 = 0;
int spanndiv3 = 0;
int spanndiv4 = 0;
int spanndiv5 = 0;


voltzelle1 = analogRead(voltin1); //Spannung an A 1 auslesen
spanndiv1 = voltzelle1; // ausgelesenen Wert merken

voltzelle2 = analogRead(voltin2); //Spannung an A 2 auslesen
spanndiv2 = voltzelle2;
voltzelle2 = voltzelle2 - spanndiv1;

voltzelle3 = analogRead(voltin3); //Spannung an A 3 auslesen
spanndiv3 = voltzelle3;
voltzelle3 = voltzelle3 - spanndiv2;

voltzelle4 = analogRead(voltin4); //Spannung an A 4 auslesen
spanndiv4 = voltzelle4;
voltzelle4 = voltzelle4 - spanndiv3;

voltzelle5 = analogRead(voltin5); //Spannung an A 5 auslesen
spanndiv5 = voltzelle5;
voltzelle5 = voltzelle5 - spanndiv4;

voltzelle6 = analogRead(voltin6); //Spannung an A 6 auslesen
voltzelle6 = voltzelle6 - spanndiv5;


if (voltzelle1 >= lssp) digitalWrite(2, LOW); //Schaltet bei Ladeschlussspannung den Ladestrom ab
if (voltzelle1 <= lwasp) digitalWrite(2, HIGH); //Schaltet bei Wiederaufnahmespannung den Ladestrom an.
if (voltzelle1 <= cutoffsp) digitalWrite(10, LOW); //Nimmt bei Unterspannung einer Zelle die Last von der Batterie.

if (voltzelle2 >= lssp) digitalWrite(3, LOW); //Schaltet bei Ladeschlussspannung den Ladestrom ab
if (voltzelle2 <= lwasp) digitalWrite(3, HIGH); //Schaltet bei Wiederaufnahmespannung den Ladestrom an.
if (voltzelle2 <= cutoffsp) digitalWrite(10, LOW); //Nimmt bei Unterspannung einer Zelle die Last von der Batterie.

if (voltzelle3 >= lssp) digitalWrite(4, LOW); //Schaltet bei Ladeschlussspannung den Ladestrom ab
if (voltzelle3 <= lwasp) digitalWrite(4, HIGH); //Schaltet bei Wiederaufnahmespannung den Ladestrom an.
if (voltzelle3 <= cutoffsp) digitalWrite(10, LOW); //Nimmt bei Unterspannung einer Zelle die Last von der Batterie.

if (voltzelle4 >= lssp) digitalWrite(5, LOW); //Schaltet bei Ladeschlussspannung den Ladestrom ab
if (voltzelle4 <= lwasp) digitalWrite(5, HIGH); //Schaltet bei Wiederaufnahmespannung den Ladestrom an.
if (voltzelle4 <= cutoffsp) digitalWrite(10, LOW); //Nimmt bei Unterspannung einer Zelle die Last von der Batterie.

if (voltzelle5 >= lssp) digitalWrite(6, LOW); //Schaltet bei Ladeschlussspannung den Ladestrom ab
if (voltzelle5 <= lwasp) digitalWrite(6, HIGH); //Schaltet bei Wiederaufnahmespannung den Ladestrom an.
if (voltzelle5 <= cutoffsp) digitalWrite(10, LOW); //Nimmt bei Unterspannung einer Zelle die Last von der Batterie.

if (voltzelle6 >= lssp) digitalWrite(7, LOW); //Schaltet bei Ladeschlussspannung den Ladestrom ab
if (voltzelle6 <= lwasp) digitalWrite(7, HIGH); //Schaltet bei Wiederaufnahmespannung den Ladestrom an.
if (voltzelle6 <= cutoffsp) digitalWrite(10, LOW); //Nimmt bei Unterspannung einer Zelle die Last von der Batterie.

}

Hallo

Lass dir doch die einzelnen gemessen Gesamtsoannungen und die berechneten Zellenspannungen Mal auf dem Monitor mit Serielle.print anzeigen

Wenn du mit einem Messgerat was messen kannst , aber nicht einlesen könnte es noch sein das der Eingang gestorben ist

Also Test Sketch und ohne deine Schaltung messen ob die Hardware noch okay ist.

Wenn ja muss es an der Schaltung liegen

Hi

Wenn Das nicht der komplette Sketch ist, sondern nur der Teil, Der Deinen Fehler zeigt - benutzt Du I²C?
Z.B. für Display-Ausgaben - beim Nano sind A4/A5 SDA und SCL.
Da dürfte dann aber A5 nicht funktionieren. (oder Du hast Dich verzählt und statt A3/A4 ist A4/A5 ... weit her geholt, ich weiß)
A6 und A7 sind reine Analog-IN (gibt's z.B. auf dem Uno nicht) - sollte hier aber eigentlich egal sein.

Aber prüfe erst, ob die Pins noch tun, an Alle die gleiche Spannung und schauen, was der analogRead dazu sagt.

MfG

blöde zwischenfrage.
macht man das so?:

  1. digitalWrite vor pinMode.
  2. kein pinMode für die Analogpins

Das ist der ganze sketch, ich habe kein Display dran.

An die defekten Eingänge hatte ich auch schon gedacht und einen anderen probiert, - genau das gleiche...

Ich habe im sketch A3 und A4 auf A0 und A7 gelegt. Morgen löte ich die Eingänge dann schnell um.
Wenn dann auch nichts geht muss ich halt doch mal ein Display einbauen...

Hallo,

@ harryberlin:
Die Pins sind standardmäßig Eingänge. pinMode mit INPUT ist überflüssig. Außer für INPUT_PULLUP.
Für analoge Eingänge konfiguriert die analogRead Funktion alles weitere.
Es gibt keine pinMode Option für analoge Eingänge.
Den Ausgang setzt man mit digitalWrite auf High vor pinMode Output, wenn man sichergehen möchte das er nicht kurz auf Low zuckt. Ob das lohnt muss man testen.

@ herbk:
Habe nur einen seriellen Monitor eingebaut, damit du erstmal siehst wie die Werte zappeln und was sie überhaupt ausgeben..
Vielleicht ergibt sich daraus alles weitere.
Serieller Monitor der IDE bitte unten rechts auf 250.000 einstellen.

/*
  Experimentelle Laderegelung für "12V" LTO Akkus.
  Die Regelung misst jede Zelle einzeln und schaltet den Ladestrom bei Erreichen der Ladeschlussspannung ab.
  Es wird jede Zelle separat geladen, weshalb auch die Zellenspannung separat gemessen und der Ladestrom
  für jede Zelle separat geschalten wird.
*/

const byte voltin1 = A1; // input Pin für Spannung Zelle 1
const byte voltin2 = A2; // input Pin für Spannung Zelle 2
const byte voltin3 = A3; // input Pin für Spannung Zelle 3
const byte voltin4 = A4; // input Pin für Spannung Zelle 4
const byte voltin5 = A5; // input Pin für Spannung Zelle 5
const byte voltin6 = A6; // input Pin für Spannung Zelle 6

//const byte voltinall = A7; // input Pin für Spannung ganze Batterie

const int lssp = 130;     // digitalwert für Ladeschlussspannung
const int lwasp = 114;    // digitalwert für wiederaufnahme des Ladevorgangs
const int cutoffsp = 100; // digitalwert für Unterspannungs Abschaltung

int voltzelle1 = 120; // Startwerte setzen
int voltzelle2 = 120;
int voltzelle3 = 120;
int voltzelle4 = 120;
int voltzelle5 = 120;
int voltzelle6 = 120;

int spanndiv1;        // Spannungs Ausgleichswerte
int spanndiv2;
int spanndiv3;
int spanndiv4;
int spanndiv5;

void setup() {

  Serial.begin(250000);
  
  digitalWrite(2, HIGH);
  pinMode(2, OUTPUT);
  digitalWrite(3, HIGH);
  pinMode(3, OUTPUT);
  digitalWrite(4, HIGH);
  pinMode(4, OUTPUT);
  digitalWrite(5, HIGH);
  pinMode(5, OUTPUT);
  digitalWrite(6, HIGH);
  pinMode(6, OUTPUT);
  digitalWrite(7, HIGH);
  pinMode(7, OUTPUT);

  digitalWrite(10, HIGH);
  pinMode(10, OUTPUT);
}


void loop() {

  voltzelle1 = analogRead(voltin1); //Spannung an A 1 auslesen
  spanndiv1 = voltzelle1; // ausgelesenen Wert merken

  voltzelle2 = analogRead(voltin2); //Spannung an A 2 auslesen
  spanndiv2 = voltzelle2;
  voltzelle2 = voltzelle2 - spanndiv1;

  voltzelle3 = analogRead(voltin3); //Spannung an A 3 auslesen
  spanndiv3 = voltzelle3;
  voltzelle3 = voltzelle3 - spanndiv2;

  voltzelle4 = analogRead(voltin4); //Spannung an A 4 auslesen
  spanndiv4 = voltzelle4;
  voltzelle4 = voltzelle4 - spanndiv3;

  voltzelle5 = analogRead(voltin5); //Spannung an A 5 auslesen
  spanndiv5 = voltzelle5;
  voltzelle5 = voltzelle5 - spanndiv4;

  voltzelle6 = analogRead(voltin6); //Spannung an A 6 auslesen
  voltzelle6 = voltzelle6 - spanndiv5;

  serieller_Monitor();
/*
  if (voltzelle1 >= lssp) digitalWrite(2, LOW); //Schaltet bei Ladeschlussspannung den Ladestrom ab
  if (voltzelle1 <= lwasp) digitalWrite(2, HIGH); //Schaltet bei Wiederaufnahmespannung den Ladestrom an.
  if (voltzelle1 <= cutoffsp) digitalWrite(10, LOW); //Nimmt bei Unterspannung einer Zelle die Last von der Batterie.

  if (voltzelle2 >= lssp) digitalWrite(3, LOW); //Schaltet bei Ladeschlussspannung den Ladestrom ab
  if (voltzelle2 <= lwasp) digitalWrite(3, HIGH); //Schaltet bei Wiederaufnahmespannung den Ladestrom an.
  if (voltzelle2 <= cutoffsp) digitalWrite(10, LOW); //Nimmt bei Unterspannung einer Zelle die Last von der Batterie.

  if (voltzelle3 >= lssp) digitalWrite(4, LOW); //Schaltet bei Ladeschlussspannung den Ladestrom ab
  if (voltzelle3 <= lwasp) digitalWrite(4, HIGH); //Schaltet bei Wiederaufnahmespannung den Ladestrom an.
  if (voltzelle3 <= cutoffsp) digitalWrite(10, LOW); //Nimmt bei Unterspannung einer Zelle die Last von der Batterie.

  if (voltzelle4 >= lssp) digitalWrite(5, LOW); //Schaltet bei Ladeschlussspannung den Ladestrom ab
  if (voltzelle4 <= lwasp) digitalWrite(5, HIGH); //Schaltet bei Wiederaufnahmespannung den Ladestrom an.
  if (voltzelle4 <= cutoffsp) digitalWrite(10, LOW); //Nimmt bei Unterspannung einer Zelle die Last von der Batterie.

  if (voltzelle5 >= lssp) digitalWrite(6, LOW); //Schaltet bei Ladeschlussspannung den Ladestrom ab
  if (voltzelle5 <= lwasp) digitalWrite(6, HIGH); //Schaltet bei Wiederaufnahmespannung den Ladestrom an.
  if (voltzelle5 <= cutoffsp) digitalWrite(10, LOW); //Nimmt bei Unterspannung einer Zelle die Last von der Batterie.

  if (voltzelle6 >= lssp) digitalWrite(7, LOW); //Schaltet bei Ladeschlussspannung den Ladestrom ab
  if (voltzelle6 <= lwasp) digitalWrite(7, HIGH); //Schaltet bei Wiederaufnahmespannung den Ladestrom an.
  if (voltzelle6 <= cutoffsp) digitalWrite(10, LOW); //Nimmt bei Unterspannung einer Zelle die Last von der Batterie.
*/
}


void serieller_Monitor ()
{  
  static const unsigned int INTERVAL = 200;
  static unsigned long last_ms = 0;

  if (millis() - last_ms < INTERVAL) return; // Zeit noch nicht erreicht, Funktion abbrechen

  last_ms += INTERVAL;
  Ueberschriftszeile();
  Serial.print(voltzelle1);   Serial.print('\t');
  Serial.print(voltzelle2);   Serial.print('\t'); 
  Serial.print(voltzelle3);   Serial.print('\t'); 
  Serial.print(voltzelle4);   Serial.print('\t'); 
  Serial.print(voltzelle5);   Serial.print('\t');
  Serial.print(voltzelle6);   
  Serial.println();
}


void Ueberschriftszeile ()
{
  static int counter = 33;

  counter++;

  if (counter < 30) return; // Zeilen noch nicht erreicht, Funktion abbrechen

  counter = 0;
  Serial.print(F("volt1"));  Serial.print('\t');
  Serial.print(F("volt2"));  Serial.print('\t'); 
  Serial.print(F("volt3"));  Serial.print('\t');
  Serial.print(F("volt4"));  Serial.print('\t');
  Serial.print(F("volt5"));  Serial.print('\t');
  Serial.print(F("volt6"));  
  Serial.println();
}

Hallo Doc Arduino,

Danke, ich denke das hat etwas weitergeholfen. - jedenfalls ist sichtbar, dass die Spannungen ausgelesen werden...
(Die Frage ist jetzt: wie kommt das oben beschriebene Verhalten zu stande... wieder ein Denkfehler beim Messen?? Da muss ich mir beim Messen noch mal genau auf die Finger sehen...)

OK, wenn alle Eingänge funktionieren, kann es ja nur am Skech oder den Ausgängen liegen.

Die Messwerte selbst finde ich ganz OK, das Springen um einen oder 2 Werte könnte man sicher mit einem Durchschnittswert aus 5 oder 10 Messungen ausgleichen.
Trotzdem: woher kommt es? Die Zellen haben doch eine konstante Spannung...
Die Unterschiede zwischen den Zellen sind auch OK, es entspricht dem Ladezustand der jeweiligen Zelle.

Noch was: wie mache ich es, dass das hochgeladene Bild angezeigt wird?

messwerte.jpg

Ich habe jetzt noch mal einen neuen Nano für den Sketch verwendet und siehe da jetz schalten auch die Relais die auf A3 und A4 reagieren sollen. Scheinbar habe ich 2 Nanos mit dem gleichen Defekt...

Nochmal ein Danke an Doc_Arduino, das mit dem seriellen Monitor war eine gute Idee.
Am Monitor konnte ich beim Ändern der Zellenspannungen erkennen, dass das ganze so nicht geht... Verliert eine Zelle deutlich Spannung, verfälscht dies den Messwert an der Zelle "darüber" in Richtung voll.

Ich denke ich werde doch jede Zelle mit einen eigenen Nano messen...