OPV für Shunt-Messung (100A)

#7683847
Lesenswert?

Hallo, ich würde gerne max. 100A mit einem Shunt messen. Dazu habe ich mir einen Shunt mit 100A und 75mV Abfall bei 100A besorgt.

Alles was ich nun weiss, ich muss mit einem OPV Verstärker das ganze verstärken. Aber da hört es dann auf.

Gibts da vielleicht Schaltungen direkt im Netz zu?

Gibt es ja zu dem meisten.

Danke euch

#7683867
Lesenswert?

Lieder ja :( Oder halt iwas.. was ich halt via UART oder I2C auslesen kann.

Ich habe mir selber eine kleine Schaltung mit einem ATMega328 und einem ESP32 gemacht.

Kann da alles auslesen, nur eben fehlen mir die tollen "Watt" angaben wie man diese so kennt.

MQTT usw habe ich mir alles gemacht. V Messung mit Spannungsteiler und Co war auch kein Thema, nur die A und somit die Watt fehlen mir.

Und würde das gerne dann mit da dran schalten.

#7683937
Lesenswert?

Da du an unterschiedlichen Schaltungsteilen messen willst, wo der Teufel weiß, wie hoch deren Potentialunterschiede zueinander sind, was bei Shunts wiederum bedeutet, mit Isolationsverstärkern und getrennten Stromversorgungen rumzuhampeln. Stromsensoren auf Halleffektbasis sind da wesentlich pflegeleichter, da sie von Haus aus potentialgetrennt sind, weil sie die Stärke des Magnetfeldes um den stromdurchflossenen Leiter auswerten. Aud Netzseite dann einfach einen Stromwandler.

#7683939
Lesenswert?

Tobi S. schrieb:

Ich will vorerst die A der Batterie und der A der PV Module messen. Derzeit, kann ich nur die V messen.

INA240 A1 wenn Du Reserve in der Aussteuerung haben musst & bidirectional misst, INA240 A2 wenn den Messbereich unidirectional bestmöglich auflösen willst.

Den Shunt lowside (= in die Masseletung) einzubauen liefert die bestmögliche Mess-Leistung des Messverstärkers, highside (= in Plusleitung) ist ebenfalls machbar, musst Du aber gegen Transienten beim Abschalten absichern.

Nehmen wir also mal als Beispiel den Aufbau lowside, 75mV full scale shunt, INA240A1 bidirectional (weil zu Ladung und Entladung des 24V/90A Speichers messen möchtest). dann hast Du zum Auslesen den (theoretisch) möglichen Bereich -166...0+166A, und damit bei 0A: +2.5V bei max. Entladung (-90A) + 1,15V bei max. Ladung (+90A) +3,85V am Ausgang des INA240A1. Toleranzen durch shunt, Verstärker habe jetzt nicht eingerechnet, und den Bereich schafft der ADC des Arduino - der Rest ist Software.

Der Vorteil der ganzen Konstruktion ist das Du mit einem einzigen IC ohne externe Bereichswiderstände auskommst, und TI.com hat es vorrätig (wenn Du Dich anmeldest, bis zu 5 Muster IC sogar gratis).

Wäre mein Vorschlag.

#7684014
Lesenswert?

Andrew T. schrieb:

Für Hall (also ohne Shunt) gibt es für die Akku- und PV-Panelseite auch noch dieses schöne element: TMCS1126 Ti.com .-)

ja, geht, aber warum? Dann braucht es doch schon wieder eine Leiterplatte und das Kabel muss aufgetrennt werden und Isolierung und Trödel.

Dafür nimmt man einen fertigen Stromwandler. z.B. HAIS 50 https://de.farnell.com/lem/hais-50-p/stromwandler/dp/1617433

Die Dinger gibt es für verschiedenste Strombereiche. Achtung, viele sind mit bipolarer Versorgung (z.B. +15V und -15V) und dann mit Stromausgang. Der hier braucht nur 5V und gibt dann sein Messignal aus. 2,5B ist 0A Messtrom. Der Strombereich lässt sich auch anpassen, indem man das zu messende Kabel mehrfach durchfädelt. Ja, das ist etwas teurer, wenn es aber wegen Potentialunterschieden den Wechselrichter getötet hat ist das dann auf einmal sehr günstig.

#7684045
Lesenswert?

Benjamin K. schrieb:

Ja, das ist etwas teurer, wenn es aber wegen Potentialunterschieden den Wechselrichter getötet hat ist das dann auf einmal sehr günstig.

Eben. Und selbst wenn es hinhaut, heißt das noch lange nicht, das beim nächsten Wechselrichtermodell (die Dinger gehen auch mal aus Altersschwäche kaputt), es immer noch stressfrei funktioniert. Dann irgendwas umstricken wollen, ist schlimmer, als es gleich richtig zu machen ;-)

#7684151
Lesenswert?

Andrew T. schrieb:

Benjamin K. schrieb:

ja, geht, aber warum? Dann braucht es doch schon wieder eine Leiterplatte und das Kabel muss aufgetrennt werden und Isolierung und Trödel.

Weil der TMCS1126 schon für 600V AC /849VDC/ 10kV peak isoliert ist -- sollte doch wohl für 24V DC reichen .-)

Ok, war möglicherweise nicht exakt genug, "Isolierung" soll bedeuten: "Isolierung der ganzen Elektronik vor allem der Leistungskabel um Kurzschlüsse mit der Umgebung zu verhindern"

Das der den Hall-Effekt nutzt, hab ich gesehen. Sowas ähnliches gibt es schon seit Jahren von Allegro. Klar ginge das elektrisch gesehen. Aber so ein modifiziertes SO Gehäuse mit 8 genutzten Anschlüssen freiverdrahtet in die 4mm² PV-Leitung zu häkeln ist jetzt nicht soo elegant.

Der Hais, oder jeder beliebige andere Ersatztyp hat für das Messsignal 3-4 Pins im 2,54er Raster und das PV-Kabel Leistungskabel braucht nur durchgefädelt werden. Das ist aus Sicht Personenschutz völlig unverändert. Das erzeugt keine zusätzliche Gefährdung. Das PV Modul wird im Betrieb sehr wahrscheinlich galvanisch mit den 230V Netz Bezug haben.

#7684155
Lesenswert?

Hermann W. schrieb:

Beitrag "ADC-Differential-Messung"

Zu deinen Problemen in deinem Beitrag, lies dir die AN2538 durch. Da steht viel Hilfreiches drin.

Ob der Potentialunterschied für die Wechselrichter tödlich ist, weiß ich nicht, aber in Ladegeräten sind auch heute noch Shunt-Messungen völlig üblich. Ich habe gerade auch ein Projekt, da ist bis jetzt für mich die beste Kombination ein Shunt und ein ADS1115.

Benjamin K. schrieb:

Dafür nimmt man einen fertigen Stromwandler. z.B. HAIS 50 https://de.farnell.com/lem/hais-50-p/stromwandler/dp/1617433

Da die Preise mittlerweile nicht mehr so hoch sind, LEM ist sicher auch gut. Wenn ich irgendwo Stromwandler sehe, dann sind das alles LEM.

#7684166
Lesenswert?

Frank O. schrieb:

Ob der Potentialunterschied für die Wechselrichter tödlich ist, weiß ich nicht, aber in Ladegeräten sind auch heute noch Shunt-Messungen völlig üblich. Ich habe gerade auch ein Projekt, da ist bis jetzt für mich die beste Kombination ein Shunt und ein ADS1115.

Ich wollt auch nix gegen Shunt im allgemeinen sagen. Aber die brauchen immer ein Bezugspotential und haben ein sehr kleines Messignal, weswegen man die ja am liebsten auf der Masseseite einbaut. In seiner Skizze ist das Bezugspotential einfach nicht erkennbar. Und das Risiko ist halt groß, das er damit zwei Schaltungsteile einfach kurzschließt. Das weglassen des Bezugspotentials und die einpolige Spannungsmessung lassen mich befürchten, dass der TO von diesen Details nicht ausreichend Wissen hat.

#7686279
Lesenswert?

So...

Habe heute mal die Shuntwiederstände eingebaut.

Sieht etwas wirr aus, sollte jedoch zu erkennen sein.

Hab dann auch mal direkt ne Messung gemacht.

Vor dem Shunt 68,2 Nach dem Shunt 68,0

und

Vor dem Shunt 68,7 Nach dem Shunt 68,4

Mein Multimeter kann leider nicht zweistellig, so ein ATMega sollte das jedoch können, oder?

Unabhängig davon, wie würde man jetzt rechnen/berechnen?

Laut Datenblatt für den Shunt sind es 75mV bei 100A.

#7686298
Lesenswert?

Tobi S. schrieb:

Hab dann auch mal direkt ne Messung gemacht.

Du hast eine Akku- oder PV-Spannung gemessen. Leider sind Deine Multimeter von zu geringer Messbereich-Auflösung, das vor hinter Shunt etwas (relevantes) bringt.

Wie dirk schon richtig schreibt: über die Sense-Anschlüsse des Shunt messen, DMM in den Millivoltbereich schalten.

Genau das machst du ja später auch wenn Deine Schaltung fertig ist (bzw. solltest es so machen...)

#7686446
Lesenswert?

Dirk F. schrieb:

Was soll denn die Quatschmessung ? im mV Bereich direkt am Shunt messen !!!

Dirk F. schrieb:

Was soll denn die Quatschmessung ?

Ruhig Brauner! Er weis es offensichtlich nicht besser.

Schalte das Messgerät in den mV Bereich. Diesen wirst Du wahrscheinlich erreichen wenn Du die Range-Taste mehrfach drückst. Die Rote und und schwarze Messpitzen kommen beide an den Shunt. Eine links und eine rechts.

#7686586
Lesenswert?

So schließt man das an. Natürlich nicht mit Krokodilklemmen. Das habe ich nur exemplarisch so gemacht, für dieses Foto. Von da, wo die rote Klemme am Shunt ist, kommt Plus und schwarz ist dann logischerweise näher an Minus. Unter Arduino gibt es eine Library für den ADS1115, mit einem sehr gut dokumentierten Beispiel. Stell die Spannung auf 1,1V ein (ist alles dokumentiert), dann klappt deine Shuntmessung.

Angehängte Dateien:
#7686593
Lesenswert?

Tobi S. schrieb:

die Shuntwiederstände

bitte ohne "h" vor dem d schreiben

Hallo,

hier wird einiges dazu erklärt: https://www.ti.com/lit/eb/slyy154b/slyy154b.pdf?ts=1718608384462&ref_url=https%253A%252F%252Fwww.bing.com%252F

hier und in vielen weiteren Vorschlägen wird es erklärt: https://www.youtube.com/watch?v=7BH8GHSeVo0&t=27s

hier noch die Variante mit OPV in Differenzverstärkerschaltung, was Du ursprünglich wissen wolltest, allerdings wird davon abgeraten: https://www.youtube.com/watch?v=oQrWR6Vbb6M

mfg

#7686611
Lesenswert?

Falls du die Shunts noch nicht gekauft hast, schau dich bei Stromwandlern um. Die sind einfacher in der Anwendung (für ein paar € mehr, aber bei einem Einzelstück wäre das denkbar). Beispiel: https://de.rs-online.com/web/p/stromwandler/1807391 Dürfte auch welche geben, die mit 5V laufen.

Messungen an Shunts haben immer das Problem, dass man mit kleinen Spannungen zu tun hat. Bei dir sind 1mV Offset über 1A Fehler, der Offset wäre also schon einmal eine zentrale Größe für die Verstärker. Da sind die oben genannten Spezialisten (z.B. INA) sicher die beste Lösung.

Hinzubringen ist das mit Shunts natürlich schon, aber die Stromwandler sind halt Anwenderfreundlicher.

#7687553
Lesenswert?

Tobi S. schrieb:

Das wäre das richtige? Sehe ich das richtig, das dieser, durch 4 Kanal beide, also PV und Batterie Shunt messen kann?

Das Board: Musst Du modifizierne, der Eingangsschutz ist da nur rudimentär. D.h. Du darfst dann keine zu grosse Spannungsdifferenz lowside haben.

Schau Dir bitte mal die Datenblätter von TI im Detail dazu an, und die Application Notes.

#7689068
Lesenswert?

Ich empfehle dir, mal ein Gehäuse zu verwenden für die ganze Elektroinstallation.

Und wenigstens eine kleine selbstverlöschende leiterplatte für die Elektronik. Wenn die billigen Jumper-wires dein Sperrholz anzünden, investierst du in (Hall-)Stromwandler, oder halt in ein neues Haus, je nach dem wie es ausgeht.

Also nimm gleich Stromwandler, die gibt es auch direkt mit schraubanschluss.

Man sollte mal Bilder und Kostenaufrechnungen der schlimmsten Solar-basteleien vor und nach dem Brand zusammenstellen. https://www.youtube.com/watch?v=4sfATGoQvuQ

Ich sage nicht, dass man es nicht auch richtig Basteln kann, man muss sich eben entsprechend weiterbilden, gefahren verstehen und vorbeugen. Z.b. mit einem Blechkasten um die Elektrokomponenten herum.

#7689099
Lesenswert?

Du brauchst dir da keine Sorgen zu machen. Da passiert nichts.

