UNO/NANO für unkonventionelles solar/batterie/inverter-management

/*
  NANO 
  lademanager  solar-akku-wandler    lsaw   20160505f- wb49
               anzeige über uno-tft   20160529a-wb49   
                
                akku-spannung messen    analog  A3
                ssr (akku-hauptschalter) schalten D2 
                serielle schnittstelle öffnen
                werte verarbeiten
                bedingung für digitale ausgabe (if ..else)
                digitale ausgabe  als leuchtende LED
                 
 */               
               


// setup  des programmes

void setup() {
  //#define adf 0.004882
  // initialize digital pin 2 
  //  ssr ansteuern über pin2
  pinMode(2,OUTPUT);   
  // öffnen der seriellen schnittstelle
  Serial.begin(9600);
 
  
  
  
}
  
// programm schleife

void loop() {


//akku akkuspannung 
int akku=analogRead(A2);
//schaltschwellen unten/oben
int us=analogRead(A1);  
// lade-/entladestrom messen 
int strom=analogRead(A3);

//daten an uno-display

Serial.print(0);
Serial.print("|");
Serial.print(0);
Serial.print("|");
Serial.print(akku);
Serial.print("|");
Serial.print(strom);
Serial.print("|");
Serial.print(us);
// LF   line feed
Serial.print("\n");


 

   
 //  bedingungen für das schalten des ssr
 //  simulation über nano on-board-led
  if (akku < us)  
  {
  digitalWrite(2, LOW);
  
  }
  else   if (akku >550)
  {
  digitalWrite(2, HIGH);
  

  
  }
  
  
  
  // wait for a second
  delay(500);

 
 
                
}
// UNO

//("20160529g_x   490323");
//vorlage: agmue
//  freie pins:  A3 A5    D10 11 12 13
#include <Adafruit_GFX.h>    // Core graphics library
#include <Adafruit_TFTLCD.h> // Hardware-specific library


#define LCD_CS A3 // Chip Select goes to Analog 3
#define LCD_CD A2 // Command/Data goes to Analog 2
#define LCD_WR A1 // LCD Write goes to Analog 1
#define LCD_RD A0 // LCD Read goes to Analog 0

#define LCD_RESET A4 // Can alternately just connect to Arduino's reset pin




// Assign human-readable names to some common 16-bit color values:
#define  BLACK   0x0000
#define BLUE    0x001F
#define RED     0xF800
#define GREEN   0x07E0
#define CYAN    0x07FF
#define MAGENTA 0xF81F
#define YELLOW  0xFFE0
#define WHITE   0xFFFF

Adafruit_TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET);


//korrekturfaktoren
float kf[]={0,0,0.0202,-0.06,0.0022};
float wmin[]={0,0,0,600,0};

char l=218;
String  loe1=String(l);
String loe=String(loe1+l+l+l+l+l+l+l);//löschbalken
const byte anzahl = 5;


 char buf[anzahl][7];
int wert[anzahl], wertalt[anzahl];
float wanz;
char* mwb[]={"nc..","nc..","volt","amps","schw"} ;
float mws,mw;
int zaehler;


const unsigned long anzeigeIntervall = 1000;
unsigned long aktMillis, anzeigeMillis;
void setup(void) {
  Serial.begin(9600);
  Serial.println(F("Messwertanzeige"));
  
  tft.reset();
  tft.begin(0x9341);
  tft.setRotation(4);
  tft.fillScreen(BLACK);
  tft.setTextSize(1);
  tft.setTextColor(RED);
  tft.println(F("20160529g_x   490323"));
  tft.setTextSize(2);
  tft.setTextColor(WHITE);
  tft.println(F("Messwertanzeige"));
}

