MPPT Solarlader
- Admin
- Administrator
- Beiträge: 1252
- Registriert: Mo 20. Apr 2020, 09:47
- Wohnort: 82441 Ohlstadt
- Kontaktdaten:
Re: MPPT Solarlader
Hier habe ich mal einen Monitor-Ausschnitt gemacht.
.
.
-
- Beiträge: 76
- Registriert: Mo 12. Jun 2023, 17:49
- Kontaktdaten:
Re: MPPT Solarlader
Hallo,
ich mache folgendes, da ohne zu testen ob das was ich schreiben ist ja nicht optimal, nehme ich mein Krempel in Garten damit bin sicher das es funktioniert.
Mache einfachen Sketch nur zum auslesen der Daten ohne Datalog usw. gleichzeitig teste ich ob die höhere Version der Modbus Lib funktioniert mit Software Serial. Wen es funktionieren wurde brauch man dann drei freie Pins (RX, TX und DE, RE (beide auf einem Pin).
Mal schauen was rauskommt, testen werde ich das mit Nano ist ja der Gleiche MCU.
Kommst Du zu recht Menü bauen auf deinem LCD?
Bin neugierig ob wir kommen unter 70% Speicherauslastung
26% ist ja schon belegt.
Grüß Bernhard
ich mache folgendes, da ohne zu testen ob das was ich schreiben ist ja nicht optimal, nehme ich mein Krempel in Garten damit bin sicher das es funktioniert.
Mache einfachen Sketch nur zum auslesen der Daten ohne Datalog usw. gleichzeitig teste ich ob die höhere Version der Modbus Lib funktioniert mit Software Serial. Wen es funktionieren wurde brauch man dann drei freie Pins (RX, TX und DE, RE (beide auf einem Pin).
Mal schauen was rauskommt, testen werde ich das mit Nano ist ja der Gleiche MCU.
Kommst Du zu recht Menü bauen auf deinem LCD?
Bin neugierig ob wir kommen unter 70% Speicherauslastung

Grüß Bernhard
- Admin
- Administrator
- Beiträge: 1252
- Registriert: Mo 20. Apr 2020, 09:47
- Wohnort: 82441 Ohlstadt
- Kontaktdaten:
Re: MPPT Solarlader
Danke dir.
Das schaut sehr gut nachvollziehbar aus. Ich werde mir zum Testen einen extra Uno mit Display nehmen, andem ich noch richtig arbeiten kann. Der von der Poolheizung ist ja total eingebaut. Da baue ich das erst ein, wenn es im Testaufbau funktioniert.
Ich sitzen mit meinem Zeug auch schon im Garten, mit nem Laptop.
Das schaut sehr gut nachvollziehbar aus. Ich werde mir zum Testen einen extra Uno mit Display nehmen, andem ich noch richtig arbeiten kann. Der von der Poolheizung ist ja total eingebaut. Da baue ich das erst ein, wenn es im Testaufbau funktioniert.
Ich sitzen mit meinem Zeug auch schon im Garten, mit nem Laptop.
-
- Beiträge: 76
- Registriert: Mo 12. Jun 2023, 17:49
- Kontaktdaten:
Re: MPPT Solarlader
Schön mein Garten ist 3 Km weitIch sitzen mit meinem Zeug auch schon im Garten, mit nem Laptop.

Habe einen so genannten Schrebergarten.
Ok dann mach ich das für 2004 LCD, wahrscheinlich mit einem Taster zum umschalten vom Menü, alles passt nicht drauf, oder willst nur
PV Volt, PV Amper, PV Wat
Akku Volt, Akku Ladestrom, Akku zustand in %
Zur Zeit Verbrauch in Amper und Wat
Der Tracer speichert, kann anzeigen in KWh verbrauchte
Momentan, Tages, Monat, Jahr Leistung, genau müsste schauen in Protokoll ob der speichert gesamte Leistung für längere zeit als Jahr.
Mir ist nicht gelungen genaue Uhrzeit mit Datum eistellen deshalb habe mir gekauft USB zu RS495 Kabel für denen, womit ich kann die Uhrzeit korrigieren.
Die Original Tracer Software ist ziemlich arm zeigt nicht alles was er kann, dafür wollen die ein zusatz Display verkaufen.
Gruß Bernhard
- Admin
- Administrator
- Beiträge: 1252
- Registriert: Mo 20. Apr 2020, 09:47
- Wohnort: 82441 Ohlstadt
- Kontaktdaten:
Re: MPPT Solarlader
Danke dir.Bernhard - Fony hat geschrieben: ↑Mo 26. Jun 2023, 17:57 ..... oder willst nur PV Volt, PV Amper, PV Wat, Akku Volt, Akku Ladestrom, Akku zustand in %
Zur Zeit Verbrauch in Amper und Wat
Der Tracer speichert, kann anzeigen in KWh verbrauchte Momentan.
Ich brauch eigentlich nur Daten, von denen ich ableiten kann, dass ich die Batterie nicht zu sehr strapazieren sollte, weil sonst nix mehr geht. Also was bringen die Panels aktuell, wie ist der Ladezustand der Batterie. Das ist eigentlich schon alles. Dass ich mit dem Verbrauch langsam machen kann, bevor nichts mehr geht. An tagen wo keine Sonne ist, werde ich eh keine Chance haben, weil ja dann die Solar-Wassertaschen am Dach auch nicht wärmer werden als der Pool. Dann bleibt die Pumpe eh aus. Also ich werde die Batterie nur in kurzen Sonnenunterbrechungen durch kleinere Wolken benötigen. An bewölkten Tage habe ich eh keine Strom Anforderungen.
Die 2 x RS-485 (MAX485) TTL Schnittstellen Adapter habe ich vorher gerade bestellt, werden also in ein paar Tage da sein.
Franz
-
- Beiträge: 76
- Registriert: Mo 12. Jun 2023, 17:49
- Kontaktdaten:
Re: MPPT Solarlader
Ich versuche das so machen das Du nimmst was willst, im Grunde genommen ist das nicht so schwer
es läuft nach dem Prinzip
wenn man in das Protokoll schaut der Register 3100 hat 16 Parameter, die werden erstmal im Buffer festgehalten, und man Pickt sie aus, hier der wert vom 0x00.
das komische dabei ist es werden mehre If gebraucht für jeden Register Satz einen . Habe versucht alles auf einen rutsch ---> geht nicht
den um zB. Batterie bearbeiten sitzen die Parameter im anderem Register damit ist es 794 Byte weiter
also ist kleine vierstufige if Orgie, na ja was soll's
Hauptsache tut es
Der Speicher am Uno ist zu klein um alles auf ein mall auslesen, ich musste die Rosinen schön einzeln Picken
Bernhard
es läuft nach dem Prinzip
Code: Alles auswählen
result = node.readInputRegisters(0x3100, 16);
if (result == node.ku8MBSuccess) { //PV Daten
float pvv = node.getResponseBuffer(0x00) / 100.0f; //Tracer PV Volt
das komische dabei ist es werden mehre If gebraucht für jeden Register Satz einen . Habe versucht alles auf einen rutsch ---> geht nicht
den um zB. Batterie bearbeiten sitzen die Parameter im anderem Register
Code: Alles auswählen
"Battery voltage 331A Battery voltage V 100"
also ist kleine vierstufige if Orgie, na ja was soll's

Der Speicher am Uno ist zu klein um alles auf ein mall auslesen, ich musste die Rosinen schön einzeln Picken

Bernhard
- Admin
- Administrator
- Beiträge: 1252
- Registriert: Mo 20. Apr 2020, 09:47
- Wohnort: 82441 Ohlstadt
- Kontaktdaten:
Re: MPPT Solarlader
OK, ich kapiere gerade noch gar nichts.
Da muss es doch irgendwo Unterlagen dazu gegen. Oder Testprogramme. Ich bin im Moment noch an der Optimierung meines Programmes für die Pool-Solarheizung.
Die Kommunikation mit dem MPPT Regler ist dann der nächste Teil.
Ich bin gespannt wie diese Abfragen laufen.
Servus
Franz
Da muss es doch irgendwo Unterlagen dazu gegen. Oder Testprogramme. Ich bin im Moment noch an der Optimierung meines Programmes für die Pool-Solarheizung.
Die Kommunikation mit dem MPPT Regler ist dann der nächste Teil.

Ich bin gespannt wie diese Abfragen laufen.
Servus
Franz
-
- Beiträge: 76
- Registriert: Mo 12. Jun 2023, 17:49
- Kontaktdaten:
Re: MPPT Solarlader
Ja, aber nicht für Arduino, mir hat es beigebracht Werner @noiasca aus Arduino Forum.Da muss es doch irgendwo Unterlagen dazu gegen. Oder Testprogramme.
Unterlage habe ich.
Leider kann ich kein PDF anhängen.
Habe Dir das per PM in anderem Forum gesendet.
Gruß Bernhard
-
- Beiträge: 76
- Registriert: Mo 12. Jun 2023, 17:49
- Kontaktdaten:
Re: MPPT Solarlader
Hallo,
gute Nachricht
Die neue Modbuss Lib funktioniert mit Software Serial
Den Sketsch gebe ich später, muss noch Ordnung machen den getestet und geschrieben für ein 1602 Display, im Garten.
So jetzt zurück nach Hause
gute Nachricht

Code: Alles auswählen
Panel 23.36V 2.21A 51W
Akku 13.74V 3.76A 97%
Panel 23.37V 2.22A 51W
Akku 13.74V 3.78A 97%
So jetzt zurück nach Hause

-
- Beiträge: 76
- Registriert: Mo 12. Jun 2023, 17:49
- Kontaktdaten:
Re: MPPT Solarlader
Den Sketch habe angepasst an 2004 LCD, wirst wahrscheinlich machen nach deinem Empfinden
Diese Lib wurde benutzt
https://github.com/4-20ma/ModbusMaster
Gruß Bernhard
Diese Lib wurde benutzt
https://github.com/4-20ma/ModbusMaster
Code: Alles auswählen
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C LCD(0x27, 20, 4);
/*************************************
Für Uno wird SoftwareSerial benutzt
**************************************/
#include <SoftwareSerial.h>
SoftwareSerial tracerSerial(4, 5); // RO, DI Pins drehen wenn nicht funktioniert
/**********************************************
Ich verwende einen MAX485-kompatiblen RS485-Transceiver.
Rx/Tx ist mit der seriellen Schnittstelle der Hardware an "Serial" verbunden.
Die Pins "Data Enable" und "Rec3eiver Enable" sind wie folgt beschaltet:
********************************************************/
#include <ModbusMaster.h>
#define MAX485_DE 3 // DE und RE dürfen am einen Pin hängen
#define MAX485_RE_NEG 3
// instantiate ModbusMaster object
ModbusMaster node;
void preTransmission()
{
digitalWrite(MAX485_RE_NEG, 1);
digitalWrite(MAX485_DE, 1);
}
void postTransmission()
{
digitalWrite(MAX485_RE_NEG, 0);
digitalWrite(MAX485_DE, 0);
}
unsigned long previousMillis = 0;
const long intervall = 2000;// Daten werden alle 2Sek ausgelesen
void setup() {
Serial.begin(115200);
tracerSerial.begin(115200); // Modbus Kommunikation mit 115200 Baud
pinMode(MAX485_RE_NEG, OUTPUT);
pinMode(MAX485_DE, OUTPUT);
digitalWrite(MAX485_RE_NEG, 0);// Init in receive mode
digitalWrite(MAX485_DE, 0);
// Tracer xxxxAN Modbus slave ID 1
node.begin(1, tracerSerial); // Begin der Verbindung mit Tracer
// Callbacks allow us to configure the RS485 transceiver correctly
node.preTransmission(preTransmission);
node.postTransmission(postTransmission);
LCD.init();// Je nach benutzter Lib
//LCD.begin();
LCD.backlight();
}
void loop()
{
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= intervall)
{
previousMillis = currentMillis; // Zeitpunkt der letzten Schaltung wird festgehalten
LCD.setCursor(0, 0);
LCD.print(F("PV= "));
// Read 16 registers beginn mit Adresse 0x3100)
uint8_t result;
result = node.readInputRegisters(0x3100, 16);
if (result == node.ku8MBSuccess)
{ //PV Daten
float pvv = node.getResponseBuffer(0x00) / 100.0f; //Tracer PV Volt
if (pvv <= 10) {
LCD.print(F(" "));
LCD.print(pvv, 1);
}
if (pvv < 10)LCD.print(" ");
LCD.print(pvv, 1);
LCD.print(F("V "));
Serial.print("Panel ");
Serial.print(pvv);
Serial.print("V ");
float pva = node.getResponseBuffer(0x01) / 100.0f;//PV Ampere
LCD.print(F(" "));
LCD.print(pva, 1);
LCD.print(F("A "));
Serial.print(pva);
Serial.print ("A ");
//PV Leistung
float pvwat = ((node.getResponseBuffer(0x06) + node.getResponseBuffer(0x07) ) / 100.0f); //PV Watt
if (pvwat < 100) LCD.print(" ");//1x Space
if (pvwat < 10) LCD.print(" ");//2x Space
LCD.print(F(" "));
LCD.print(pvwat);
Serial.print(pvwat);
Serial.println("W");
LCD.print(F(" "));
LCD.print(pvwat);
LCD.println(F("W"));
/***** Akkustand Anzeigen *****/
LCD.setCursor(0, 1);//Akkustand Anzeigen
LCD.print(F("Ak= "));
float akkuVolt = node.getResponseBuffer(0x04) / 100.0f; //Tracer Akku Volt
if (akkuVolt <= 10) LCD.print(F(" "));
LCD.print(akkuVolt, 1);
LCD.print(F("V "));
Serial.print("Akku ");
Serial.print(akkuVolt);
Serial.print ("V ");
float akkuAmpere = node.getResponseBuffer(0x05) / 100.0f;//Akku Ladedaten in Ampere
if (akkuAmpere <= 10) LCD.print(F(" "));
LCD.print(akkuAmpere, 1);
LCD.setCursor(14, 1);
LCD.print(F("A"));
Serial.print(akkuAmpere);
Serial.print("A ");
}
result = node.readInputRegisters(0x311A , 1);//Akkukapazität in Prozent
if (result == node.ku8MBSuccess) {
LCD.setCursor (16, 1);
int prozent = node.getResponseBuffer(0x00);
if (prozent < 100)
{
LCD.print(F(" "));
LCD.print(prozent);
Serial.print(prozent);
Serial.println ("%");
}
else
{
LCD.setCursor (16, 1);
LCD.print(prozent);
}
LCD.setCursor (19, 3);
LCD.println(F("%"));
}
}
}
Wer ist online?
Mitglieder in diesem Forum: Ahrefs [Bot] und 0 Gäste