Die Schaltung wird nicht unbeobachtet genutzt. Ja auch wenn sie ja eigentlich alles loggen soll. Das ist nur ein Prototyp für mich zu testen.

Hatte kein Steckbrett da.

Zeiche das PCB gerade in Target 3001 und lasse das danna uch herstellen. Da wird dann direkt der ADS und ATMega etc verlötet. Soll dann in ein Hutschienengehäuse passend werden.

Feuerlöscher ist immer Griffbereit und wie gesagt, nicht unbeobachtet.

Hierher ist es dann auf einer richtigen PCB mit vielen Sicherungen und Co.

#7689219
Lesenswert?

Tobi S. schrieb:

jetzt muss ich die Auswertung nur noch iwie kapieren...

Dein Fehler ist schon sichtbar. Du wertest nicht A0 und A1 aus. Im Sketch ist es genau beschrieben was auskommtiert ist. Im rohen Beispiel-Sketch ist die Differenzialmessung noch auskommentiert. Du musst dir eigentlich nur den Sketch richtig durchlesen, dann kannst du dir (fast) das Datenblatt sparen. Aber wenigstens den musst du einmal ganz durchlesen. Wenn die Differenzialmessung eingestellt ist, liefert dir der ADS1115 die Differenz in Millivolt.

#7689352
Lesenswert?

Benjamin K. schrieb:

Dafür nimmt man einen fertigen Stromwandler. z.B. HAIS 50

Ja, das ist etwas teurer, wenn es aber wegen Potentialunterschieden den Wechselrichter getötet hat ist das dann auf einmal sehr günstig.

Man kann sich einen Halleffekt Stromwandler auch preisgünstig aus einem Ferrit-Ringkern und einem Analog-Hallsensor SS49E selbst bauen. Den Ringkern auftrennen und den Hallsensor in den Spalt kleben. Der Sensor braucht ca 5V und liefert ohne Magnetfeld die halbe Betriebsspannung und mit Magnetfeld je nach (Strom-)Richtung mehr oder weniger.

#7689488
Lesenswert?

Danke :)

Also.. ich verstehe das nicht so richtig...

Beim ADC habe ich z.b. 0 für GND und 1024 für 5V...

Bei ADS1115 kriege ich Werte von z.b. 15436...

Das wird ja dann nur die Umrechnung sein denke ich...

Die Differenzmessung jedoch... Da habe ich ne Frage zu...

Wechselrichter -> Shunt .... Shunt -> Batterie.

Denke ich da jetzt richtig?

Wenn beide gleich fließt nichts...

Wenn an der WR Seite der Wert höher ist als an der Batterieseite, dann wird entnommen..

Wenn an der Batterieseite der Wert höher ist... Dann wird geladen.

Ich muss das nur noch iwie umrechnen, korrekt?

Gast #7689545
Lesenswert?

Jobst Q. schrieb:

Frank O. schrieb:

Der TO möchte mit einem Shunt messen!

Der TO ist nicht das Maß aller Dinge. Es geht um das Problem, große Ströme zu messen, was nicht allein das Problem des TOs ist. Und da gibt es bessere Lösungen als Shunt.

Grundsätzlich gilt das aber nicht, wenn auch hier im Fall evtl. korrekt

Aber für die Bewertung geht nicht nur der technische Aspekt ein, es gilt auch Preis, Zuverlässigkeit etc.

Im Labor wo wir auch sehr hohe Frequenzen messen setzen wir entweder sehr teurer Strommesszangen ein oder nehmen einen Shunt, da bist du mit den Wandler frequenzmäßig aufgeschmissen. Wenn man den Anspruch hat etwas allgemeingültig zu empfehlen dann muss man auch sagen wofür, weil ganz allgemein und immer., solche Weisheiten gibt es nicht allzu viele

#7689558
Lesenswert?

Moin, ich möchte noch eine andere Möglichkeit zeigen. Anstelle des Shunt würde ich lieber den Spannungsabfall am Kabel messen, wenn er denn groß genug ist. Jeden zusätzlichen Energieverlust würde ich vermeiden. Ich würde eine +- 2,5V Spannungsversorgung für den Arduino (oder ATtiny) + ESP32 bauen und auf ein Ende von Deiner zu messenden Ader legen. Das andere Ende kannst Du dann messen. Leider kann der 328 keine Differenz messen, sonst könntest Du mit einer 5V Speisung auskommen. Ein 644 o.ä. könnte das. Das höchstwertige Bit würde dann direkt die Stromrichtung zeigen und die restlichen 9 Bit den Wert. Das ganze würde ich zwei mal aufbauen. Damit hast Du die Trennung über das WLAN. Für meine Strom- und Gaserfassung nutze ich einen ATtiny, der alle Daten, die auf dem Bild zu sehen sind speichert und über I2C auszulesen sind. Der ESP würde dann nur die Webseite generieren und seine Daten über I2C lesen. Vielleicht ist das eine Möglichkeit für Dich. Viel Erfolg Carsten

Angehängte Dateien:
#7689573
Lesenswert?

Spannungsabfall am Kabel messen

Aha. Und welches Material und Querschnitt hat das Kabel? Wie ist die Grundtoleranz dabei? Und v.a., welche Temperatur hat das Kabel?

Da kannst gleich mal einen Temperatursensor mitverbauen, denn Carsten-Peter hat in der Schulstraße gefehlt, als der Temperaturkoeffizent von Kupfer besprochen wurde.

#7689591
Lesenswert?

Rainer W. schrieb:

(Datenblatt S.26)

Als ich schrieb, dass der TO, wenn er den Sketch richtig und ganz gelesen hat, eigentlich nicht mehr das Datenblatt lesen muss, sollte es nicht heißen, dass er das nicht lesen darf.

@TO Lies bitte das Datenblatt zum ADC!

Wie du am besten den Abgleich mit Shunt und ADC machst und die Daten des ADC's ermitteltst:

Miss genau ein Ampere (ich habe immer eine 24V35W Lampe dafür) und lasse dir den Wert mit Serial.println() ausgeben. Der Wert wird etwas schwanken. Nimm den Mittelwert. Jetzt kannst du deine ADC-Werte umrechnen. Also praktisch hast du bei deinem 100A-Shunt bei 100A 75mV. Bei einem Ampere dann halt 0,75mV. Wenn du jetzt z.B. 34 Steps für die 0,75mV hast (ich gehe davon aus, dass du diese 0,75mV auch gemessen hast). Dann weißt du, dass 1A=0,75mV=34Steps sind. Also hättest du bei 100A dann 3400 Steps von deinem ADC.

Gast #7689608
Lesenswert?

Carsten-Peter C. schrieb:

Hallo, ich meine die Ader, an der auch der Shunt hängt. Bei einem Messbereich von +- 512, dürfte die Widerstandsänderung durch die Temperatur keine Rolle spielen.

Der Messbereich ist 100A, wie der digital aufgelöst wird hat keinen Einfluss. Bei 100A ist es eine Frage des Querschnitts wieviel Eigenerwärmung passiert. Weiterhin spielt die Umgebungstemperatur ein Rolle, die kann man aber leicht messen. Für 100A ist je nach Verlegeart 25mm2 oder 35mm2 vorgeschrieben. Damit ergibt sich nach Faustformel für 25mm2 ein Temperaturdelta zur Umgebung von 48K bei 35mm^2 sind es immer noch 34K. Das führt zu einer Erhöhung des Widerstandes um 14% bis 19%, auch das kann man berechnen, allerdings muss man dabei die Wärmekapazität des Kabel berücksichtigen, d.h. wenn schlagartig 100A fließen dann steigt der Widerstand entsprechend einer e-Funktion, die Zeitkonstante muss man ermitteln um das in der Berechnung zu korrigieren. Dazu gibt es sicher mehrere Möglichkeiten, am einfachsten wäre es wenn man für die Kalibrierung ein Referenzmessgerät hätte.

Der Spannungsabfall bei 25mm^2 wäre pro Meter 71mV bei 35mm2 51mV, das bekommt man in den Griff, bzw. ist in der Größenordnung des Shunts der verwendet werden soll, die Länge der Abgriff so zu wählen das man jeweils auch auf 75mV kommt ist ja machbar.

Schade, … der Ton.

kann ich nur zustimmen, hier gibt es so einige "Experten" die sich genau darüber nur definieren. Wehe dem wenn sie falsch liegen, dann werden auch mal Threads gelöscht, ich denke das ist ein ziemlich eingeschworene Gemeinschaft wo Außenstehende nur sehr ehrfürchtig den "Meister" anfragen dürfen ob er so gütig ist den Dimmen einen Rat zu geben.

So ist zumindest meine Wahrnehmung.

#7689617
Lesenswert?

Carsten-Peter C. schrieb:

Bei einem Messbereich von +- 512, dürfte die Widerstandsänderung durch die Temperatur keine Rolle spielen.

Das kommt auf den Temperaturbereich an, dem das Kabel ausgesetzt ist (ggf. auch noch Eigenerwärmung). Ein Temperaturunterschied von bspw. 30K führt ohne Kompensation zu immerhin rund 12% Abweichung für den Widerstand.

Ob diese Abweichung eine Rolle spielt, hängt von den Anforderungen an die Genauigkeit ab.

#7689630
Lesenswert?

Carsten-Peter C. schrieb:

Anstelle des Shunt würde ich lieber den Spannungsabfall am Kabel messen,

Carsten-Peter C. schrieb:

ich meine die Ader, an der auch der Shunt hängt.

Ja was jetzt ??

Ohne Shunt oder doch mit ?

Schade, … der Ton

Da rate ich, lieber nichts zu Themen zu schreiben, wo Grundwissen fehlt. Nicht umsonst hat mal jemand Konstantan erfunden. Das ist in jedem Bügeleisen drin.

https://www.oebv.at/flippingbook/9783209073235/79/

Und wenn dann noch, im zweiten Beitrag Beitrag "Re: OPV für Shunt-Messung (100A)" sichtbar, das "kein Rolle" spielt,so zeigt das daß trotz Hinweis darauf keinerlei Recherche stattgefunden hat.

Inzwischen hat Lucky das genau vorgerechnet. Mein Beitrag war insofern kein "Expertenwissen" sondern nur Physik 8. Klasse

#7689684
Lesenswert?

Carsten-Peter C. schrieb:

ch möchte noch eine andere Möglichkeit zeigen. Anstelle des Shunt würde ich lieber den Spannungsabfall am Kabel messen, wenn er denn groß genug ist.

bedenke: Kupfer hat eine Tk von +3300 ppm/K Konstantan etc. des Shunt leigen unter 60 ppm/K selbst bei preiswerten Shunts.

Latürnich könnte man mit Thermosensor die Temperatur des Kabelabschnittes messen und per Korrekturtabelle das Ergbnis verbessern.

Jeden zusätzlichen Energieverlust würde ich vermeiden.

Die PAnelspannung liegt im xx V Bereich, der Shunt wird bis ca. 50mV gefahren laut Angaben des TE. Meisnt Du immer noch die 0,5% oder sogar weniger Verlust sind hier relavant?

#7689691
Lesenswert?

Lucky schrieb:

... d.h. wenn schlagartig 100A fließen dann steigt der Widerstand entsprechend einer e-Funktion ...

Zum Glück steigt der Widerstand nicht exponentiel mit

1
e^kt

Vielmehr findet eine exponentielle Annäherung an den Endwert entsprechen

1
1 - ΔR/R e^-kt

statt, d.h. es ist nur der Restfehler, der sich exponentiell VERRINGERT. Damit gestaltet sich die Fehlerbetrachtung nach einem Stromsprung recht einfach. Kurz: Der Fehler hängt über ein Hochpassfilter von der Stromänderung ab.

#7689699
Lesenswert?

Hallo Andrew, sicherlich ist die Messung über einen Shunt genauer. Wenn das Kabel kurz ist, kommt eh nur der Shunt in Frage. Das kann man ja sehr einfach messen. Der Verlust an Leistung am Shunt ist aber immer da, wenn Strom fliest. Die Messwerte bei unterschiedlichen Strömen anzupassen ist finde ich nicht besonders schwierig. Ob man da den Aufwand treiben muss, Kabeltemperaturen zu messen bei einem 10 Bit Wandler und einzurechnen, finde ich jetzt nicht. Möge der TO sein Konzept finden. Ich bin da mal raus. Gruß Carsten

#7689728
Lesenswert?

Lucky schrieb:

Carsten-Peter C. schrieb:

Hallo, ich meine die Ader, an der auch der Shunt hängt. Bei einem Messbereich von +- 512, dürfte die Widerstandsänderung durch die Temperatur keine Rolle spielen.

Der Messbereich ist 100A, wie der digital aufgelöst wird hat keinen Einfluss. Bei 100A ist es eine Frage des Querschnitts wieviel Eigenerwärmung passiert. Weiterhin spielt die Umgebungstemperatur ein Rolle, die kann man aber leicht messen. Für 100A ist je nach Verlegeart 25mm2 oder 35mm2 vorgeschrieben. Damit ergibt sich nach Faustformel für 25mm2 ein Temperaturdelta zur Umgebung von 48K bei 35mm^2 sind es immer noch 34K. Das führt zu einer Erhöhung des Widerstandes um 14% bis 19%, auch das kann man berechnen, allerdings muss man dabei die Wärmekapazität des Kabel berücksichtigen, d.h. wenn schlagartig 100A fließen dann steigt der Widerstand entsprechend einer e-Funktion, die Zeitkonstante muss man ermitteln um das in der Berechnung zu korrigieren.