void loop(void) {
  static byte n = 0, o = 0;
  
  if (Serial.available()) {
    char zeichen = Serial.read();
    //Serial.print(zeichen);
    if (zeichen > 47 && zeichen < 58) {
      buf[n][o] = zeichen;
      o++;
    }
    
    if (zeichen == '|') {
      buf[n][o] = '\0';
      n++;
      o = 0;
    }

    
    if (zeichen < 32) {
      for (n = 0; n < anzahl; n++) {
        sscanf(buf[n], "%d", &wert[n]);
    //Serial.print(*buf);
       //  Serial.print(n);
         //Serial.print(F(": "));
        // Serial.println(buf[n]);
      }

      tft.setTextSize(2);
      //tft.setCursor(1, 30);
      for (byte j = 0; j < anzahl; j++) {
        tft.setTextColor(WHITE);
        tft.setCursor(1, 30*(j+1));
       tft.print(mwb[j]);
        //tft.print(j + 1);
        tft.print(": ");
       
        
    


     
      }
      //tft.setCursor(1, 30);
      for (byte j = 0; j < anzahl; j++) {
        tft.setTextColor(WHITE);
        tft.setCursor(1, 30*(j+1));
       // tft.print(mwb[j]);
       // tft.print(j + 1);
       // tft.print(": ");

        
        if (wert[j]!= wertalt[j]){
          
        tft.setTextColor(BLACK);
        tft.setCursor(90, 30*(j+1));
        tft.print(loe);
         
        
        tft.setTextColor(WHITE);
        if(mw<0 && j==3){
          tft.setTextColor(RED);
        }
        else if(mw>0 && j==3){
          tft.setTextColor(GREEN);
        }
        
        tft.setCursor(90, 30*(j+1));
        wert[4]=wert[4]-512;
        
        
        //Serial.print(wmin[j]);
        wanz= float((wert[j]-wmin[j])*kf[j]);
        wert[4]=wert[4]+512;
        tft.print(wanz);
        
        }

        //tft.println(wert[j]);
    //Serial.print(wert[j]);
        
        
        wertalt[j] = wert[j];
      }
      mws=mws+float((wert[3]-wmin[3])*kf[3]);
      zaehler++;
      mw=mws/zaehler;
      Serial.println(mws);
      Serial.println(zaehler); 
      Serial.println(mw); 
      n = 0;
      o = 0;
    }
  }
  
}

Eine Erklärung wäre nicht schlecht......

es geht um die überbrückung von kleineren wolkenfeldern und damit dem aufrechterhalten einer möglichst hohen einspeiseleistung bei kleineren anlagen -> 5Kw peak installierte leistung.

im augenblick sind 2,4Kw installiert. nennspannung 24V
als puffer wird eine 3x3 matrix herkömmliche 55Ah akkus verwendet(wirtschaftlichste installation)

3x3 : das bedeutet 36V aus reihenschaltung 3x parallel. diese konstellation kommt ohne laderegler aus, bedarf aber einer begrenzung der entladung.
interessant ist, dass etwa 10-20% höhere erzeugung von netzleistung erreicht wird, als bei ungepuffertem betrieb. und zusätlich eben die eigentliche aufrechterhaltung einer maximalen und gleichmässigen dauerleistung gewährleistet ist.

durch die steuerung mit einem arduino NANO ist eine hohe flexibilität bei verwendung von SSRs zu erreichen. der eingesetzte UNO dient vorläufig nur als display-driver.

das eigentlich vorgesehene bild wurde leider nicht angenommen....kommt später.

Ganz ehrlich, ich habs nicht ganz verstanden. Für eine Photovoltaikanlage? Für den Eigenbedarf?

ja

Gibt es hierzu auch eine Frage, oder ist es eine unfertige Projektvorstellung? :wink:

HotSystems:
Gibt es hierzu auch eine Frage, oder ist es eine unfertige Projektvorstellung? :wink:

Keine Frage! Bild kommt später :slight_smile:

agmue:
Keine Frage! Bild kommt später :slight_smile:

Das mit dem Bild habe ich gelesen, aber den Rest sollte man beischreiben.
Oder besser in "Stonies" geile Projekte aufnehmen. Dann ist es sofort klar.

wie? frage? dachte es könnte jemanden interessieren. o.k. wenn nicht dann nicht.

warum herrscht hier bei vielen so ein unfreundlicher ton?

die grundüberlegung war, dass handelsübliche laderegler durch ihre pulsweitenreglung mit steigender sonneneinstrahlung leistung “verschenken” . mit entladereglung wird aber zumindest erstmal alles was möglich ist geladen… und dann bei bedarf wieder abgegeben.