Wenn du einmal pro Sekunde den Strom misst, ADC Wandlung dürfte binnen weniger als 0,001 Sekunden durch sein. Dann sofort die Temperatur ermttelst, Dauer ebenfalls 0,001s Nun die Programmzeilen für Strom vs.temperatur Korrektur durchläufst:

Brauchst du keine Zeitkonstante.

Du siehst, es geht sehr einfach, wenn man es a bisserl geschickt programmiert.

#7689761
Lesenswert?

Andrew T. schrieb:

Dann sofort die Temperatur ermttelst, Dauer ebenfalls 0,001s

Theoretiker

Zeig mir mal einen Temperatursensor, bei dem sich eine Änderung der Gehäusetemperatur innerhalb von 1ms auf den Messwert auswirkt. Immerhin haben Wäremleitfähigkeit, thermische Übergangswiderstände und Wärmekapazität des Temperatursensors noch ein Wörtchen mitzureden, bevor die Temperaturänderung beim eigentlichen Sensorelement angekommen ist. Erst dann brauchst du überhaupt mit ermitteln anzufangen.

Du siehst, es geht sehr einfach, wenn man es a bisserl geschickt programmiert.

Programmieren können alleine reicht nicht. Man sollte auch ein ganz klein wenig von der Physik dahinter verstehen.

Gast #7689772
Lesenswert?

Andrew T. schrieb:

Lucky schrieb:

Wenn du einmal pro Sekunde den Strom misst, ADC Wandlung dürfte binnen weniger als 0,001 Sekunden durch sein. Dann sofort die Temperatur ermttelst, Dauer ebenfalls 0,001s Nun die Programmzeilen für Strom vs.temperatur Korrektur durchläufst:

Brauchst du keine Zeitkonstante.

Du siehst, es geht sehr einfach, wenn man es a bisserl geschickt programmiert.

Geschickt verkehrt :-)

die Zeitkonstante die bezieht sich auf ein Modell bzgl. der Eigenerwärmung wenn man nur die Umgebungstemperatur messen kann. Wenn der Strom sich ändert ändert sich die Kabeltemperatur wie hinter einem Tiefpass, Eingang ist die Verlustleistung P=I^2 x R

Es geht nur einfach wenn man die Messgrößen auch bekommen kann, das hat nichts mit geschickter Programmierung zu tun. Aber selbst wenn man am Kabel einen Temperatursensor anbringt folgt dieser nicht exakt wegen der Isolierung dazwischen.

#7690175
Lesenswert?

Rainer W. schrieb:

Theoretiker

Zeig mir mal einen Temperatursensor, bei dem sich eine Änderung der Gehäusetemperatur innerhalb von 1ms auf den Messwert auswirkt.

Du hast es mal wieder nicht verstanden, was ich schreibe.

Es kommt bei einee Messfolge von 1 rpo sekunde nicht mehr wesentlich auf die Ansprechgeschwindigkeit des Temp.-Sensors an.

Sondern das Spannujgnswert und Temperatur wert in engenm zeitlichen Abstand gemessne werden.

#7691174
Lesenswert?

Carsten-Peter C. schrieb:

Anstelle des Shunt würde ich lieber den Spannungsabfall am Kabel messen, wenn er denn groß genug ist.

Schwierig ... Da wird dann als allererstes eine ziemlich große Fläche mit den Sense-Leitungen aufgespannt. Ist dann schnell ein Störfelddetektor mit Offset entsprechend dem Strom.

Dann noch die Temperatorkompensation und ein sinnvoller Aufbau der Anschlüsse als 4-Leitermessung. Sonst werden die Kontaktwiderstände mitgemessen und die können deutlich schwanken vor allem auch über die Zeit. Außer man lötet die Kabelschuhe, dann ist das Kabel aber an den Kabelschuhen ziemlich starr usw.

Dann doch eher den Shunt.

Moderator (Firma: Titel) Persönliche Seite #7691187
Lesenswert?

Carsten-Peter C. schrieb:

Anstelle des Shunt würde ich lieber den Spannungsabfall am Kabel messen, wenn er denn groß genug ist.

Ich würde mich da mal umsehen:

Denn durch die galvanische Trennung ist es schnurzegal, wo ich diese Sensoren zwischenschleife. Und der Widerstand ist mit 100..200 µOhm vernachlässigbar.

Billiger und besser bekommt man das mit selbstgebasteltem Shunt-Verstärker nicht hin:

Denn spannend wird es beim Shunt dann immer mit der Strompolarität und dem Potentialbezug.

Tobi S. schrieb:

Ich will vorerst die A der Batterie und der A der PV Module messen. Derzeit, kann ich nur die V messen.

Ein Tipp: das ist elektrisch gesehen Kindergartensprache. Du willst den Strom und die Spannung messen. Und dann in den Einheiten A(mpere) und V(olt) anzeigen.

#7691218
Lesenswert?

Ich würde den Spaß mit dem ADS1115 lassen und einen INA238 oder einen INA228 kaufen.

100% genau für diese Aufgabe designt, High und Lowside möglich, 16 oder 20 bit und gleich noch eine 85V Spannungsmessung mit an Board. Kommunikation läuft über I2C.

Wenn es billiger sein soll und mit fertigen Libs für Arduino: INA 226, dass ist der Vorgänger der oben genannten Chips und im Arduino Bereich weit verbreitet und für den beschriebenen Fall absolut ausreichend.

#7692142
Lesenswert?

So.. da melde ich mich nach langer Zeit wieder.

Also habe jetzt alles neu aufgebaut.

Ich kann die ADC 0-3 vom ADS1115 auslesen.

Derzeit ist nichts angeschlossen.. und ich bekomme die Werte wie auf dem Bild.

Die Temperatur ist vom 7805 der das ganze versorgt. Gemessen mit einem DS1820.

#7692245
Lesenswert?

Tobi S. schrieb:

habe ich mir einen Shunt mit 100A und 75mV Abfall bei 100A besorgt.

Hast du dich auch über die Anwendung informiert? Solche Meßwiderstände haben meist separate Anschlüsse für die Leitungen mit dem hohen Strom und jenen für die Spannungsmessung. https://de.wikipedia.org/wiki/Vierleitermessung#Kelvinklemme https://en.wikipedia.org/wiki/Four-terminal_sensing#/media/File:Kelvin_connection_layout.png

Tobi S. schrieb:

plus/minus 10/20 Watt ist mir das schon "genau" genug.

Wenn du die Leistung messen willst, musst du die Momentanwerte von Strom und Spannung gleichzeitig messen und die beiden Meßwerte miteinander multiplizieren.

Diese Multiplikation kann man mit einem Analogmultiplizierer-IC erledigen, an das man dann ein Anzeigeinstrument für die Momentanleistung anschliessen kann, oder man kann das nach der Digitalisierung der Meßwerte mit einem Mikroprozessor machen, mit dem man dann auch die Messdaten weiterverarbeiten (summieren, aufzeichnen) kann.

Moderator (Firma: Titel) Persönliche Seite #7692319
Lesenswert?

Tobi S. schrieb:

Also habe jetzt alles neu aufgebaut.

Du hast vergessen, den Schaltplan zu deinem Aufbau anzuhängen. Sollen sich jetzt alle, die dir helfen wollen, den Schaltplan selber aus dem Aufbau herauszeichnen?

und ich bekomme die Werte wie auf dem Bild.

Welche Werte kannst du in diesem Fall mit einem Multimeter an den entsprechenden Eingängen des ADC messen? Mit "Eingang" meine ich hier den Eingangpin und den zugehörigen Massepin direkt am ADC.

und ich bekomme die Werte wie auf dem Bild.

Und wie sieht die zugehörige Software aus? Wie die Initialisierung des ADC?

#7692384
Lesenswert?

Danke erst einmal für die vielen Antworten.

Einen Schaltplan gibt es nicht, ich kann den hier gefragten Teil jedoch gleich einmal aufzeichnen.

Ich habe als THT leider nur Kohlewiderstände. Mit Glück auch mal ein Metallschichtwiderstand dazwischen.

Bei solchen aufbauten eher schlecht, aber besser als garkeine.

Hab sonst nur noch alles in 0805 und 0603 da.

Der 7805 wird später gegen einen lm2596 ersetzt. Dann fällt auch der DS1820 weg. Dieser überwacht für mich derzeit nur das dieser nicht abraucht.

Zu den Messungen...

Direkt am ATMega Messe ich die Eingangsspannung vom 7805. Der Spannungsteiler besteht aus einem 680 Ohm gegen GND und 4K7 an der Eingangsspannung.

Am ADS1115 Messe ich die Batterie A0 und A1 sowie die PV A2 und A3.

Angehängte Dateien:
Moderator (Firma: Titel) Persönliche Seite #7692437
Lesenswert?

Andrew T. schrieb:

Lothar M. schrieb:

Da braucht man keinen extra Aufwand zu machen.

Das Gegenteil ist der Fall, Lothar.

Das sehen wir offenbar grundlegend anders. Meine Ansicht ist die, dass die Schaltung erst einmal tauglich aufgebaut sein muss (Raumaufteilung und Verdrahtung), dann kann man sie mit besseren Bauteilen noch optimieren.

Einfach nur super gute Bauteile zu verwenden, bringt nichts, wenn man die dann ungeschickt verschaltet.

Tobi S. schrieb:

Einen Schaltplan gibt es nicht

Das ist prinzipiell schlecht. Da kommst du aber noch drauf, wenn du in 3 Jahren wieder mal versuchst, nachzuvollziehen, was du da gebastelt hast. Besser ist, zuerst einen Plan zu haben und zu zeichnen, und dann nach diesem Plan vorzugehen. Die Sprache der Elektronik sind nun mal Schaltpläne.

ich kann den hier gefragten Teil jedoch gleich einmal aufzeichnen.

Da fehlt genau das, was die Sache interessant und spannend macht: Was ist an Batt1 und Batte und PV1 und PV2 angeschlossen? Wie ist das miteinander verdrahtet? Wie sehen die Potentialverhältnisse dorthin aus? Wie ist die Masse deiner Schlatung mit der Masse der PV-Anlage verbunden?

Der 7805 wird später gegen einen lm2596 ersetzt.

Tu das besser sofort, denn von der Hitzeentwicklung mal abgesehen: ein 7805 hält je nach Hersteller maximal 25V..35V am Eingang aus. Du betreibst den mit 40V satt ausserhalb seiner Absolute Maximum Ratings. Wenn der durchlegiert, dann hast du 40V auf der 5V-Schiene und viel Rauch im Gehäuse.

#7692502
Lesenswert?

Die beiden Shunts Liegen auf 24V und ca. 40V, den Arduino magst du an die Batteriemasse anschließen. Viel Spass mit einem Brennenden ADC und glühenden Messleitungen. Wenn du es Trotzdem ohne Hall-Stromwandler oder zumindest INA versuchen willst: schalt ne 0,1A sicherung in alle messleitungen, bevor die hütte abbrennt. Kannst du aber auch lassen, klappt sowieso nicht.

Das Ausgangssignal eines Strommesse-Shunt ist direkt mit dem gemessenen Stromkreis verbunden. Darum knallt es, sobald ein stromkreis mit shunt mehr als 5,5V von der Schaltungsmasse abweicht, so viel kann der ADS1115 verarbeiten.

Du musst also das messignal isolieren, oder je shunt eine eigene messchaltung mit potentialgetrennter kommunikation und spannunsversorgung schaffen. Eine alternative wäre noch, direkt am wechselrichter zwei shunts in den massepfad zu schalten, falls dieser im Wechselrichter lediglich durchgeschleift wird. Dann ist immernoch ein überspannungsschutz notwendig.

Alle diese Probleme wären mit einem Hallsensor z.b. WCS1600 keine solchen.

Gibts auch schön direkt zur hutschienenmontage mit klemmen: https://www.aliexpress.com/item/1005006139384144.html

Moderator (Firma: Titel) Persönliche Seite #7692510
Lesenswert?

Tobi S. schrieb:

Also so ist das ganze verbunden.

Ja, aber das funktioniert schon prinzipiell niemals in der Realität.

Rechne es einfach mal durch: deine 75mV Differenz (bei 100A) teilst du ja noch mit 12K/680 um den Faktor 20 herunter auf lausige 4mV Differenz für die 100A. Umd das auf 1 A genau auflösen zu könne, brauchst du jetzt also einen ADC samt Bschaltung, der zuverlässig auf 40 µV genau und stabil auflösen kann. Du kannst es probieren, aber du wirst sehen: absolut keine Chance. Eher hast du einen 6er mit Zusatzzahl, ohne dass du zuvor einen Tippschein abgegeben hast!

Nochmal mein Vorschlag: nimm deine Spannugsteiler zum Messen der Spannung und die von mir vorgeschlagenen potentialfreien Stromwandler zur Strommessung. Du kannst auch mal eisern weiter in deine Sackgasse marschieren, aber du wirst hinterher zugeben: die ACS758 sind wirklich fast geschenkt.

#7692617
Lesenswert?

Beim Fragesteller fehlt viel Grundwissen.

Ich schlage ihm vor, für sich bei seiner Skizze https://www.mikrocontroller.net/attachment/638859/PXL_20240627_110537585.MP.jpg den Anschluß "minus" der Batterie als "Ground null Volt" zu beschriften. Und dann alle anderen Leitungen bzw. Potentiale mit den erwarteten Spannungswerten. Bei "24 V Batterie plus" wäre das dann beispielsweise "20 bis 28 Volt". Ja, soweit wird dieser Spannungsbereich gehen, ungefähr, bei funktionierenden Betrieb. Sind dann alle Leitungen beschriftet, wird er schnell erkennen daß sein Meßansatz so nicht funktionieren kann. Nur "Experten" sehen diese Problematik bereits jetzt an der Skizze ohne die angerate Beschriftung.

#7692651
Lesenswert?

Tobi S. schrieb:

Zunächst einmal....

Der ADS1115 ist ja auch ADC ... Es muss doch also als erstes Mal möglich sein auf A0 die Spannung von 0 - X V zu messen...

Unabhängig von allem anderen.

Er muss doch ein normaler ADC sein können....

Klar, Du kannst auch eine Schraube mit einem Hammer einschlagen. Aber es gibt für Dein Problem eben auch geeignetere Werkzeuge.

Beispielsweise INA238 (16 Bit Auflösung) https://www.ti.com/lit/ds/symlink/ina238.pdf

oder INA228 (20 Bit Auflösung). https://www.ti.com/lit/ds/symlink/ina228.pdf

Die messen direkt Spannung und Strom und errechnen dabei gleich die Leistung. Spannungsbereich geht bis 85V. Den Shunt musst Du passend dimensionieren, damit das für Deine Anwendungen passt. Mittelwertbildung ist wahlweise gleich mit drin.

Das ist das passende Werkzeug für Dich.

fchk

#7692725
Lesenswert?

Tobi S. schrieb:

Der ADS1115 ist ja auch ADC ... Es muss doch also als erstes Mal möglich sein auf A0 die Spannung von 0 - X V zu messen...

Spannung messen ist sein Job und das kann der sehr gut. Die Spannung muß aber auf seinen GND bezogen sein und darf seine Betriebspannung nicht überschreiten / unterschreiten.

Da man das mit dem Bezug oftmals nicht hin bekommt, hat TI andere ICs, die weit oberhalb ihrer eigenen Ub messen können.

Moderator (Firma: Titel) Persönliche Seite #7692987
Lesenswert?

Tobi S. schrieb:

Er muss doch ein normaler ADC sein können....

Ja, und deshalb legst du zur Inbetriebnahme des Bausteins eine bekannte und konstante Spannung am Eingang an und schaust mal zu, dann du die so eingelesen bekommst, dass sie zum Multimeter passt.

Aber selbst wenn du das hinbekommst gilt mein Post vollumfänglich: der ADC kann zwar rechnerisch es wird sicher nicht funktionieren. Nicht mal annähernd. Denn bei voll aufgedrehtem Gain auf +-256mV verlierst du von den 16 Bits des ADC durch die Skalierung auf 4mV durch deine Schaltung gleich mal die hochwertigen 7 Bits (512mV/4mV = 128 = 2^7).

Zusätzlich verlierst du locker noch die unteren 5 Bits durch den ungeeigneten Aufbau im Rauschen und in der Temperaturdrift und dann bleiben von den 16 Bits grade noch 4 übrig. Damit kannst du den Strom in 100A/16 Bit = 6A/Bit Schritten auflösen.

Ich lasse dich jetzt mental noch sehr viel Glück haben und nur 3 Bit im Rauschen verlieren, dann kannst du mit den verbleibenden 6 Bits trotzdem nicht besser als 1,6A auflösen. Das gilt dann nur auf dem Labortisch ohne Störungen. Das Thema Langzeitkonstanz will ich da nur noch kurz erwähnen.

Wie gesagt, es gilt, was ich schon mal schrieb:

Du kannst auch mal eisern weiter in deine Sackgasse marschieren

Angehängte Dateien:
#7693425
Lesenswert?

Andrew T. schrieb:

An den Eingängen soweit ich sehen kann kohleschichtwiderstände mit -300ppm/K Temperaturkoeffizient. (PXL_20240626_175344816)

Warum keine Metallschicht mit deutlich geringerem Tk von 25...50 ppm/K?

Warum überhaupt Widerstände und wieso misst er immer noch nicht die Differenz. Ich möchte nicht mit beiden Polen verbunden sein, wenn ich da messe.

#7693427
Lesenswert?

Tobi S. schrieb:

Danke erst einmal für die vielen Antworten.

Was nutzt es dir zu antworten, wenn du dann doch alles anders (und völlig falsch) machts? Was ist das für ein Quatsch mit dem Grd zusätzlich auf die Eingänge vom ASD1115 zu gehen? Ich habe dir sogar extra ein Foto vom Anschluss gemacht. Von mir aus schicke ich dir noch den passenden (angepassten) Sketch, aber mach das dann auch so!

Aber! Bevor du irgendwas an deine Anlage klemmst, mach das bitte erstmal auf dem Basteltisch. Stromquelle (im besten Fall ein Labornetzgerät), Plus auf den Shunt, vom Shunt auf eine Lampe (von mir aus H7), von der Lampe an Minus. Das erste Kabel vom Shunt (näher an Plus) geht auf A0, das zweite Kabel (näher an Minus) geht auf A1.

#7693453
Lesenswert?

Frank O. schrieb:

Tobi S. schrieb:

Danke erst einmal für die vielen Antworten.

Ich weiss ja nicht. Aber ich denke und finde schon das ein bitte/danke zum generellen menschlichen Umgang gehört.

Wie dem auch sei.

Ich soll also den Hersteller und seine Informationen ignorieren?

Also laut dem Datenblatt steht da

https://www.ti.com/product/de-de/ADS1115

MAX 5V

Ich habe mal ausversehen auf einen Pin vom ADS1115 22V gelegt...

Magic Smoke. Aber. Ich habe noch genug von den ADS hier. Ich werde gleich einen ADS opfern, das GENAU SO ANSCHLIESSEN und Filmen.

Es wird rauchen. Dann bin ich auf die Erklärung gespannt.

Ich habe das ganze weder gelernt so sonst etwas. "Fummel" seit 19 Jahren an der Elektronik. Mir wurde schon 100000000 ^10000 gesagt "das war nur Glück"...

Bereit vor 19 Jahren hieß es... "Du bringst dich um".... "Das wird Qualmen"... Usw usw. Ich sitze/stehe immernoch hier.

Ihr mit eurem rpk kkp ppm und was das alles...... kA...

URI kA... Stärke und was nicht alles.

Für MICH sind das V, A und W. Anders KAPIERE ich es nicht. Nicht das ich es nicht will... Ich Ralle es nicht. Für mich ist das Wiederstand nicht R...

Rechne R durch U und sowas kapiere ich nicht... Warum sagt man nicht einfach rechne den Wiederstand durch (kA was jetzt U ist) usw..

Dann kapiere ich das auch.

Ich kann aber auch mal mit Zahlen werden.

Also, der WR macht 2500W bei 24V....

24 VOLT / 2500 WATT macht also 104,16 Periode (also 666666666 kA wie man das als Zeichen macht)

Ok..

Nehme ich auch NUR 200Watt... (Kühlschrank) Dann liegen wir ja schon bei 200Watt / 24V also 8,33Periode Ampere.

Bei 1000 Watt (zieht nen Haushalt problemlos dauerhaft)...

41.666Periode Ampere...

Also da kann man auch mit 3/4A "Auflösung" schon messen. Auch wenn UNGENAU aber es sollte messbar sein.

Ich verstehe auch nicht... Warum man immer sagt "das würde ich da nicht anhängen wollen"....

Also alle GNDs, ALLE sind miteinander verbunden. Alleine schon über den WR (Wechselrichter).

Batterie GND sowie PV GNG sowie kA GND im WR... Egal wo ich messe... Ich kann die Batterie gegen Masse der PV messen. Oder auch anders herum.

Die Schaltung bekommt ja "GARNICHTS" ab...

Ich messe ja lediglich nen "Spannungsabfall".

Wenn ich z.b. vor dem Shunt 12V messe, und nach dem Shunt 11V.. und der hat 1V pro A... Dann gehen gerade 1A durch die Leitung bzw den Shunt. Die ADC Messeleitungen werden doch NULL belastet. Das geht geht über den Shunt. Was hat der ADC damit zu tun? Der entnimmt doch nur, wenn überhaupt... Ja.. 1 Mikro Ampere oder what ever.

Auch kommt man mit hier mit INA ka.. das sind Sensoren direkt mit einem Shunt...

Schön:)

Ich habe keinen INA gefunden... Der 100A misst...

Ich kriege die 25mm2 Kabel nicht einmal in die Schraubklemme der "Stromsensoren". Die Kabel sind ja schon dicker als die gesamte Schaltung.

Werde mir jetzt einen Kaffee kochen, und dann das ganze so aufbauen wie du sagt.

#7693459
Lesenswert?

Tobi S. schrieb:

Ich weiss ja nicht. Aber ich denke und finde schon das ein bitte/danke zum generellen menschlichen Umgang gehört.

Damit hast du für mich den Schlusspunkt gesetzt. Das war nicht unhöflich. Was misst du denn dort? Dein Shunt liefert bei vollen Ampere genau 75mV.

Ich bin hier raus. Entschuldige, dass ich dir helfen wollte!

Den Rest habe ich mir gar nicht mehr durchgelesen. Du kapierst nichts, beschwerst dich, dass man dir die Hilfe (die ich dir gerade auf einem silbernen Tablett serviert habe) nicht noch mit blumigen Worten anbiete, hast nicht ansatzweise kapiert wie ein Shunt und die Messung über den ADC funktioniert. Da wird gar kein Grd verbunden. Du bist nur mit einem Potential verbunden. Aber anstatt das einmal genau so zu machen, spielst du hier den Besserwisser. Hier gibt es sicher ne Menge Menschen die deutlich mehr Wissen von Elektronik und Mikrocontrollern haben als ich, aber das habe ich gerade alles für mein Projekt ausgiebig getestet. Lass es einfach und mach deinen Scheiß alleine.

#7693461
Lesenswert?

Habe ich iwas von unhöflich gesagt?

Auf ein "Danke für die Antworten" kam ein "was nützt es"...

Es geht rein um das Bitte/Danke. Das benutzt man einfach. Egal ob nutzen oder what ever.

In einem Geschäft, wenn du was fragst und da kommt ein "habe ich nicht", "kenne ich nicht" oder kA... Sagst du auch DANKE. Machen Menschen so im Umgang miteinander.

Frank O. schrieb:

Das war nicht unhöflich. Was misst du denn dort?

Habe ich oben schon einmal iwo erwähnt.

Aber... Fangen wir beim ADS1115 doch GANZ klein an.

VCC, GND, SCL und SDA. Jetzt nehmen wir GND und legen diese auf A0.. dann sagt per im UART (0 bis -0) als ADC wert.

Lege ich 5 v drauf, sagt er 32767. Gut.

Lege ich jetzt an A0 und A1 was an. Z.b. GND an A0 und 5V an A1... Ähm ja.. dann haben einfach mal ALLE 4 Kanäle den SELBEN wert.

#7693463
Lesenswert?

Moin Tobi,

Wo bist du den räumlich (PLZ)? Denn vielleicht hilft es dir wenn ein Forist in deiner Nähe dir Mal eye-to-eye hilft. Weil das persönliche meist besser hilft, als nur zu lesen und ggfs. direkte Tonspur dir hilft es besser und mit weniger Frust fertig zu bauen.

Mal so als Denkanstoß.

#7693467
Lesenswert?

Mein Gott! Schau doch einfach auf das Bild! Da kommt SDA, SCL, VCC und GRD auf die eine Seite. Auf der anderen Seite hat das bei den Spannungen nichts verloren. Da wird die Differenz zwischen A0 und A1 gemessen. Die ist bei üblichen Shunts max. 75mV. Wenn dein Shunt 100A messen kann, dann hast du 75mV bei 100A. Das ist immer der maximal Wert, bei oberen Ende des Messbereichs. Würdest du bitte das einmal genau so machen, wie ich es dort auf dem Bild dargestellt habe! Und dann diesen Sketch ausführen. Du wirst staunen, dass du auf einmal sinnvolle Ergebnisse bekommst. Wenn du das nicht glauben willst, dann miss mit einem Multimeter an den beiden kleinen Schauben. Du wirst pro Ampere 0,75mV bei einem 100A Shunt messen.

#7693470
Lesenswert?

Andrew T. schrieb:

Wo bist du den räumlich (PLZ)?

Habe ich auch schon gedacht. Aber ich habe nochmal heute Morgen ein Aufbau fotografiert. Eigentlich sollte man das, wenn man sich genau an den Aufbau hält und den Anweisungen folgt, auf jeden Fall hinbekommen. Sogar der Sketch ist komplett eingestellt. Er braucht nur machen was da steht.

@Tobi Du bekommst die Werte in Millivolt angezeigt.