ich hab dazu keine frage…mir ist das schon klar, was da geschieht. richtig: fertig ist das projekt noch nicht. wann ist etwas schonmal in der entwicklung beendet?

stern:
warum herrscht hier bei vielen so ein unfreundlicher ton?

Nur ein Mißverständnis. In 99% aller Themen wird eine Frage gestellt. Manchmal wird aber keine Frage formuliert, die muß man dem Themensteller dann aus der Nase ziehen. In diese Schublade bist Du gerutscht.

Hättest Du “Projektvorstellung” oder sowas geschrieben und “Ich kämpfe noch mit der Forumssoftware, da kommt noch was”, hätten alle - hoffentlich - geduldig gewartet.

Dein Bild (ich bin so frei):
ca29ae47ffb1936aebf51a3c6f61aaf8cd5b8f38.jpg

Ich fände es schön, wenn Du Dein Projekt auch bei der Projektsammlung Zeigt her eure geilen Projekte ! aufnehmen würdest.

warum herrscht hier bei vielen so ein unfreundlicher ton?

Wieso unfreundlich?
Ich habe doch noch gar nichts gesagt....

Aber das kann ich gerne machen:
Deinen Thread habe ich früh gesehen.

Mein Eindruck:
2 Codewürste
Ohne jede Erklärung.
Ohne Frage.

Meine Reaktion:
Ausblenden.

stern:
...warum herrscht hier bei vielen so ein unfreundlicher ton?...

Und wieso ist jemand unfreundlich, der Fragen stellt ?

Wenn ein Beitrag vernünftig beschrieben wird, kommen auch keine Fragen auf.

kann dich bis vorhin auch gar nicht gemeint haben, denn du hast ja gar nix geposted.

muss ein post hier immer eine frage beinhalten? es können ja auch fragen gestellt werden. von denen, die das jeweilige thema irgendwie ernsthaft interessiert.

ausblenden? ja…du musst das doch nicht lesen.

ist etwas komisch: stellt man eine frage, wird man niedergemacht: wie blöd man ist.
stellt man keine frage sondern liefert etwas was funktioniert, dann ist es auch wieder nicht richtig.

hatte mir vorgestellt, dass jemand an der gleichen problematik arbeitet…vll etwas dafür braucht…vll etwas neues einbringt…

agmue hat mir z.b. sehr wichtige abschnitte geliefert, die mir halfen, mein grundproblem zu lösen.
so stelle ich mir den sinn solch eines forums vor. rumnölen kann jeder

hotsystems, ich denke zunächst mal hab ich alles wichtige dazu gesagt, und die fragen beantwortet. ich kann sonst keine konkreten fragen hier sehen.

stern:
warum herrscht hier bei vielen so ein unfreundlicher ton?

Mit 39 Posts solltest du das Forum eigentlich kennen, speziell den hier üblichen Umgangston

Hast du ein Schaltbild?
Ich komme nicht so ganz mit wegen:

stern:
5Kw peak installierte leistung.

stern:
im augenblick sind 2,4Kw installiert.

stern:
nennspannung 24V

stern:
3x3 : das bedeutet 36V aus reihenschaltung 3x parallel.

Der Text wäre auch einfacher zu lesen wenn du die Groß- und Kleinschreibung beachten würdest, liest sich dann alles einfacher.

Gruß

Größere Solaranlagen bzw deren Wandler fahren bei 2,4KW peak nicht mit 24V. Weil man dann 100A verarbeiten muss und sehr dicke Kabel legen. Das sind Schweissleitungen und keine Kabel mehr. 100A benötigt 25 mm² mindestens, besser 35mm². Sonst geht dir zuviel Leistung am Kabel verloren.

Daher werden die Anlagen eher in Reihe geschaltet und mit hohen Spannungen betrieben, dafür kleine Ströme.

Dann aber passt es wiederum nicht zu deinen Akkus. Also muss man davon ausgehen, das du einen unkonventionellen Aufbau hast. Daher wäre wichtig zu wissen, wie das aufgebaut ist um halbwegs Aussagen zu treffen.