So, ich bin weg, meinen Geburtstag feiern. Wenn man das noch so nennen kann.

#7693489
Lesenswert?

Tobi S. schrieb:

Ich soll also den Hersteller und seine Informationen ignorieren?

Also laut dem Datenblatt steht da

https://www.ti.com/product/de-de/ADS1115

MAX 5V

Wo hast du diese Angabe her?

Die obere Grenze für die empfohlene Versorgungsspannung des ADS1115 liegt laut Datenblatt des Herstellers bei 5.5V. (Datenblatt Kap. 7.3 Recommended Operating Conditions "Power supply (VDD to GND)" S.6)

Für die Eingänge des ADS1115 gilt aber ganz etwas anderes: Fig.25 im Datenblatt zeigt den Eingangsteil. Durch die Dioden soll im normalen Betrieb kein Strom fließen, d.h. die Spannung an den Eingängen darf sich nur wenig außerhalb der aktuell anliegenden Versorgungsspannung bewegen (GND – 0.3 V < V(AINX) < VDD + 0.3 V, Kap. 9.3.1 Multiplexer S.15 und Absolut Maximum Ratings "Analog input voltage" S.6). Wenn der ADS1115 bspw. nur mit 3.3V betrieben wird, also nur im Bereich -0.3V ... +3.6V, wenn die Versorgung des ADS abgeklemmt/-schaltet ist, -0.3V ... +0.3V

Frank O. schrieb:

1719638445963.jpg Dann schließt du das bitte ganz genau so an, wie auf dem Bild. Danach kannst du alles probieren und von mir aus deine Bude abfackeln. Aber mache es bitte ein einziges Mal so!

Der ADS1115 wird ohne Versorgung gar nichts tun ;-)

Insbesondere auch wenn man mit dem ADS1115 High-Side messen will, muss sehr klar sein, dass das Potential am Shunt nicht über der Versorgung des Wandlers liegt. Ohne einen vernünftigen Gnd-Bezug zwischen Messstelle und Wandler wird das schwierig. Deine Schaltung im Bild geht auf die eigentlichen Fallen gar nicht ein. Deine Halogenlampe wird wohl kaum mit 5V betrieben, so das spätestens beim Verbinden von Gnd von Lampenversorgung und ADS1115-Versorgung der Chip abraucht.

#7693530
Lesenswert?

Tobi S. schrieb:

Auch kommt man mit hier mit INA ka.. das sind Sensoren direkt mit einem Shunt...

Schön:)

Ich habe keinen INA gefunden... Der 100A misst...

Dann schau Dir den von mir vorgeschlagenen INA238 nochmal an. Der kann das nämlich prinzipiell. Du brauchst nur den passenden Shunt.

Der misst zwischen IN+ und IN- maximal 163.84mV. Jetzt musst Du Deinen Shunt nur noch so dimensionieren, dass bei 100A maximal diese Spannung am Shunt abfällt. Aus dem ohmschen Gesetz U=I*R folgt:

R = U/I = 0.16384V/100A = 0.0016384Ohm = 1.6384mOhm (max)

Erforderliche Leistung des Shunts: P = U * I =0.16384V * 100A = 16.384W

Ok, 16W an Abwärme sind nun etwas unhandlich.

Der Chip hat aber noch einen weiteren Messbereich bit 40.96mV. Damit ergibt sich:

R = U/I = 0.04096V/100A = 0.0004096Ohm = 0.4096mOhm (max) P = U * I =0.04096V * 100A = 4.096W

Da gibts z.B. den hier: https://www.digikey.de/de/products/detail/resi/SEWF3951DL400P9/22474680

Die Technik ist also kein Problem. Datenblatt lesen und verstehen!

fchk

#7693533
Lesenswert?

Für erste Gehversuche würde ich ein fertiges Breakout Board mit INA226 nutzen. Billig, 80mV Messbereich passt wunderbar zu deinem 100A 75mV Shunt und es gibt viel mehr Beispiele für den Arduino als für den INA238. Der INA238 ist dann das Upgrade, wenn man es denn braucht.

Breakout Board kaufen, den verbauten Widerstand runterschmeißen und den eigene Shunt anklemmen. Fertig. Der Rest ist Software.

#7693536
Lesenswert?

Nachdem ich mich jetzt nochmal hingesetzt.. und mir alles genau angesehen habe ist mir aufgefallen... das ich immer nur einen ADC messen konnte.. Egal was auch versucht wurde... die anderen 3 Kanäle waren immer die selben werte.. Das kam mir komisch vor... Als ich dann zwei Werte messen wollte, war einer Korrekt, die anderen jeweils die Hälfte.. wie so eine Art Spannungsteiler..

Also.. mir da PCB nochmal angesehen.. AM ADS1115 Habe ich ja Spannungsteiler.. muss ja auch. Ja.. man sollte da die GND Wiederstände aber auch mit GND verbinden.

Nunja habe dann mal die Verbindung gesetzt und...

siehe Bild.

5116 sind 5V vom 7805

11272 sind 12V, bzw. 12.20V die derzeit vom Versorgungsnetzteil kommen.

Lege ich jetzt an beide die 5V Versorgung an bleibt beim ADC0 5116 beim ADC1 sind es dann 5107. Das ist jetzt der reine ADC Wert ohne Umrechnung oder Co.

Angehängte Dateien:
#7693625
Lesenswert?

Rainer W. schrieb:

Frank O. schrieb:

1719638445963.jpg Dann schließt du das bitte ganz genau so an, wie auf dem Bild. Danach kannst du alles probieren und von mir aus deine Bude abfackeln. Aber mache es bitte ein einziges Mal so!

Der ADS1115 wird ohne Versorgung gar nichts tun ;-)

Hahaha! Da hast du mich erwischt. Es ging, ich glaube das weißt du auch, um den Anschluss für die Differenzmessung.

Rainer W. schrieb:

Deine Halogenlampe wird wohl kaum mit 5V betrieben, so das spätestens beim Verbinden von Gnd von Lampenversorgung und ADS1115-Versorgung der Chip abraucht.

Rainer, da raucht gar nichts ab. Der ADS1115 bekommt das gleiche Potential wie der Mikrocontroller. Also in meinem Fall 5V vom Nano.

Ich bin schon erstaunt, dass ihr so wenig von Shuntmessung versteht. Der Gnd vom Nano und vom ADC ist in keinem Fall mit dem Gnd (im Falle der Lampe, 24V) der anderen Spannung verbunden.

Nun gut, für mich ist das seit 36 Jahren tägliches Brot. Hätte nicht gedacht, dass ich hier einigen einmal das Wasser reichen darf. Heute gibt es sicher einige Stromwandler, aber bis vor ein paar Jahren gab es kein einzige Ladegerät (Traktionsbatterien), das keinen Shunt hatte.

Denke dir einfach der ADC ist ein Multimeter, mit dem du den Spannungsabfall in einem Stromkreis misst. Das Multimeter hat auch seine eigene Versorgungsspannung.

#7693652
Lesenswert?

Frank O. schrieb:

Frank K. schrieb:

Du brauchst nur den passenden Shunt.

Der misst zwischen IN+ und IN- maximal 163.84mV. Jetzt musst Du Deinen Shunt nur noch so dimensionieren, dass bei 100A maximal diese Spannung am Shunt abfällt.

Hallo Frank! Dann zeig mir bitte solche Shunts! Die üblichen Shunts haben 75mV.

75mV maximal geht auch, aber dann verlierst Du etwa 1 Bit an Auflösung, weil der Messbereich nicht ausgenutzt wird. Hättest Du auch drauf kommen können.

Außerdem haben Shunts primär keine Nennspannung, sondern einen Widerstand.

Außerdem habe ich für den anderen Messbereich einen passenden verlinkt.

fchk

#7693791
Lesenswert?

So..

Ich kriege jetzt Messungen hin... Aber nun weiss ich nicht mehr weiter...

Ich bin jetzt so weit das ich die Werte die ich Messe mit meinem Multimeter vergleichen kann, und sie passen.

Ich kann nun an A0 oder A1, 0-40 V anlegen

An A2 und A3 kann ich 0-80V anlegen.

Egal was ich in dem Bereich anlege, ich kriege es gemessen. Und es stimmt mit dem Multimeter überein.

Jetzt habe ich eine Differenz Messung gemacht, jedoch.. werde ich daraus nicht ganz schlau...

An A0 und A1 bekomme ich bei 5V vom ADS 5114 als ADC Wert.

Ich habe jetzt einfach iein Wiederstand gegriffen, eine LED abgeklemmt und auf einmal bekomme ich zwei verschiedene Werte, und auch die Differenz Messung funktioniert.

Nunja. Ich habe mir jetzt einfach gedacht.

Ich nehme die 5114 und Teile diese durch 5V. Sodann habe ich ja den Wert von 1 ADC Wert.... Das nehme ich jetzt mal den Differenz Wert und habe den Spannungsabfall in mV, oder?

#7693807
Lesenswert?

Tobi S. schrieb:

Ich kann nun an A0 oder A1, 0-40 V anlegen

Mein lieber Tobi, was machen wir jetzt mit dir? Ich habe am Labornetzgerät 1A eingestellt und messe (wie erwartet) ~ 0,75mV; in diesem Fall 0,788mV. Das ist ein 100A Shunt.

Ein wirklich gut gemeinter Rat:

Lass das alles sein und fange mit den ganz einfachen Sachen an. Du musst wirklich erstmal sehr viel lesen und messen üben.

Wie hoch war die Spannung noch? Gleichstrom ist sehr tückisch. Du kannst sogar Tage nach einem Schlag sterben. Tue dir und deinen Lieben ein Gefallen und lass die Finger davon.

Angehängte Dateien:
#7693816
Lesenswert?

Frank O. schrieb:

Ich bin hier raus. Entschuldige, dass ich dir helfen wollte!

Frank O. schrieb:

Ich bin schon erstaunt, dass ihr so wenig von Shuntmessung versteht.

Frank O. schrieb:

Nun gut, für mich ist das seit 36 Jahren tägliches Brot. Hätte nicht gedacht, dass ich hier einigen einmal das Wasser reichen darf.

Frank O. schrieb:

Mein lieber Tobi, was machen wir jetzt mit dir?

Hast du deine Tabletten heute noch nicht genommen?

#7693876
Lesenswert?

Manfred P. schrieb:

Ich sehe vieles von Dir, was ich für überflüssig halte.

Manfred, in der Sache will ich nicht einmal widersprechen, aber die Art ist es. Meinst du er würde mir gegenüber stehen und sich solche Frechheit rausnehmen? Nein, würde er nicht, weil man sich dann auf einmal benehmen kann. Klar war ich für einen Moment heute Vormittag angepisst und wollte auch raus sein. Ich habe selbst so viel Hilfe hier bekommen, dann möchte man auch mal etwas zurück geben. Aber ich lasse mich nicht so blöd von der Seite anpissen. Dann muss er sich halt auch gefallen lassen, dass er als Hausmeister Krause bezeichnet wird. Beleidigend muss man nicht werden. Im Übrigen, wenn das dann jemand sagt (war letztens einmal) und derjenige recht hat, dann nehme ich mich zurück.

#7693888
Lesenswert?

Sooooo..

Ich bin dann auch mal wieder da :)

Leute... habt euch doch einfach lieb... ich arbeite im Altenheim... Pflege jeden Tag Menschen... und das leben ist Hart genug... Muss ich jeden Tag erfahren...

Wie dem auch sei...

Ich habe das ganze mal angeschlossen.. und.. und ja es ist weder etwas abgefackelt noch sonst etwas im gegenteil. Lief "eigentlich" wie erwartet... eigentlich...

Die Bilder vor der Entnahme hoher Leistung.

Wie man sehen kann. Oben Links die Systemspannung (Mittelanzapfung vom Akkupack, daher 12V).

Unten Links die Spannung vom Akkupack. Darunter die Zahl ist der Differenzwert von dem Batterieshunt.

Werte stimmen mit dem Multimeter überein. Besser als erwartet nachdem ganzen .. ja egal...

Im nächsten Post, damit das Besser getrennt ist die weitere Erklärung.

#7693889
Lesenswert?

Frank O. schrieb:

Nein, würde er nicht, weil man sich dann auf einmal benehmen kann.

Würde ich definitiv. Weil man solchen Leuten wir dir Grenzen beim Schwallen setzen muss, sonst machen sie immer weiter damit. Dieses Hin und Her zwischen Selbstmitleid und nahezu fanatischem Lehrertum ist eine ganz ungesunde Mischung. Für den TE und nicht zuletzt für dich selbst. Deine raschen Antworten lassen auch darauf schließen das du das hier (auch noch an deinem Geburtstag) sehr aktiv verfolgst, obwohl du dich raushalten wolltest. Mir kommt es so vor als flüchtest du dich in diesen Thread, weil du an deinem Geburtstag Ablenkung von der realen Welt brauchst.

Eventuell sieht die Welt ja morgen ganz anders aus, in diesem Sinne: Alles Gute zum Geburtstag, Frank.

#7693890
Lesenswert?

Sooo..

Nun habe ich mal Leistung entnommen.

Ja.. wie man sehen kann.. ganze 65 Ampere.. 65 Ampere.. ja bei was? Bei 25V oder 23V?

Wieso fällt die Spannung so extrem krass ab?

Auch bei der Differenz lässt sich was messen, von vorher 46 auf dann 92.

Jedoch.. passt nun meine Berechnung nicht mehr.. Und.. dadurch das die Spannung so weit herunter geht... Ja.. muss man da vielleicht iwas multiplizieren weil Spannung proportional abfällt oder kA?

Und jaaa.. ich habe keine Ahnung.. sollte was anderes machen usw.. aber.. Was ist kVa schon wieder? Das tauchte nun neu im WR auf.

Und ja.. Wieviel W lagen nun auf dem Kabeln? Rechnet man die 65A nun mit den 25V (vorher) oder 23V die während des Entzugs da sind?

Alles bissel verwirrend gerade

#7693891
Lesenswert?

Paul B. schrieb:

Alles Gute zum Geburtstag, Frank.

Ach Paul ... Danke für die Glückwünsche! Zwar völlig verschätzt, aber ich soll mich zurückhalten. :-) Ich bin erst wieder seit Februar aktiv. Am liebsten würde ich ununterbrochen mich wieder überall einarbeiten. Das macht mir wieder so irre viel Spaß. Das war's. Nicht mehr, nicht weniger. Ich weiß, dass ich manchmal über das Ziel hinaus schieße. Dann dürft ihr mir das auch ruhig sagen. Aber auf die Art kommt es an.

#7697942
Lesenswert?

Mir ist da jetzt.. nach vielen vielen versuchen etwas eingefallen..

Wenn ich den Shunt in die GND Leitung setze.. dann kann ich doch direkt an den ADS ohne Spannungsteiler, oder?

Das Problem ist ja... durch den Spannungsteiler habe ich einen Messbereich von z.b. 0 - 40V.

Der Shunt hat bei 100A, wenn ich mich da jetzt nicht vertue, einen Abfall von 0,075V.

Der ADS kann von -0.3V - 5.5V messen...

Wenn ich doch jetzt den Shunt in die GND Leitung versetze würde da die, ich nenne es mal Auflösung nicht viel viel besser werden?

Der Messbereich würde ich ja jetzt "nur noch" auf 0 - -0.075V von vorher 0-40 ändern.

Da das docha uch in den Bereich vom ADS passt (-0.3V) sollte das doch funktionieren, oder?

#7698018
Lesenswert?

Ich weiß auch gar nicht was und wofür du einen Spannungsteiler hast. Weiter oben habe ich dir einen funktionierenden Sketch (setze ich genauso ein), die Verkabelung und die nötigen Erklärungen geliefert. Du misst nur den Spannungsabfall (wie mit einem Multimeter, nur sind A0 und A1 in dem Fall deine Messspitzen) am Shunt. Der bei 100A dann 74mV betragen würde. Es ist müßig sich in deine Gedankengänge rein zu denken. Mach doch einfach was da steht, dann funktioniert deine Messung.

adc.setVoltageRange_mV(ADS1115_RANGE_0256); // Hiermit ist dein Messbereich von 0-256mV festgelegt.

1
                                           //adc.setVoltageRange_mV(ADS1115_RANGE_4096); //comment line/change parameter to change range

/* Set the inputs to be compared


  • ADS1115_COMP_0_1 -> compares 0 with 1 (default)*

  • ADS1115_COMP_0_3 -> compares 0 with 3
  • ADS1115_COMP_1_3 -> compares 1 with 3
  • ADS1115_COMP_2_3 -> compares 2 with 3
  • ADS1115_COMP_0_GND -> compares 0 with GND
  • ADS1115_COMP_1_GND -> compares 1 with GND
  • ADS1115_COMP_2_GND -> compares 2 with GND
  • ADS1115_COMP_3_GND -> compares 3 with GND */

adc.setCompareChannels(ADS1115_COMP_0_1); // Hier legst du die beiden ADCs (A0 und A1) für die Differenzmessung fest.

Das sind die beiden Sachen, die du wissen musst.

#7698073
Lesenswert?

Tobi S. schrieb:

Weil der ADS1115 bei 40 Volt in Rauch aufgeht. Ich kann nicht an A0 und A1 die 40V vom Shunt hängen.

Der kann gar keine 40V oder mehr bekommen. Er bekommt im Höchstfall 75mV.

Tobi, dass du das anscheinend nicht verstehst, ist mir schon lange klar, aber wieso du die ganze Zeit da irgendwas anderes machst (zum Beispiel die Massen verbinden), das ist mir ein echtes Rätsel. Du kannst doch bestimmt mit einem Multimeter die Spannung an einer Batterie messen? Verbindest du dann auch die Masse vom Multimeter mit der Batterie?

Stelle dir einfach vor, dass dein ADS1115 ein Multimeter ist. An A1 hast du dein schwarzes Kabel angeklemmt und an A0 klemmst du dein rotes Kabel an. Jetzt misst du, wie bei der Batterie, rechts und links am Shunt. Was würdest du, wenn wir bei deinem 100A Shunt bleiben, bei einem Ampere Strom auf deinem Multimeter angezeigt bekommen? (kleine Hilfe; ich hatte dir dazu sogar ein Bild in diesem Thread eingestellt)

Tobi S. schrieb:

Also.. ich will das ja jetzt quasi genau so machen wie du sagst..

Doch jetzt schon? Erstaunlich!

Es ist völlig egal wo du in einem geschlossenen Stromkreis misst, der Strom bleibt der selbe.

#7698082
Lesenswert?

Sag mal... Was verstehst DU nicht?

Siehe Anhänge...

Also das Datenblatt lügt also?

Da steht doch ganz klar das A0-A3 nur MAXIMAL VDD +-0.3V sein darf.

VDD ist bei mir 5V.... Somit ist bei 5.3V Schluss.

Wenn ich das an meinen Shunt hänge dann liegen 40V auf dem A0 und A1.

Was bitte kapierst du nicht?

#7698087
Lesenswert?

Tobi S. schrieb:

Was bitte kapierst du nicht?

Komisch bei mir funktioniert es. Aber mach mal, du Weltmeister!

Frank O. schrieb:

Angehängte Dateien:

1
        1719687218116.jpg
2

3
        200 KB

Also machst du irgendwas falsch. Schau dir das Bild an! Dort fließt ein Strom von einem Ampere. Wenn du jetzt auf mein Multimeter schaust, passt der Wert so ziemlich zu den 0,75mV. Auf dem Bild sind es 0,788mV. Mehr als 75mV werden dort niemals zu messen sein. Egal womit du misst. Dann misst du halt auch obendrein falsch.

Die Messung ist echt, während ich den ADS1115 exemplarisch dort angeschlossen habe. Um nochmal zu zeigen wie das angeschlossen werden muss.

Ich will dich auch nicht dumm sterben lassen. VDD ist die Versorgungsspannug des ADS1115. Du hast bei der Messung kein gemeinsames Potential.

#7698094
Lesenswert?

Tobi S. schrieb:

Was bitte kapierst du nicht?

Was ich nicht kapiere, dass du, nach allen Erklärungen und sogar fertigen Sachen und Bildern, das immer noch nicht hin bekommst.

Würdest du einmal bitte dein Multimeter rechts und links am Shunt anschließen! Dann mach bitte ein Foto von dem Messwert. Ich weiß schon, was da drauf stehen wird, nämlich ein Messwert zwischen 0-75mV. Je nachdem welcher Strom gerade fließt.

#7698125
Lesenswert?

Ich versuche es noch einmal:

Euer Problem scheint zu sein, dass in Frank O.s Welt das Wort Galvanisch getrennte Spannungsversorgung nicht aussprechbar ist. Gleichzeitig gibt es in Tobi S.s Welt immer nur eine gemeinsame Masse.

Shunt Higside (in Plusleitung): Der ADC kann ohne spannungsteiler an den Shunt, aber seine Stromversorgung und seine Datenleitungen dürfen nicht mit der Batteriemasse (Minusleitung) verbunden werden. Also Stromversorgung aus einem Akku oder eigenen Trafo.

Auch darf nur ein Shunt, keine kommunikationsleitungen mit Massebezug und kein weiterer mit einer eigenständigen stromquelle (PV) angeschlossen werden!

Un das zu umgehen, gibt es die schon häufiger empfohlenen Highside-Differenzverstärker z.b. INA..., die ein paar Volt Common Mode aushalten.

Mit dem Spannungsteiler hättest du dir jede ADC-Auflösung verschenkt, hat man dir hier schon vorgerechnet.

Unterm Strich ein dürftiges Konzept.

Shunt Lowside (In der Masseleitung)

Wenn (und nur wenn) alle Masseleitungen von Batterie, Last und PV fest miteinander verschaltet sind, können an genau diesem Sternpunkt mehrere Shunts eingebaut werden. Je nach stromrichtung kommt es aber zu negativen messpannungen, die zum beispiel mit einem Summierverstärker mittels offset wieder in den erlaubten ADC- Eingangsspannungsbereich gehoben werden müssen.

Insgesamt birgt die messung mittels shunt also einige Tücken. Dazu gehört eindeutig die direkte Kopplung mit dem Leistungsstromkreis der Batterie. Im einschaltmoment und beim Auslösen von Sicherungen können durch Kondensator-Ladeströme und Leitungsinduktivitäten hohe energetische Spannungsspitzen auftreten, die würden den ADC jedes mal zerstören, es sei denn du schützt seine eingänge mit einem geeigneten Filternetzwerk aus sicherungen, TVS dioden, Kondensatoren und Widerständen.

Hinzu kommen hochfrequente störungen auf den Batterieleitungen durch den geschalteten Spannungswandler im Inverter und Common-Mode Störungen durch Kapazitive kopplung aus dem AC-lastkreis. Die können dir jede Messung versauen und müssen gefiltert werden.

Die Messleitungen hast du in deinem Fall ohne Absicherung in den Batteriekreis angeschraubt. die dünne litze kann im fehlerfall, bei berühren der messeingänge mit unisoliertem werkzeug oder Schaltungsfehlern, in sekundenschnelle zum glühdraht werden, der weitere dinge Anzündet oder Isolationen im Leistungskreis beschädigt. Dünne messleitungen an leistungsstarken Batterien müssen deshalb immer allpolig, direkt an der Abzweigstelle mit einer kleinen sicherung abgesichert werden.

Die Lösung einiger dieser Probleme wäre die verwendung von Elektromagnetisch arbeitenden DC-Hallsensoren zur Strommessung. Wurde aber auch schon oft genug gesagt.

#7698195
Lesenswert?

Flip B. schrieb:

Wenn (und nur wenn) alle Masseleitungen von Batterie, Last und PV fest miteinander verschaltet sind, können an genau diesem Sternpunkt mehrere Shunts eingebaut werden. Je nach stromrichtung kommt es aber zu negativen messpannungen, die zum beispiel mit einem Summierverstärker mittels offset wieder in den erlaubten ADC- Eingangsspannungsbereich gehoben werden müssen.

Hatten wir doch auch schon. Er hat doch verschiedene Kreise, mit einzelnen Shunts. Daher ist die /galvanisch getrennte/ Differenzmessung die einzige Messmethode , die mit einem Shunt möglich ist.

#7698341
Lesenswert?

Frank O. schrieb:

Hatten wir doch auch schon. Er hat doch verschiedene Kreise, mit einzelnen Shunts.

Ok... dann weisst du und deine Glaskugel ja anscheinend nicht alles.

Beitrag "Re: OPV für Shunt-Messung (100A)"

Zweites Bild. Siehst du da die Hutschiene? Siehst du da die ganzen Kabel mit den gelben Ringkabelschuhen? Das ist MASSE der PV.

Das Bild hier...

Zwei Ausgleichschienen. Eine für VDD, eine für Masse (die Rechte).

Wie an hier sieht...

Beitrag "Re: OPV für Shunt-Messung (100A)"

Oh wunder.

Die Schaltung ist ebenfalls an der Batterie dran. Nichts externes oder sonstiges.

GEMEINSAME MASSE. Und auch generell haben WECHSELRICHTER, mit den BATTERIEN und den PV Modulen was?

Genau, GEMEINSAME MASSE.

Aber jemand der ja so schlau ist wie du... hätte das Wohlmöglich auch sehen können... mit ein wenig Bilder anschauen. Und somit kann ich "einfach an den Shunt"...

MAGIC SMOKE. Habe ich aber auch bereits oben schon einmal erwähnt.

Aber ich lese ja nicht... ich denke.. eher du..

Angehängte Dateien:
#7698343
Lesenswert?

Flip B. schrieb:

Euer Problem scheint zu sein, dass in Frank O.s Welt das Wort Galvanisch getrennte Spannungsversorgung nicht aussprechbar ist. Gleichzeitig gibt es in Tobi S.s Welt immer nur eine gemeinsame Masse.

Nein, nicht generell. In diesem Fall aber wird die Schaltung ebenso von den Batterien betrieben wie auch der WR. Somit besteht gemeinsames Potential. Und das ist so.. und muss eben damit gemacht werden...

Flip B. schrieb:

Shunt Higside (in Plusleitung): Der ADC kann ohne spannungsteiler an den Shunt, aber seine Stromversorgung und seine Datenleitungen dürfen nicht mit der Batteriemasse (Minusleitung) verbunden werden. Also Stromversorgung aus einem Akku oder eigenen Trafo.