Solarzellen werden heute im MPP-Tracking betrieben. Darunter versteht man sie so zu belasten, das sie am optimalen Arbeitspunkt arbeiten. Und der ändert sich mit der Sonnenstrahlung.

Leerlaufspannung einer Zelle(und ein Panel hat davon sehr viele, 60V Panels haben dann 120 solcher Scheiben oder Halbkreise) liegt bei ca 0,5V, aber der optimale Arbeitspunkt eher bei 0,4V. Dort ist das Produkt aus Spannung und Strom dann am höchsten. bei 0,5V ist zwar die Spannung höher aber der Strom mehr als 20% kleiner. Ebenso steigt der Strom weiter unten nicht mehr so stark an, dafür sinkt die Spannung stärker. Betreibt man sie mit relativ einfachen Wandlern ohne MPP-Tracking schalten sie sehr früh schon ab. Ansonsten fahren sie einfach in Konstantspannung.

Akkus im direkten Ladebetrieb schaffen es meist dann besser umzusetzen, was bedeutet du holst mehr raus. Deren Ladekurve zieht die Spannung etwas runter bis der Strom höher wird. Das ist ein bischen wie das MPP-tracking.

Da wir so garnichts über den Aufbau wissen, ist es schwer Aussagen zum Lade und Batteriemanagement zu machen bei sovielen Parameter die man eigentlich berücksichtigen muss.

Vielleicht solltest du deinen Eingangspost um einige Fakten und Bilder ergänzen, dass die Nachwelt und zukünftige Google Sucher auch was davon haben.

Und dann aus Stonis "Geile Projekte Liste" hierdrauf verlinken

@stern
Ich finde es ein interessantes Projekt. kannst du nochwas zu den Daten der Panels schreiben und wie genau die aakkus via SSR geschaltet werden. Was hat dich dazu bewogen zwei Arduino zu nehmen? Sind die IOs mit dem TFT Shield komplett belegt? Oder ist dies modular also man kann das Dingen auch ohne LCD Unit benutzen?

Gruß
DerDani

oh…konnte länger hier nicht lesen…
sicher liefere ich noch genauere informationen. ich bin aber aktuell mit dem projekt beschäftigt. bin also noch am überwachen, ob das ganze auch sicher ist. nebenbei bin ich natürlich auch noch anderweitig beschäftigt…also geduld.

ich hab den nano zum uno+shield genommen, weil beim uno praktisch nix mehr frei ist.
mindestens will ich ja strom und spannung messen und wenigstens einen ssr schalten.
das könnte eventuell mit dem uno allein gehen…ich arbeite daran.

in der beabsichtigten vollausstattung wird es aber leider nicht ohne die kombination mit dem nano gehen.

ich habe momentan 2,4kW installiert. ein 100w-panel hab ich separat als messmodul mit einem 6Ohm widerstand belastet. das entspricht nicht ganz der nennbelastung, so dass ich mit dem wattmeter direkt die prozentuale ausbeute in etwa ablesen kann. über 62% im winter bin ich bisher nicht gekommen. das wären wohl umgerechnet auf eine 5V belastung so um die 70/75%.
die 2,4kW speisen zwei 500W grid-tie-inverter. bei normalerwiese 50% ausbeute sind die also voll beschäftigt und liefern dann meist um die 900W. die spannung beträgt dann zwischen 36 und 40 Volt

daher die überlegung, auch 3 12v batterien zu verwenden, also nennspannung 36V.
einen “normalen” 24V-wandler jagd man mit der 24V-panelschaltung nahezu zwangsläufig hoch. und zwar, weil da 32V-kondensatoren drin verbaut sind. das inselprojekt war daher beim ersten einschalten gestorben.
die 500W-grid-tie-inverter können bis 60V vertragen. ideal. bei den 1000W-modellen ist das mit 45V schon wieder kritisch. die 300er vertragen ebenfalls bis 60V.

s.g. solar-akkus sind sau teuer. daher verwende ich ganz normale starterbatterien b-ware. 55AH.

9 stück für knapp200€ …ebenfalls ideal.

die verluste entstehen an ganz anderen stellen. davon die erste: wolken.

etwas merkwürdig ist, das die wandler fast nie ihre nenn-leistung erreichen. nicht, dass sie das nicht können…die spannung der panels ist etwas zu niedrig.

an dieser stelle tritt die geschichte mit den 36V in aktion. nachteil: batterien, zumal normale blei-flüssigsäure, dürfen nicht unter 11,5V entladen werden.

im direktanschluss also eine unmögliche geschichte. mit elektromechanischem relais nicht zu lösen…die relais machen das nicht lange.

zwar war die elektronische lösung von anbeginn geplant, aber in eigenkonstruktion.
wegen faulheit fiel mir der arduino ein, von dem ich bis vor wenigen monaten nur gehört hatte…
bei genauerer betrachtung für diese problematik wie geschaffen.
das display war dann noch eine hürde…aber ist halt schöner, wenn man sieht was sich tut.

in der tat fliessen einigermassen hohe ströme. aber die probleme bereiten nicht die kabel, sondern die anschlüsse an den wandlern. hab erst geschraubt. da fing das plastik an zu schmelzen. jetzt bin ich auf die guten alten bananenstecker umgestiegen…jetzt ist es o.k.
mehr als 25A sind bisher bei 1025W nicht geflossen… ganz recht: wo sonst nur 900W zu verzeichnen waren, sind es jetzt satte 1000-1025W.
diese werden aber nur bei sonne pur “gehalten”
es gibt einen arbeitspunkt, der fatal gedanken an …ich spreche es nicht aus…erinnert.
aber es gibt eine rationale erklärung:
bei guter sonneneinstrahlung ziehen die wandler ihre 1000+W und die batterien werden …gering…aber geladen. klemmt man die batterien ab, gehen die wandler auf 950/900 W zurück.

das dürfte an einem komplizierten zusammenspiel der innenwiderstände von zellen und batterien liegen.
die wandler nutzen den hohen strom der batterien aus…das entlastet die panels und dadurch wiederum profitieren die batterien wegen der höheren spannung…mal knapp umrissen.

die letzten tage hat das ganze nun schon anstandlos im experimentieraufbau funktioniert. gestern hatte ich aber sorge um die thermische belastung der wandler, da sie über 3-4h ihre 1000+W lieferten…
egal ob mal eine wolke durchzog oder nicht. und dann kommt natürlich der punkt, wo die sonne nicht mehr reicht, und ein gang zurückgeschaltet werden muss. also einen wandler aus…und dann volle 512W mit einem. dafür dann etwas mehr ladung für die batterien.
es muss also noch eine gesteuerte schaltung der wandler-ausgangsleitungen erfolgen. und am besten wäre eine staffelung von 3 Wandlern bei dieser konstellation: 2x 500 und 1x300. dann hätte man fast alle vorkommnisse im griff.

ein schaltbild kommt auch noch…sicher.

grundsätzlich sind die panels und die batterien eben auf 24V zusammengeschaltet. die panels sind paarweise mit rückstromsperren versehen. die batterien sind ebenfalls über eine rückstromsperre(diode)
dauerhaft mit den panels verbunden. diese diode wird duch ein 100A SSR überbrückt. abgesichert mit 25A gab bisher keine probleme mit der stromstärke. für das SSR wären mir 25A zu wenig. 100A sind etwas viel, kann aber nicht schaden.

deine ausführungen, chefin waren auch meine bedenken. grundsätzlich scheint die konstellation aber diese positiv zu regeln. richtig: es wären soooo viele parameter. die sollte man erst gar nicht versuchen zu erfassen. grundsätzlich gilt weiter:wenn die sonne nicht scheint, nützt auch die beste reglung nichts… für den fall, dass sie voll scheint, ist eine bessere thermische überwachung vor allem an den verbindungsstellen wünschenswert und an den wandlern. zusätzliche kühlung und abschaltung.
auch das wäre leicht mit arduinos hilfe zu erreichen.
logisch, dass ich mich nicht allein auf den arduino verlasse…es sind zusätzliche unabhängige messgeräte vorhanden.