Auch darf nur ein Shunt, keine kommunikationsleitungen mit Massebezug und kein weiterer mit einer eigenständigen stromquelle (PV) angeschlossen werden!

Ja, das kann ich aber nicht. Ich habe gemeinsame Masse und die ist so.. und bleibt so und das ist eben die "Basis" die genutzt werden soll/wird/muss

Flip B. schrieb:

Mit dem Spannungsteiler hättest du dir jede ADC-Auflösung verschenkt, hat man dir hier schon vorgerechnet.

Das ist ja das was ich auch meinte mit dem Spannungsteiler und dadurch keine "Auflösung"...

Moderator (Firma: Titel) Persönliche Seite #7698354
Lesenswert?

Also, ich würde wie schon wiederholt erwähnt, da einfach den ACS758 nehmen.

Denn dafür muss ich weder die Plus- noch die Minus-/Masseleitung auftrennen.

Dann habe ich absolut kein Problem mit irgendwelchen Potentialen. Der hält da auch mal einen anständigen Schalt-/ESD-Impuls aus weil er bis 4,8kV Isolationsspannung spezifziert ist.

Zudem liefert er eine brauchbar große Signalspannung, mit der man auch mit einem 10- oder 12-Bit-Wandler eines µC ganz einfach einen anständigen Rauschabstand erreicht. Ein Bit mehr gewinnt man, wenn man nur den unidirektionalen Betrieb braucht und den entsprechenden Wandler nimmt.

Und weil es dann nur 1 Masse gibt, ist auch der Bezugspunkt zur Spannungsmessung kein Problem, weil alle Schaltungsteile die selbe Masse haben.

Der größte Vorteil: der würde nach 2 Tagen laufen. Du müsstest nicht einen Monat lang ohne jedes brauchbare Ergebnis herumhampeln. Mich zumindest hat diese lange Liste offensichtlicher Vorteile nach kürzester Zeit überzeugt.

Moderator (Firma: Titel) Persönliche Seite #7698547
Lesenswert?

Tobi S. schrieb:

Deswegen nehme ich nun Masse ohne Spannungsteiler.

Du trennst also nach kurzer "Überredungszeit" die Masse auf.

Deine letzte Aussage zu diesem Thema war noch ganz stabil genau andersrum:

Tobi S. schrieb:

Ich habe gemeinsame Masse und die ist so.. und bleibt so und das ist eben die "Basis" die genutzt werden soll/wird/muss

Viel Spaß dann mit den 3 unterschiedlichen Massepotentialen. Es wird spannnend, weil du dann ja nicht mehr "die eine Masse" für deinen ESP hast. Und noch viel spannender, wenn du da noch externe oder weitere Schaltungen dazubastelst und gar noch einen PC dazusteckst. Dann musst du ganz genau schauen, auf welcher deiner vielen "Massen" du bist.

Frank O. schrieb:

Tobi S. schrieb:

also ADS direkt an den Shunt, nur eben Masseseitig.

Bin gespannt.

Das funktioniert sowieso nur dann, wenn der ADS auf der "richtigen" Masse sitzt und der Strom garantiert immer nur in 1 Richtung fließt. Und zwar so herum, dass jeder ADC Eingangspin immer nur positive Spannung sieht. Denn auch wenn der ADS1115 laut "FSR Full-scale input voltage range" anscheinend erst mal positive und negative Spannungen messen kann, folgt die Zeile danach eine eindeutige klare Ernüchterung: eine negative Spannung kann nur zwischen 2 Analogeingängen auftreten, also hast du -2V zwischen Ain1 und Ain2, wenn der Ain1 auf +1V ist und der Ain2 auf +3V entsprechend Ain1-Ain2 = 1V-3V = -2V. Aber die Spannung an jedem einzelnen der Analogeingänge darf niemals negativer werden als der GND-Anschluss des ADS1115.

Zumindest die Strommessung in der "Masseleitung" zum Speicher hat aber in 1 Richtung (Laden oder Entladen) sicher eine negative Spannung am Shunt.

Zeichne einfach mal deine komplette Schaltung auf mit allen Masseverbindungen auch zum µC hin. Das hast du dort oben im Beitrag "Re: OPV für Shunt-Messung (100A)" nämlich ein wenig vereinfacht. Oder eher: dort war es noch prinzipiell egal, weil ja die Masse nicht aufgetrennt wurde.

Wenn dir das alles "irgendwie zu kompliziert" ist (und es ist in der Tat nicht einfach, das auf Anhieb zu sehen), dann nimm einfach den ACS758 und du hast das Gelecke mit den Bezugspotentialen nicht.

Angehängte Dateien:
#7698576
Lesenswert?

Lothar M. schrieb:

Das funktioniert sowieso nur dann, wenn der ADS auf der "richtigen" Masse sitzt und der Strom garantiert immer nur in 1 Richtung fließt.

Ich habe da heute eh nicht den richtigen Kopf mich reinzudenken. Morgen habe ich eine Darmspieglung. Also kannst du dir sicher vorstellen, dass mich das sehr ablenkt. Wenn das funktionieren soll, wie gesagt, ich habe das noch nicht so gemacht, dann muss er aber erstmal die Massen an einem Punkt zusammen führen und in dem Stück danach, dass dann auf seine eigentliche Masse geht, da den Shunt einbauen. Ob dann der Widerstand vom Shunt höher ist, als die Übergangswiderstände. Er kann ja vorsichtshalber messen wie hoch der Gesamtwiderstand auf der Masseseite ist. Bin mir nur nicht sicher, ob die Werte dann verlässlich sind, aber funktionieren müsste das.

Beitrag #7698684 wurde von einem Moderator gelöscht.
#7698735
Lesenswert?

Soooo...

Da bin ich wieder. Ich habe dann heute mal alles an der PV Anlage Umgebaut (Erste 4 Bilder).

Die Shunts sind jetzt in der PV Masse und in der Batterie Masse eingesetzt.

Dann habe ich schnell nochmal eben ein paar Teile zusammen gelötet. (Bild 5)

Arduino ESP32. Einfach nur einen ADS1115 dran. Dazu eine GND Leitung. An A0 und A1 eine Messleitung. Fertig.

Surface dran. Example Sketch und testen.

Zustand: (Bild 6)

PV Läd nicht Wechselrichter eingeschaltet 230VAC deaktiviert

-> Der ADS1115 misst eine Differenz von 112

Zustand: (Bild 7)

PV Läd nicht Wechselrichter eingeschaltet 230VAC aktiviert (100W Verbraucher eingeschaltet)

-> Der ADS1115 misst eine Differenz von 165

Zustand: (Bild 8)

PV Läd Wechselrichter eingeschaltet 230VAC deaktiviert

-> Der ADS1115 misst eine Differenz von -77

Den Werten nach, gehe ich davon aus, das er wie erwartet, in beide Richtungen misst. Bei positiven Werten wird entladen.. Bei negativen Werten geladen.

Da ich das Beispielsketch so genommen habe wie es war, und lediglich den Gain auf 16x gestellt habe, stimmt die mV Berechnung nicht. Daher habe ich oben nur den reinen Differenzwert genannt.

Allerdings... Wie/was/wo berechnet man nun?

#7698746
Lesenswert?

Ich habe jetzt viele Rechnungen gesehen.. die sind alle ziemlich gleich. Ich verstehe nicht was da genau gerechnet wird... jedoch würden die Werte für mich plausibel klingen...

Wenn der Gain auf 16x gesetzt ist, dann steht da

// 16x gain +/- 0.256V 1 bit = 0.125mV 0.0078125mV

Was ich gefunden habe sah immer wie folgt aus...

1
amps = (rawResult * 256) / 32768;
2

3
//and if a 100 amp / 75 mv shunt is used
4

5
amps = (rawResult * 256) / 32768;
6
amps = amps *1.333;
7

8
//and if a 100amp / 50mv shunt is used
9

10
amps = (rawResult * 256) / 32768;
11
amps = amps *2;

Ich nehme dann jetzt mal Bild 6 (Wert 112)

112 * 256 / 32768 = 0,875

0,875 * 1,333 = 1,166375

Also ~ 1,17 Ampere?

Um demnach bei 24V

1,17 * 24 = 27,99 Watt... Wäre das so korrekt?

Beitrag #7698747 wurde von einem Moderator gelöscht.
#7698757
Lesenswert?

Tobi S. schrieb:

PV Läd nicht Wechselrichter eingeschaltet 230VAC aktiviert (100W Verbraucher eingeschaltet)

-> Der ADS1115 misst eine Differenz von 165

Wenn das die Rohwerte sind und du die -77 drauf rechnest (als Abgleich), dann kommt das doch in etwa hin. 100W sind ~ 0,8A. Wenn ich nachrechne, dann komme ich auf ~0,7mV für deine Messung. Vorausgesetzt, dass ich mich nicht verrechnet habe.

Moderator (Firma: Titel) Persönliche Seite #7698842
Lesenswert?

Tobi S. schrieb:

Also ~ 1,17 Ampere? Um demnach bei 24V 1,17 * 24 = 27,99 Watt..

Wenn du den Strom "ungefähr" annimmst, dann brauchst du die Leistung nicht auf zwei Nachkommastellen angeben. Das ist "Nebelkerzen werfen" und "Sand in die Augen streuen".

75 mv

Auch im Englischen wird das V von Volt groß geschrieben.

Was ich gefunden habe sah immer wie folgt aus...

1
 amps = (rawResult * 256) / 32768;
2
 amps = amps *1.333;

Wo hast du diesen kruden Rechenweg gefunden?

  1. (rawResult * 256) / 32768 ist das selbe wie rawResult / 128. Und wenn rawResult ein unsigned ist, dann bekommt das geschickte Ausrichten schon der Compiler alleine hin.
  2. wenn amps sowieso float ist, warum hampelt dann einer auch noch mit integerskalierungen herum?
  3. letztlich macht diese Rechnung mit 3 Operanden nichts anderes als amps = rawResult * 0.01042

Tobi S. schrieb:

Ich habe dann heute mal alles an der PV Anlage Umgebaut

Hast du dazu auch einen Schaltplan (das ist das Kommunikationsmittel unter Elektronikern weltweit)?

Moderator (Firma: Titel) Persönliche Seite #7699004
Lesenswert?

Tobi S. schrieb:

Ich sage mal... eine Art "Verdrahtungsplan".

Wie gesagt: du hast da die von mir erwähnten Probleme mit dem Potentialbezug.

Stell dir mal vor, dass diese Massesymbole nicht nur irgendwelche grafischen Elemente, sondern tatsächlich elektrische Verbindungen sind, über die Strom fließen kann und das sicher auch wird. Warum sollte der Massestrom von den Panels zum Akku nicht (auch) über diese (blaue) Masseverbindung fließen, statt den "Umweg" über die 2 Shunts und den Lademanager zu nehmen?

Und wie gesagt: je nach Stromrichtung ist die Messspannung am Batterieshunt auch mal negativ. Nämlich dann, wenn der Akku geladen wird (rechter roter Pfeil).

Zudem musst du "eigentlich" den A1 und den A3 gar nicht messen, weil die ja immer 0V sein müssen(!), weil sie ja direkt am GND angeschlossen sind (lila).

Wie gesagt: das Thema ist nicht ganz einfach. Man braucht einen guten Schaltplan und muss darin selber mal "Strom spielen" und sich Wege und "Abkürzungen" von A nach B suchen. Genau das tut der Strom nämlich in der Realität auch.

Angehängte Dateien:
#7699146
Lesenswert?

Ich habe mal alles abgeklemmt und "Durchgang" gemessen...

Also durch den WR ist PV Masse mit BAT Masse durchgänging. Also Multimeter piepst und zeigt 0...

Ich habe dann auch mal die Verbindung überlegt und "nachgezeichnet"...

Der ADS musst ja die Differenz. (Pinke Linie)

Die Masseverbindung ist ja eher so (gelb)

Der ADS mit dem ESP sind an einer Schaltung, haben eine Masseleitung die direkt an die Batterie geht.

Masse ist komplett durchgehend von PV Modul bis zur Batterie.

Die Kabel sind entsprechend dick... Ebenfalls die Anschlüsse.

Warum... sollte der Masse "durch" die Schaltung fließen?

"Was" passiert wenn ich jetzt den Shunt entferne (dieser z.b. durchbrennt) das weiss ich nicht. Ob dann die Messeleitungen auf einmal für Masse zuständig "werden" ist fraglich... Zumindest für mich.

Dagegen sollte, denke ich doch jeweils eine Sicherung... 100mA oder kleiner reichen um das im Fehlerfall zu "trennen".

Angehängte Dateien:
Moderator (Firma: Titel) Persönliche Seite #7699153
Lesenswert?

Tobi S. schrieb:

Die Masseverbindung ist ja eher so (gelb)

In der Elektronik ist jedes Massesymbol mit jedem anderen gleichen Massesymbol leitend verbunden. Du hast das in deinem Bild ignoriert.

Wenn deine Verdahtung aber so ist, wie du es ocker reingezeichnet hast, dann ist der Schaltplan falsch, weil er nicht deiner Schaltung entspricht und du hast tatsächlich "Glück" gehabt, weil diese Querströme nicht fließen können.

Der ADS musst ja die Differenz. (Pinke Linie)

Ich habe den Datenblattauszug oben extra für dich gepostet: er verträgt keine negativen Spannungen an einem seiner Eingangspins und kann auch keine negativen Spannungen wandeln. Weil aber der GND des ADC am Massepotential des Akkus hängt, werden sich bei 100A Ladestrom -75mV am A0 und sogar -150mV am A3 ergeben.

Angehängte Dateien:
#7699160
Lesenswert?

Lothar M. schrieb:

Wenn deine Verdahtung aber so ist, wie du es ocker reingezeichnet hast, dann ist der Schaltplan falsch, weil er nicht deiner Schaltung entspricht und du hast tatsächlich "Glück" gehabt, weil diese Querströme nicht fließen können.

Dann habe ich wohl Glück gehabt.

Also mit den Zeichen wollte ich nicht das das eine Verbindung darstellt sondern lediglich sagen/zeigen das diese verbunden sind...

Die direkten Kabel... Die sind so wie ich sie nochmal gemalt habe, daher können diese Ströme wie du sagst, und ich mir auch dachte, garnicht fließen...

Das ist ja schonmal sehr gut.

Naja.. wenn er doch keine negativen Werte kann, wieso erhalte ich dann negativ Werte und wieso vor allem sind dieses auch noch plausible Werte?

In beiden Richtungen gerechnet.

#7699169
Lesenswert?

Moin Auch wenn ich nur ein geringes Halbwissen habe und lieber die Klappe halten sollte, würde mich interessieren, was gegen einen zweiten ESP32 stricht. Also je einen, der mit seinem ADC direkt misst, für jeden Shunt. Natürlich braucht man eine zweite Trafowicklung und etwas Hühnerfutter (ev. für +- Spannung) bzw. ein zweites Netzteil. Dafür hat man keine Probleme mit enterschiedlichen Massen, Masseschleifen und Brummspannungen. Auch wenn ein ESP mal nicht zu erreichbar ist, hat man immer noch die jeweils andere Messung. Gruß Carsten

Moderator (Firma: Titel) Persönliche Seite #7699224
Lesenswert?

Tobi S. schrieb:

Also mit den Zeichen wollte ich nicht das das eine Verbindung darstellt sondern lediglich sagen/zeigen das diese verbunden sind...

Hört sich ein wenig unentschlossen an: es soll verbunden sein, darf aber nicht verbunden werden.

Im Schaltplan ist alles mit logischen 0 Ohm (in Worten "Kurzschluss mit Null Ohm") verbunden, wenn das selbe Versorgungssymbol daran angeschlossen ist oder das selbe Label dran steht.

Naja.. wenn er doch keine negativen Werte kann

Ja, das steht genau so im Datenblatt.

wieso erhalte ich dann negativ Werte und wieso vor allem sind dieses auch noch plausible Werte?

Halten wir fest: laut Datenblatt kann deine Schaltung prinzipiell nicht funktionieren. Dass sie es augenscheinlich trotzdem tut, ist dem Umstand zuzuschreiben, dass du "Glück" hast und zusätzliche zufällige Potentialverschiebungen um ein paar mV genau dafür sorgen, dass diese Forderung aus dem Datenblatt eingehalten wird.

Du hast es also geschafft, einen Bleistift auf die Spitze zu stellen. Das ist ein instabiles System. Irgendwann fällt der um.

Carsten-Peter C. schrieb:

würde mich interessieren, was gegen einen zweiten ESP32 stricht.

Doppelter Programmier- und Datenverwaltungsaufwand. Doppelt so viele Bauteile, die kaputt gehen könnten.

Billiger, einfacher und problemloser sind die angesprochenen potentialfreien Stromwandler.

#7700573
Lesenswert?

#7701059
Lesenswert?

Sooo.. sorry. Hatte etwas viel um die Ohren.

Habe das ganze jetzt mal angeschlossen und mir ein kleines Sketch erstellt.

Bekomme jetzt erst einmal die Daten..

Jetzt mal schauen, was ich damit wie wo berechnen und machen kann...

Hab mal ein paar Screenshots eingefügt.

Anhand der Dateinamen sieht man ja auch die Uhrzeiten. Also die werte ändern sich. Hatte dann mal einen Verbraucher an, und da waren die Werte auch wieder anders.

Scheint "soweit" zu stimmen. Die Voltage angaben sind nicht korrekt. Ich berechne 27,1V es sind aber (Multimeter) 26,2V. Da muss ich noch etwas nachbessern.

1
#include <Adafruit_ADS1X15.h>
2
#include <WiFiManager.h>
3

4
#define PIN_SYS_ADC A1
5
#define PIN_PV_ADC A0
6

7
Adafruit_ADS1115 ads;  /* Use this for the 16-bit version */
8

9
// Date & Time
10
int day = 0;
11
int month = 0;
12
int year = 0;
13

14
int hour = 0;
15
int minute = 0;
16
int second = 0;
17

18
// ADC Data
19
int16_t adc_pv_shunt;
20
int16_t adc_pv_shunt_last;
21
int16_t adc_sys_shunt;
22
int16_t adc_sys_shunt_last;
23

24
int16_t adc_pv;
25
int16_t adc_pv_last;
26
int16_t adc_sys;
27
int16_t adc_sys_last;
28

29

30
float multiplier = 0.0078125F; /* ADS1115  @ +/- 6.144V gain (16-bit results) */
31

32
// Timer
33
unsigned long currentTime = millis();
34
unsigned long previousTime = 0;
35
const long timeoutTime = 100;
36
boolean adcTick = false;
37
boolean serialTick = false;
38

39
// WiFi
40

41
WiFiServer server(80);
42
String header;
43

44

45
void setup(void)
46
{
47
  Serial.begin(115200);
48
  Serial.println("PVWatch started.");
49
  WiFiManager wm;
50

51
  ads.setGain(GAIN_SIXTEEN);    // 16x gain  +/- 0.256V  1 bit = 0.125mV  0.0078125mV
52

53
  Serial.println("ADS Initialize.");
54
  if (!ads.begin()) {
55
    Serial.println("Failed to initialize ADS.");
56
    while (1);
57
  }
58

59
  bool res;System
60
    res = wm.autoConnect("PVWatch"); // password protected ap
61

62
    if(!res) {
63
        Serial.println("Failed to connect");
64
        // ESP.restart();
65
    } 
66
    else { 
67
        Serial.println("WiFi connected");
68
        server.begin();
69
    }
70

71
}
72

73
float voltageMap(float x, float in_min, float in_max, float out_min, float out_max) {
74
  return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
75
}
76

77
void readSysAdc () {
78
  adc_sys = analogRead(PIN_SYS_ADC);
79
}
80

81
void readSysShunt() {
82
  adc_sys_shunt = ads.readADC_Differential_0_1();
83
}
84

85
void readPvShunt() {
86
  adc_pv_shunt = ads.readADC_Differential_2_3();
87
}
88

89
void readPvAdc() {
90
  adc_pv = analogRead(PIN_PV_ADC);
91
}
92

93
void systemClock() {
94
  if (previousTime % 10 == 0) {
95
    second++;
96
    if (second > 59) {
97
      minute++;
98
      second = 0;
99
    }
100
    if (minute > 59) {
101
      minute = 0;
102
      hour++;
103
    }
104
    if (hour > 23) {
105
      hour = 0;
106
    }
107
  }
108
}
109

110
void systemTimer() {
111
  if (millis() > timeoutTime + currentTime ) {
112
    currentTime = millis();
113
    previousTime++;
114
    if (previousTime > 100) {
115
      previousTime = 0;
116
    }
117
    if (previousTime % 5 == 0) {
118
      adcTick = true;
119
    }
120
    if (previousTime % 10 == 0) {
121
      serialTick = true;
122
    }
123
    systemClock();
124
  }
125
}
126

127
void pvWebServer() {
128
  WiFiClient client = server.available();   // Listen for incoming clients
129
  if (client) {                             // If a new client connects,
130
  String currentLine = "";                // make a String to hold incoming data from the client
131
  while (client.connected()) {            // loop while the client's connected
132
    if (client.available()) {             // if there's bytes to read from the client,
133
      char c = client.read();             // read a byte, then
134
      Serial.write(c);                    // print it out the serial monitor
135
      header += c;
136
      if (c == '\n') {                    // if the byte is a newline character
137
        // if the current line is blank, you got two newline characters in a row.
138
        // that's the end of the client HTTP request, so send a response:
139
        if (currentLine.length() == 0) {
140
          // HTTP headers always start with a response code (e.g. HTTP/1.1 200 OK)
141
          // and a content-type so the client knows what's coming, then a blank line:
142
          client.println("HTTP/1.1 200 OK");
143
          client.println("Content-type:text/html");
144
          client.println("Connection: close");
145
          client.println();
146
            
147
          // turns the GPIOs on and off
148
          if (header.indexOf("GET /time/update") >= 0) {
149
            //dateupdate = true;
150
          }
151
       
152
          // Display the HTML web page
153
          client.println("<!DOCTYPE html><html>");
154
          client.println("<head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">");
155
          client.println("<link rel=\"icon\" h_ref=\"data:,\">");
156
          // CSS to style the on/off buttons 
157
          // Feel free to change the background-color and font-size attributes to fit your preferences
158
          client.println("</head>");
159
            
160
          // Web Page Heading
161
          client.println("<body><h1>PV Info System</h1>");
162

163
          client.println("<p>System ADC: ");
164
          client.println(adc_sys);
165
          client.println("</p>");
166

167
          client.println("<p>System Voltage: ");
168
          client.println(voltageMap(adc_sys, 0, 4095, 0, 30.5));
169
          client.println(" Volt</p>");
170
          
171
          
172
          client.println("<p>PV ADC: ");
173
          client.println(adc_pv);
174
          client.println("</p>");
175

176
          client.println("<p>PV Voltage: ");
177
          client.println(voltageMap(adc_pv, 0, 4095, 0, 61.5));
178
          client.println("</p>");
179

180

181
          client.println("<p>Differenz System: ");
182
          client.println(adc_sys_shunt);
183
          client.println("</p>");
184

185
          client.println("<p>Differenz PV: ");
186
          client.println(adc_pv_shunt);
187
          client.println("</p>");
188

189

190
          client.println("<p><a h_ref=\"/\"><button class=\"button\">Refresh</button></a></p>");
191

192
          client.println("</body></html>");
193
            
194
          // The HTTP response ends with another blank line
195
          client.println();
196
          // Break out of the while loop
197
          break;
198
        } else { // if you got a newline, then clear currentLine
199
          currentLine = "";
200
        }
201
      } else if (c != '\r') {  // if you got anything else but a carriage return character,
202
        currentLine += c;      // add it to the end of the currentLine
203
      }
204
    }
205
  }
206
  // Clear the header variable
207
  header = "";
208
  // Close the connection
209
  client.stop();
210
  Serial.println("Client disconnected.");
211
  Serial.println("");
212
  }
213
}
214

215
void loop(void)
216
{
217
  systemTimer();
218
  pvWebServer();
219

220
  if (adcTick == true) {
221
    readSysAdc();
222
    readSysShunt();
223
    readPvShunt();
224
    readPvAdc();
225
    adcTick = false;
226
  }
227

228
  if (serialTick == true) {
229
    if (adc_sys != adc_sys_last) {
230
      Serial.print("System: "); Serial.print(adc_sys); Serial.print(" / Voltage: ");
231
      Serial.println(voltageMap(adc_sys, 0, 4095, 0, 30.5));
232
      adc_sys_last = adc_sys;
233
    }
234

235
    if (adc_sys_shunt != adc_sys_shunt_last) {
236
      Serial.print("System Shunt: "); Serial.println(adc_sys_shunt);
237
      adc_sys_shunt_last = adc_sys_shunt;
238
    }
239
    
240
    if (adc_pv != adc_pv_last) {
241
      Serial.print("PV: "); Serial.print(adc_pv);  Serial.print(" / Voltage: ");
242
      Serial.println(voltageMap(adc_pv, 0, 4095, 0, 61.5));
243
      adc_pv_last = adc_pv;
244
    }
245

246
    if (adc_pv_shunt != adc_pv_shunt_last) {
247
      Serial.print("PV Shunt: "); Serial.println(adc_pv_shunt);
248
      adc_pv_shunt_last = adc_pv_shunt;
249
    }
250
    serialTick = false;
251
  }
252

253
}

Durch das

1
ads.setGain(GAIN_SIXTEEN);

Wird der Gain des ADS1115 auf 16 gesetzt. Also hat jedes Bit (jeder ADC Wert?) 0.0078125mV. Verstehe ich das richtig?

Moderator (Firma: Titel) Persönliche Seite #7701073
Lesenswert?

Tobi S. schrieb:

Habe das ganze jetzt mal angeschlossen

Donnerwetter, tolles Durchhaltevermögen. Don Quijote ist verglichen mit dir ein Feigling und gibt sofort auf. Ich habe jetzt aber genug damit, der Sancho Pansa zu sein, der seinen Don standhaft durch jeden Blödsinn begleitet.

Bitte beachten, was über jedem Texteingabefeld steht:

Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren