Arduino Forum

International => Deutsch => Topic started by: meister_q on Aug 08, 2017, 07:54 pm

Title: Spannung messen (maximal 15V)
Post by: meister_q on Aug 08, 2017, 07:54 pm
Moin Leute,

mal wieder das Thema Spannung Messen.

Ich bin dran, die Spannung von 12 KFZ Batterien zu messen.

Ich weiss, dass die Batterien beim Laden nie 15V erreichen werden, aber ich dachte, 15V als maximale Spannung festzulegen, ist nicht schlecht, so kann ich den Spannungsteiler mit 10kOhm zu 5kOhm auslegen.

So habe ich die Schaltung auch aufgebaut (siehe Schaltplan).

Als Spannungsquelle nutze ich momentan einen DCDC Wandler den ich auf 12V eingestellt habe. Jetzt messe ich ja 0-5V an dem 5kOhm Widerstand was ja 0-1023 entspricht.

Habe mir folgenden Code zusammengebaut:

Code: [Select]

#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x3F, 16, 2);

const int messungen = 20;

int batterie1Pin = A0;
float messung[messungen];
float spannung = 0.0;
float gesammtmessung = 0.0;


void setup()
{
  Serial.begin(9600);
  pinMode(batterie1Pin, INPUT);

  lcd.begin();          // LCD Starten
  lcd.backlight();      // LCD backlight aktivieren
  lcd.clear();          // LCD Säubern

}

void loop()
{
  for (int i = 0; i < messungen; i++)
  {
    messung[i] = analogRead(batterie1Pin); // anstatt i dann den Sensorwert rein
  }

  for (int i = 0; i < messungen; i++)
  {
    gesammtmessung = gesammtmessung + messung[i];
  }

  gesammtmessung = gesammtmessung / messungen;

  //  gesammtmessung = (messung[0] + messung[1] + messung[2] + messung[3] + messung[4]) / messungen;



  spannung = gesammtmessung * 15 / 1023;

  Serial.print("AR: ");
  Serial.println(gesammtmessung);
  Serial.print("Spannung: ");
  Serial.print(spannung);
  Serial.println("V");
  LCD();
  delay(2000);
}

void LCD()
{
  lcd.setCursor(0, 0);
  lcd.print("B1: ");
  if (spannung < 10)
  {
    lcd.print(" ");
    lcd.print(spannung);
    lcd.print("V");
  }
  else
  {
    lcd.print(spannung);
    lcd.print("V");
  }
}


Der Code ist nur zum Testen, sonst würde ich niemals delay benutzten.

Bei 12,65V eingestellt am DCDC Wandler (mit Multimeter eingestellt), misst der Arduino aber 15.54V (wenn das Poti auf 5kOhm gestellt wird.

Drehe ich das Poti jetzt runter, bis mir Arduino und Multimeter das selbe anzeigen, hat das Poti einen Wert von 3,66kOhm (mit Multimeter gemessen).

Kann man in dem falle sagen, dass ich das ganze so verlöten und verbauen kann, oder ist das pfusch?

2. Punkt: wird das mit Schaltplan und Board so funktionieren? (Habe keinerlei erfahrung mit Eagle und PCB design)

Danke!
Title: Re: Spannung messen (maximal 15V)
Post by: Tommy56 on Aug 08, 2017, 08:06 pm
Zum Testen kannst Du das mit Potis machen, zum realen Betrieb würde ich es nicht machen.
Potis neigen im Laufe der Zeit dazu, den Wert zu ändern (z.B. durch Oxydation am Schleifer).

Die Abweichungen kommen wohl von den Toleranzen der Widerstände. Lieber durch geeignete Widerstandskombinationen den Wert mit Festwiderständen optimieren.

Ich weiß nicht, wie belastbar Deine Quelle ist (ist es direkt die Spannung im Fahrzeug?). Wenn sie das ab kann, würde ich die Widerstände um den Faktor 10 niedriger nehmen, das verringert die Störanfälligkeit.

Gruß Tommy
Title: Re: Spannung messen (maximal 15V)
Post by: meister_q on Aug 08, 2017, 08:12 pm
Danke für die Antwort.

Also es sind 2 Batterien im Boot. 120Ah und.. 100Ah wenn ich mich nicht irre.

Also sollte ich Widerstände mit 0.1% Toleranz wählen? 1k und 500Ohm wäre ja Faktor 10 kleiner.
Title: Re: Spannung messen (maximal 15V)
Post by: Tommy56 on Aug 08, 2017, 08:26 pm
Das wären 10 mA Dauerstrom. Wie lange bleiben die Batterien ohne dass sie geladen werden?
Ich war von Auto/Motorrad ausgegangen, die ja öfter benutzt und dabei geladen werden.
Wobei Du die Akkus wahrscheinlich in der Winterpause sowieso ausbaust.

Entweder präzise Widerstände nehmen oder aus der Bastelkiste ausmessen und evtl. kombinieren (also z.B. noch 10 Ohm in Reihe, wenn da was fehlt).

Dir ist auch bewußt, dass die Betriebsspannung des Arduino mit in die Messung eingeht, weil sie im Normalfall als Referenz genommen wird und rechnerisch mit 5V betrachtet wird.

Wenn es genauer sein soll, die interne Referenz benutzen oder eine externe Referenzspannungsquelle benutzen. Du kannst den Unterschied auch in der Software rausrechnen.

Das hängt stark davon ab, wofür Du den Messwert brauchst. Wenn es nur eine Info sein soll, reicht +-0,5V durchaus. Das wissen wir aber nicht.

Gruß Tommy
Title: Re: Spannung messen (maximal 15V)
Post by: meister_q on Aug 08, 2017, 08:36 pm
Nun, die Batterie wird im Hafen (bei nichtbenutzung) permanent über ein Ladegerät am leben erhalten. Bei fahrt wird sie klar durch den Motor geladen, und ansonsten steht das Boot höchstens eine Nacht irgendwo ohne geladen zu werden irgendwo rum.

Das mit der Betriebsspannung ist mir auch bewusst, allerdings verstehe ich nicht wie. Die erklärungen dazu im Netz finde ich merkwürdig.

Das ich die Aref irgendwie nutzen muss, ist mir bewusst. Nur wie?

Mein Schwager hat mich beauftragt, eine Spannungsanzeige für seine 2 Batterien zu bauen. Also soll nur die aktuell anliegende Spannung anzeigt werden.

Ein Tiefenentladeschutz ist separat verbaut (ein Kaufteil, da mir schon bewusst war, dass das nicht so einfach ist).
Title: Re: Spannung messen (maximal 15V)
Post by: Tommy56 on Aug 08, 2017, 08:49 pm
Ok, dann sind die 10 mA kein Problem.

Der Arduino benutzt (ohne besondere Einstellungen) seine Betriebsspannung als Referenzspannung und definiert diese als 5V.

Das klappt auch meistens, wenn die Messignale aus dieser Betriebsspannung abgeleitet werden (z.B. Fotowiderstand am Spannungsteiler, aber aus 5V Arduino gespeist).

Du hast das Problem, dass die zu messnde Spannung eine Fremdspannung ist, also nicht von der Arduino-Betriebsspannung abhängt.

Du gehst also entweder
1) -- auf die interne Referenz von 1,1V = 1023 und dimensionierst Deinen Spannungsteiler darauf,
2) -- schließt eine externe 5V-Referenz an (da gibt es spezielle IC/Platinen mit Temperaturkompensation)
3) -- misst die reale Versorgungsspannung des Arduino ond setzt diese in die Berechnung ein (nicht Temperaturstabil)
4) -- nimmst die Spannung so, wie sie ist und rechnest die ermittelte Differenz raus (nicht temperaturstabil)

Für eine Anzeige der Batteriespannung halte ich die Variante 3 für ausreichend.

Gruß Tommy
Title: Re: Spannung messen (maximal 15V)
Post by: meister_q on Aug 08, 2017, 08:59 pm
Achso, verstehe!

Von den 4 Wegen gefällt mir der 3. weg sehr gut, wie du es ja auch schon gesagt hast.

Kommt meine nächste frage: Wie rechne ich die reale Versorgungsspannung mit ein? Ich messe zwischen Aref und GND von der Platine 4,33V. Das ist also meine Versorgungsspannung?

Title: Re: Spannung messen (maximal 15V)
Post by: Tommy56 on Aug 08, 2017, 09:05 pm
Dreisatz?

1024 Schritte entsprechen 4,33 V
input (0-1023 also 1024 Schritte) entspricht Spannung

Spannung = input * 4,33 /1024

Gruß Tommy
Title: Re: Spannung messen (maximal 15V)
Post by: meister_q on Aug 08, 2017, 09:26 pm
Ich hab ja

Code: [Select]

  spannung = gesammtmessung * 15 / 1023;


Also ersetze ich die 15 mit 4,33, und Teile wieder durch 1024?

Ich steh gerade auf dem schlauch.
Title: Re: Spannung messen (maximal 15V)
Post by: combie on Aug 08, 2017, 09:45 pm
Quote
1) -- auf die interne Referenz von 1,1V = 1023 und dimensionierst Deinen Spannungsteiler darauf,
Das halte ich für das Mittel der Wahl!
100nF Kerkos an den A Pins erlauben dann hohe Messwiderstände.
z.B: 10K zu 150K
Die Kombination hält Störpulse außen vor.
Die Betriebsspannung spielt keine Rolex mehr.

Wenigstens eine 1 Punkt Kalibrierung ist sinnvoll
Damit sind dann auch die konkreten Widerstandswerte egal, solange sie im Rahmen bleiben.
Und auch die 10%ige Toleranz der 1,1V Referenz wird gleich mit erschlagen.

Den Kalibrierwert(Steigung) kann man im EEPROM ablegen.

Einfacher und genauer bekommt man es nicht.
*persönliche Ansicht*


Title: Re: Spannung messen (maximal 15V)
Post by: Tommy56 on Aug 08, 2017, 09:59 pm
Dann so, den Spannungsteiler habe ich ignoriert.

Das Ergebnis musst Du noch mit Deinem gemessenen Spannungsteilerverhältnis multiplizieren.

Also Umess (am Arduino) = R2 (am Arduino) /(R1+R2) * Ubatterie


Spannung = input * 4,33 /1024

mit input = Umess

Spannung = R2 / (R1+R2) * 4,33/1024

Ich hoffe, ich habe mich nicht verhauen. Da korrigiert mich aber jemand.

Gruß Tommy
Title: Re: Spannung messen (maximal 15V)
Post by: Tommy56 on Aug 08, 2017, 10:01 pm
@combie: Das ist auf jeden Fall genauer und auch nicht mehr Aufwand.

Gruß Tommy
Title: Re: Spannung messen (maximal 15V)
Post by: Doc_Arduino on Aug 08, 2017, 10:20 pm
Hallo,

ich muss den derzeitigen Mess- und Testaufbau kritisieren. Egal welche Umrechnungsformel du verwendest, sobald du am 5k Poti drehst verstellst du alles. Das geht so nicht. Der Messspannungsteiler am analogen Eingang muss fest sein. Ansonsten verstellst du permanent das Teilerverhältnis und es muss Mist rauskommen. Bleibe meinetwegen bei den 10k und 5k (oder andere wie vorgeschlagen) aber mit Festwiderständen. Am Eingang des Messspannungsteiler, also oben am 10k, dort kannste mit einem Poti drehen wie die lustig bist. Dann ändert sich nur die Eingangsgröße am festen Teiler.

Nochwas. Du misst die Batteriespannung nicht im Auto? Die Batterien stehen wo rum und die willst du messen.

Title: Re: Spannung messen (maximal 15V)
Post by: meister_q on Aug 08, 2017, 10:25 pm
Dann so, den Spannungsteiler habe ich ignoriert.

Das Ergebnis musst Du noch mit Deinem gemessenen Spannungsteilerverhältnis multiplizieren.

Also Umess (am Arduino) = R2 (am Arduino) /(R1+R2) * Ubatterie


Spannung = input * 4,33 /1024

mit input = Umess

Spannung = R2 / (R1+R2) * 4,33/1024

Ich hoffe, ich habe mich nicht verhauen. Da korrigiert mich aber jemand.

Gruß Tommy
Das Teste ich morgen mal, danke.


Nochwas. Du misst die Batteriespannung nicht im Auto? Die Batterien stehen wo rum und die willst du messen.
Nein, im Boot. Bei Betrieb, weil die anzeige ja egal ist, wenn das Boot im Hafen steht.

Ich hab mir jetzt 1% Widerstände in allen Größen geordert. Damit baue ich den Messaufbau erneut auf.
Title: Re: Spannung messen (maximal 15V)
Post by: Doc_Arduino on Aug 08, 2017, 10:42 pm
Hallo,

das mit dem Festspannungsteiler haste hoffentlich gelesen.
Wenn du im Boot misst, also bei laufenden Motor und damit laufender Lichtmaschine, wirst du sicherlich wie im Auto Störungen auf dem Bordnetz haben. Dann funktioniert die Schaltung so nicht bzw. nur kurze Zeit.
a) Spannungsversorgung für den Arduino schützen
b) Messeingang schützen
c) damit musst du auch den Spannungsteiler größer wählen, womit für mich die interne 1,1V Referenz unbrauchbar wird
Title: Re: Spannung messen (maximal 15V)
Post by: combie on Aug 08, 2017, 11:29 pm
Quote
c) damit musst du auch den Spannungsteiler größer wählen, womit für mich die interne 1,1V Referenz unbrauchbar wird
Einspruch!

Solange man keine sehr schnellen Änderungen zeigen muss:
Quote
100nF Kerkos an den A Pins erlauben dann hohe Messwiderstände.
z.B: 10K zu 150K
Das geht allerdings nicht, wenn man Vcc als Referenz wählt.
Title: Re: Spannung messen (maximal 15V)
Post by: uwefed on Aug 08, 2017, 11:32 pm
Ich tendiere auch für Lösung 1 mit 1,1V interne Referenz. Die ist zwar nicht sonderlich genau aber stabiel. Kalibrieren kannst Du ja mittels eines Multimeters.

Der Vorteil ist daß:
1) die Störspannungen im Bordnetz bei ein bzw ausschalten von Lasten und langsames Nachregeln der Lichtmaschiene nicht den Arduino kaputtmachen. Ein Eingang kann egal von der Referenz 5V vertragen. Bei einem Spannungsteiler für 14V zu 1,1V sind Spannungen an der Batterie bis ca 60V Spitzenspannung für den Arduino ungefäkrlich. Zusätzlich kann am analogen Eingen deine Zenerdiode für 3V und eine Transzendensdiode für 5V geschaltet werden und so den Eingang schützen. Auch Scottkydioden zwischen Eingang und Masse/Versorgungsspannung (in Sperrrichtung gepolt) leiten Überspannungsspitzen ab. Ein Kondensator von 0,1µF am analogen Eingang zu Masse verbessert die Auslesegenauigkeit der ersten Messung (der interne sample and Hold Kondensator wird sofort auf endwert geladen).

Natürlich muß die Spannungsversorgung auch gegen
Grüße Uwe
Title: Re: Spannung messen (maximal 15V)
Post by: RIN67630 on Aug 09, 2017, 08:22 am
Bleibe meinetwegen bei den 10k und 5k (oder andere wie vorgeschlagen) aber mit Festwiderständen.
Wo hast Du gängige feste Widerstände gefunden, die als Spannungsteiler (z.B. 1:10) taugen?
Dummerweise braucht man dazu ein Verhältnis R zu 9R.

Das gibt die Standardwiderstandsreihe nicht her.
Wo gibt es 5KΩ Widerstände?

Ich muss etwas nehmen, das ungefähr passt und in Software anpassen.
Title: Re: Spannung messen (maximal 15V)
Post by: gregorss on Aug 09, 2017, 08:26 am
Ich muss etwas nehmen, das ungefähr passt und in Software anpassen.
Dann nimm doch Werte, die in den Widerstandsreihen vorkommen. Oder spricht etwas dagegen?

Gruß

Gregor
Title: Re: Spannung messen (maximal 15V)
Post by: combie on Aug 09, 2017, 08:32 am
Quote
Ich muss etwas nehmen, das ungefähr passt und in Software anpassen.
Die Kalibrierung.
(mein reden seit dem jahr 1855)
Title: Re: Spannung messen (maximal 15V)
Post by: hajos118 on Aug 09, 2017, 09:01 am
Bei der Aufgabenstellung:
Nimm ein Modul, wie z.B. dieses: https://www.reichelt.de/Messinstrumente-LCD/LDP-140-LCD/3/index.html?ACTION=3&GROUPID=4041&ARTICLE=36409&OFFSET=100&

dazu einen "LowDrop Spannungsregler 9V" und einen Spannungsteiler aus min. 1% Widerständen ...
Title: Re: Spannung messen (maximal 15V)
Post by: HotSystems on Aug 09, 2017, 10:42 am
Bei der Aufgabenstellung:
Nimm ein Modul, wie z.B. dieses: https://www.reichelt.de/Messinstrumente-LCD/LDP-140-LCD/3/index.html?ACTION=3&GROUPID=4041&ARTICLE=36409&OFFSET=100&

dazu einen "LowDrop Spannungsregler 9V" und einen Spannungsteiler aus min. 1% Widerständen ...
Das wird dem TO sicher nicht reichen.
Wenn er etwas mit einem Arduino machen möchte, dann sicher nicht nur messen.
Title: Re: Spannung messen (maximal 15V)
Post by: gregorss on Aug 09, 2017, 11:13 am
Wenn er etwas mit einem Arduino machen möchte, dann sicher nicht nur messen.
Woraus schließt Du das? Ich habe den Thread nur überflogen, aber IMO ist da immer nur die Rede von „Spannung messen".

Gruß

Gregor
Title: Re: Spannung messen (maximal 15V)
Post by: HotSystems on Aug 09, 2017, 11:29 am
Woraus schließt Du das? Ich habe den Thread nur überflogen, aber IMO ist da immer nur die Rede von „Spannung messen".
Ganz einfach...wenn ich etwas mit einem Arduino mache, möchte ich immer noch mehr damit erledigen.
Mit dem Messen fängt er an...

Einfach nur eine Funktion ausführen, da langweilt Ardu der sich doch und kündigt. ;) ;)
Title: Re: Spannung messen (maximal 15V)
Post by: gregorss on Aug 09, 2017, 11:37 am
...wenn ich etwas mit einem Arduino mache, möchte ich immer noch mehr damit erledigen.
Mit dem Messen fängt er an...
Wenn er es denn einmal hinbekäme. Von „danke, klappt" habe ich leider noch nichts gelesen.

Dieser Thread hat schon zwei Seiten mit über 20 Postings. Das alles nur, um eine Spannung zu messen?! Ich bin mal gespannt, nach wieviel hundert Postings oder Seiten I²C drankommt ...

Gruß

Gregor
Title: Re: Spannung messen (maximal 15V)
Post by: HotSystems on Aug 09, 2017, 11:48 am
Wenn er es denn einmal hinbekäme. Von „danke, klappt" habe ich leider noch nichts gelesen.
Stimmt.... das lese ich hier auch immer seltener.
Liegt wohl daran, dass die meisten meinen, einmal hier angemeldet und das gesamte NowHow fliegt ihnen ungefragt zu.

Quote
Dieser Thread hat schon zwei Seiten mit über 20 Postings. Das alles nur, um eine Spannung zu messen?! Ich bin mal gespannt, nach wieviel hundert Postings oder Seiten I²C drankommt ...
Woher nimmst du jetzt diese Annahme ?
I2C steht doch auf einem anderen Blatt. ;)
Title: Re: Spannung messen (maximal 15V)
Post by: gregorss on Aug 09, 2017, 12:12 pm
I2C steht doch auf einem anderen Blatt. ;)
Ist aber auch von Arduino *g*

Gruß

Gregor
Title: Re: Spannung messen (maximal 15V)
Post by: combie on Aug 09, 2017, 12:18 pm
Quote
Von „danke, klappt" habe ich leider noch nichts gelesen.
Das Problem ist noch keine 24H alt.
Und schon drängeln?
Title: Re: Spannung messen (maximal 15V)
Post by: MiReu on Aug 09, 2017, 12:23 pm
Er will auch Öltemp und Lade-/Entladeströme messen.

Sein Schwager stellt mehr Ansprüche als nur die Spannungsanzeige.

Natürlich kommt noch I²C oder SPI oder wie sollen die Werte angezeigt werden? ;)

Ich hab übrigens 10k und 4k7 1% Metallfilm genommen, der Rest wird bei der Rechnung angepasst, da eine Spannungsanzeige in solchen Fällen nie genau sein muss.

Gruß

MiReu
Title: Re: Spannung messen (maximal 15V)
Post by: gregorss on Aug 09, 2017, 12:38 pm
Das Problem ist noch keine 24H alt.
Dass Du ein fünf-Minuten-Problem auf 24 Stunden aufblasen kannst, kann ich mir vorstellen :-)

Gruß

Gregor
Title: Re: Spannung messen (maximal 15V)
Post by: HotSystems on Aug 09, 2017, 12:44 pm
Ist aber auch von Arduino *g*

Ach, wusste ich garnicht.
Title: Re: Spannung messen (maximal 15V)
Post by: HotSystems on Aug 09, 2017, 12:49 pm
Er will auch Öltemp und Lade-/Entladeströme messen.
Wo steht das ?

Quote
Natürlich kommt noch I²C oder SPI oder wie sollen die Werte angezeigt werden? ;)
Und das geht auch parallel oder seriell (uart).
Title: Re: Spannung messen (maximal 15V)
Post by: MiReu on Aug 09, 2017, 12:54 pm
Wo steht das ?
In dem Thread wo es um Öltemp und dem wo es um Strom geht. Beim Öltemp hast du dich doch auch schon beteiligt (Strom weiß ich gerade nicht) ;)

Und das geht auch parallel oder seriell (uart).

Pingelheimer :D ;) dann kommt halt dies zur Sprache. Wobei ich nicht glaube das er da noch genug Ausgänge zur Verfügung hat, mit dem ganzen anderen Gerödel - ist nur ne Vermutung.
Title: Re: Spannung messen (maximal 15V)
Post by: HotSystems on Aug 09, 2017, 01:02 pm
In dem Thread wo es um Öltemp und dem wo es um Strom geht.
Na super.
Dann wirst du zukünftig das Forum durchforsten,ob der jeweilige TO noch weitere Threads gepostet hat, die zum Thema passen könnten.
Neee, soll doch der TO mehr Infos liefern.

Quote
Pingelheimer :D ;) dann kommt halt dies zur Sprache.
Wenn du das sagst.
Title: Re: Spannung messen (maximal 15V)
Post by: MiReu on Aug 09, 2017, 01:27 pm
Na ich bin doch Anfänger und da lese ich (fast) alles und versuche mir auch zu merken wer was wie schreibt um zu wissen wer hier die Guten und wer die "Wichtigmacher" sind.

Dich zähle ich übrigens jetzt schon zu den Guten.

Manchmal versuche ich etwas Witz in meine Posts zu bringen. Wenn dies hier nicht gerne gesehen wird, dann bitte ich dies mir mitzuteilen - Danke (zur Bemerkung Pingelheimer)
Title: Re: Spannung messen (maximal 15V)
Post by: hajos118 on Aug 09, 2017, 02:11 pm
... und ich helfe zu den Infos, die der Thread Starter in diesem Faden gibt...
Andere Infos verweise ich ganz einfach in das Land der Sagen und Legenden ;-)
Title: Re: Spannung messen (maximal 15V)
Post by: meister_q on Aug 09, 2017, 05:18 pm
Bleibt Mal locker. Ich bin unterwegs und hatte noch nichtmal Zeit hier überhaupt zu lesen. Ich muss leider auch arbeiten, weiss nicht was ihr den ganzen Tag macht? Achja. Vorurteile schaffen, dass ich I²C oder SPI oder oder... Achja: nicht danke sagen will.

Entspannt euch, danke für eure Hilfe vorab , ich hab einfach noch nicht die Zeit gefunden weiter zu machen. Der thread ist noch keine 24 Stunden alt...

Macht Mal bitte halblang.
Title: Re: Spannung messen (maximal 15V)
Post by: HotSystems on Aug 09, 2017, 05:22 pm
Macht Mal bitte halblang.
Hallo....wir sind entspannt, was man wohl von dir nicht sagen kann.
Also einfach locker bleiben. ;)
Title: Re: Spannung messen (maximal 15V)
Post by: Tommy56 on Aug 09, 2017, 05:31 pm
weiss nicht was ihr den ganzen Tag macht? Achja. Vorurteile schaffen
Wer ist denn hier nicht entspannt?

Gruß Tommy
Title: Re: Spannung messen (maximal 15V)
Post by: Doc_Arduino on Aug 09, 2017, 06:32 pm
Hallo,

also wenn ich mir den Thread so anschaue, frage ich mich schon warum der wieder einmal versaut wurde mit sinnlosen Querinformationen die der TO hier in diesem Thread nie gestellt hat. Hier dreht es sich allein um eine Spannungsmessung. Nicht mehr und nicht weniger. Der Rest sind wirklich nur eingestreute Vermutungen die alles verkomplizieren aber niemanden nutzen. Und was ich gar nicht leiden kann ist, wenn man erst Druck macht, dass sich der TO melden soll, danke sagen soll und ähnliches, wofür es noch keinen Grund gibt, kam ja noch nicht das gewünschte Ergebnis für ihn raus und in der nächsten Minute verlangt man Lockerheit. Ne Leute, dass passt vorne und hinten nicht zusammen. Das muss ich mal ganz klar sagen. Meister_Q muss sicherlich nicht erst locker werden. Er ist es zum Glück.
Title: Re: Spannung messen (maximal 15V)
Post by: meister_q on Aug 09, 2017, 08:24 pm
Das wird dem TO sicher nicht reichen.
Wenn er etwas mit einem Arduino machen möchte, dann sicher nicht nur messen.
Ganz einfach...wenn ich etwas mit einem Arduino mache, möchte ich immer noch mehr damit erledigen.
Mit dem Messen fängt er an...

Einfach nur eine Funktion ausführen, da langweilt Ardu der sich doch und kündigt. ;) ;)
Ja mal sehen, aber es ist nichts weiter geplant, außer die Spannungsmessung und Anzeige, vielleicht irgendwann mal mehr, weil das ist ja wirklich keine aufgabe für den kleinen :P




Woraus schließt Du das? Ich habe den Thread nur überflogen, aber IMO ist da immer nur die Rede von „Spannung messen".

Gruß

Gregor
Richtig.


Wenn er es denn einmal hinbekäme. Von „danke, klappt" habe ich leider noch nichts gelesen.

Dieser Thread hat schon zwei Seiten mit über 20 Postings. Das alles nur, um eine Spannung zu messen?! Ich bin mal gespannt, nach wieviel hundert Postings oder Seiten I²C drankommt ...

Gruß

Gregor
Bitte? Lass mir mal bitte etwas mehr Zeit als weniger 24 stunden. Ich bin noch garnicht dazu gekommen.

Wenn er es denn einmal hinbekäme. Von „danke, klappt" habe ich leider noch nichts gelesen.

Dieser Thread hat schon zwei Seiten mit über 20 Postings. Das alles nur, um eine Spannung zu messen?! Ich bin mal gespannt, nach wieviel hundert Postings oder Seiten I²C drankommt ...

Gruß

Gregor
Hör bitte auf sachen, die hier nicht relevant sind, einzubinden. Ich habe nichts von I²C oder SPI erzählt, und dabei bleibts. Außerdem macht man dazu WENN einen neuen Thread auf.


Woher nimmst du jetzt diese Annahme ?
I2C steht doch auf einem anderen Blatt. ;)
So ist es.


Das Problem ist noch keine 24H alt.
Und schon drängeln?
Vielen Dank :)


Er will auch Öltemp und Lade-/Entladeströme messen.

Sein Schwager stellt mehr Ansprüche als nur die Spannungsanzeige.

Natürlich kommt noch I²C oder SPI oder wie sollen die Werte angezeigt werden? ;)
Und was erzählst du jetzt, was mein Schwager haben will? Kennst du ihn etwa? Hör auf hier Bullshit zu schreiben weil dir langweilig ist.

In dem Thread wo es um Öltemp und dem wo es um Strom geht. Beim Öltemp hast du dich doch auch schon beteiligt (Strom weiß ich gerade nicht) ;)

Pingelheimer :D ;) dann kommt halt dies zur Sprache. Wobei ich nicht glaube das er da noch genug Ausgänge zur Verfügung hat, mit dem ganzen anderen Gerödel - ist nur ne Vermutung.
Der Ölthread ist was ganz anderes. Da geht es um was völlig anderes. Bitte genau lesen.


Na ich bin doch Anfänger und da lese ich (fast) alles und versuche mir auch zu merken wer was wie schreibt um zu wissen wer hier die Guten und wer die "Wichtigmacher" sind.

Dich zähle ich übrigens jetzt schon zu den Guten.

Manchmal versuche ich etwas Witz in meine Posts zu bringen. Wenn dies hier nicht gerne gesehen wird, dann bitte ich dies mir mitzuteilen - Danke (zur Bemerkung Pingelheimer)
Danke, bitte den "Mist" unterlassen. Anscheinend bist du einer der Wichtigmacher?

Wer ist denn hier nicht entspannt?

Gruß Tommy
Tommy, du bist nicht gemeint! Du hast von anfang an sehr sachlich geholfen. Hast auch schon Karma von mir bekommen. Ich habe nur noch keine zeit gehabt das zumzusetzen, weil ich mich gerade mit Quoten und Kommentieren sinnloser und hilfreicher Kommentare beschäftigen muss.


Hallo,

also wenn ich mir den Thread so anschaue, frage ich mich schon warum der wieder einmal versaut wurde mit sinnlosen Querinformationen die der TO hier in diesem Thread nie gestellt hat. Hier dreht es sich allein um eine Spannungsmessung. Nicht mehr und nicht weniger. Der Rest sind wirklich nur eingestreute Vermutungen die alles verkomplizieren aber niemanden nutzen. Und was ich gar nicht leiden kann ist, wenn man erst Druck macht, dass sich der TO melden soll, danke sagen soll und ähnliches, wofür es noch keinen Grund gibt, kam ja noch nicht das gewünschte Ergebnis für ihn raus und in der nächsten Minute verlangt man Lockerheit. Ne Leute, dass passt vorne und hinten nicht zusammen. Das muss ich mal ganz klar sagen. Meister_Q muss sicherlich nicht erst locker werden. Er ist es zum Glück.
Danke für die Unterstützung.


----------------------------------------------------------


Sooo....

Ich werde bescheid geben, sobald ich meine Widerstände der E96 Reihe erhalten habe. (1% Toleranz sollte mir genügen).

Und bis dahin bitte ich alle anderen, die mir nicht helfen wollen, sondern sinnlose sachen hier rein Posten, dieses zu unterlassen, damit man den Überblick nicht verliert.

Evtl kann ein Mod ja mal die Sinnlosen sachen löschen.

VIELEN DANK AN ALLE DIE WAS SACHLICHES ZU DIESEM THEMA BEITRAGEN!!!
Title: Re: Spannung messen (maximal 15V)
Post by: Tommy56 on Aug 09, 2017, 09:06 pm
Der Ölthread ist was ganz anderes. Da geht es um was völlig anderes. Bitte genau lesen.


Danke, bitte den "Mist" unterlassen. Anscheinend bist du einer der Wichtigmacher?
Das könnte man so interpretieren, weil es dort um ein Straßenfahrzeug und nicht um ein Boot geht ;).

Gruß Tommy
Title: Re: Spannung messen (maximal 15V)
Post by: gregorss on Aug 09, 2017, 09:48 pm
... Bitte? ...
Was meine Beiträge zu diesem Thread angeht, bitte ich um Entschuldigung. Ich habe heute versucht, drei - zeitweise vier - Dinge gleichzeitig zu machen und habe wohl hinlänglich bewiesen, dass ich dann nicht auch noch posten sollte (weil ich je nach (nicht-) Aufmerksamkeit auch mal Dinge durcheinanderbringe).

VIELEN DANK AN ALLE DIE WAS SACHLICHES ZU DIESEM THEMA BEITRAGEN!!!
Nun denn, ich werde versuchen, mich zu bessern.

Gruß

Gregor
Title: Re: Spannung messen (maximal 15V)
Post by: meister_q on Aug 12, 2017, 04:55 pm
Dann so, den Spannungsteiler habe ich ignoriert.

Das Ergebnis musst Du noch mit Deinem gemessenen Spannungsteilerverhältnis multiplizieren.

Also Umess (am Arduino) = R2 (am Arduino) /(R1+R2) * Ubatterie


Spannung = input * 4,33 /1024

mit input = Umess

Spannung = R2 / (R1+R2) * 4,33/1024

Ich hoffe, ich habe mich nicht verhauen. Da korrigiert mich aber jemand.

Gruß Tommy
Ich benötige dazu nochmal hilfe.

Bezüglich der Widerstände:

Ich habe jetzt angedacht 10k und 1k zu nehmen. Bei 15V sollte an R2 eine Spannung von 1,36V anliegen.

Wie gehe ich mit der realen Versorungsspannung von 4,25 an meinem Arduino jetzt daran?

Ich habe den zitierten Post nicht ganz verstanden?


Spannung = analogRead(A0) * 4,25 / 1024;
Spannung = 10000 / (100000+10000) * 4,33 / 1024;

?

Title: Re: Spannung messen (maximal 15V)
Post by: combie on Aug 12, 2017, 05:27 pm
Quote
Wie gehe ich mit der realen Versorungsspannung von 4,25 an meinem Arduino jetzt daran?
Aus meiner Sicht:
Noch nicht einmal ignorieren!

Klarer:
Nimm die Versorgung als schwankend an.
Damit liegst du richtiger, als mit allen anderen möglichen Annahmen..


Title: Re: Spannung messen (maximal 15V)
Post by: RIN67630 on Aug 13, 2017, 10:04 am
Ich benötige dazu nochmal hilfe.

Wie gehe ich mit der realen Versorungsspannung von 4,25 an meinem Arduino jetzt daran?

Das wichtigste ist, wie Du deinen Arduino mit Strom versorgt.

a) über USB am Computer: dann musst du unbedingt die Spannung kompensieren.
b) über Vin mit einer Spannung zwischen 6,5 und 9 V und sonst wenig Stromverbraucher am 5V das Arduinos, dann kannst du 5 V annehmen, wenn du nicht zu großer Genauigkeit erwarten willst.
c) über 5V mit einer gut geregelte Stromversorgung dann entspricht eine Messung die Qualität der Stromversorgung.

Für den Fall a) Hier ist noch eine Funktion, die die eigene Spannung des Arduinos versucht zu evaluieren. Die Genauigkeit ist relativ aber immer noch besser, als einen falschen Vcc Wert anzunehmen.

Code: [Select]


// *** Function to obtain chip's actual Vcc voltage value, using internal bandgap reference ***
// Function to obtain chip's actual Vcc voltage value, using internal bandgap reference
// This provides ability to maintain A/D calibration with changing Vcc in case of analogReference (DEFAULT)
// For 328 chip only, mod needed for 1280/2560 chip

int getBandgap(void)
{
  // REFS1 REFS0          --> 0 1, AVcc internal ref.
  // MUX3 MUX2 MUX1 MUX0  --> 1110 1.1V (VBG)
  ADMUX = (0 << REFS1) | (1 << REFS0) | (0 << ADLAR) | (1 << MUX3) | (1 << MUX2) | (1 << MUX1) | (0 << MUX0);
  // Start a conversion
  ADCSRA |= _BV( ADSC );
  // Wait for it to complete
  while ( ( (ADCSRA & (1 << ADSC)) != 0 ) );
  // Scale the value
  unsigned int results = (((internalReferenceVoltage * 1024L) / ADC) + 5L) ;
  return results;
}



"internalReferenceVoltage" solltest du am Pin Aref bei AnalogReference(INTERNAL) ein Mal messen und als Konstante im Sketch angeben.

Die Funktion gibt dir 10*Vcc zurück.
Title: Re: Spannung messen (maximal 15V)
Post by: combie on Aug 13, 2017, 11:12 am
Quote
Das wichtigste ist, wie Du deinen Arduino mit Strom versorgt.
Das wichtigste ist, dass Du deinen Arduino mit Strom versorgt.

Das messen der Versorgungsspannung des Arduinos macht manchmal Sinn.
Hier allerdings nicht.

Im Gegenteil, es lenkt vom Problem ab.
Bringt eine zusätzliche Hürde rein.


Gemessen werden, soll die Spannung von 12V Batterien.(Messbereich bis 15V)
Und da interessiert die Versorgungsspannung des Arduinos im Geringsten nicht.
Von 1,8V bis 5,5V ist alles völlig egal.
Von mir aus darf sie auch wackeln, wie ein Lämmerschwanz.


Anleitung, wie so etwas zu tun ist:

1. Datenblatt lesen.
Erkenntnis daraus:
A: die interne 1,1V Referenz ist recht stabil
B: die interne Referenz unterliegt einer 10%igen Toleranz(Bauteilstreuung)
C: Ein hoher Widerstand des Spannungsteilers verringert nicht die Genauigkeit, sondern verlängert den Messzyklus

2. Spannungsteiler berechnen
Die Referenz liefert uns im Extremfall 1,0 V oder 1,2 V.
Nehmen wir hier den unteren Wert.
Also 1,0 V.
Unterer Widerstand, also zwischen GND und A Pin, willkürlich auf 10K festgelegt.
Also maximal 1V Spannungsabfall am 10K
Bleiben noch 14V, welche am oberen (zwischen Batterie und A Pin) abfallen müssen.
Also sollte er 140k, oder geringfügig mehr haben.

Fix einen 100k und einen 47k Widerstand in Reihe geschaltet.


3. Die EinPunktKalibrierung.

Interne Referenz aktivieren.
Testspannung an den Spannungsteiler anschließen.
Testspannung so groß wählen, dass der Endstand des ADC von 1023 gerade nicht erreicht wird.

Angenommene Testspannung: 14,89V
ADC Wert bei dieser Testspannung: 1008

Code: [Select]
const float Steigung = 14.89/1008; // bitte eigene ausgemessene Werte einsetzen

Nochmal als Ganzes:
Code: [Select]

/**
 * Datenblatt des ATMega328P :
 * http://www.atmel.com/Images/Atmel-42735-8-bit-AVR-Microcontroller-ATmega328-328P_Datasheet.pdf
 *
*/




const float Steigung = 15.6/1014; // meine gemessenen Werte


void setup()
{
  Serial.begin(9600);
  analogReference(INTERNAL);
}



void loop()
{
  float value = Steigung * analogRead(A0);
  Serial.println(value);
  delay(100);
}



Damit ist das Problem erschlagen!
Und wie man sieht gehen weder die Betriebsspannung, die exakte Referenzpannung, als auch die konkreten Widerstandswerte in die Berechnung ein.
Alles dieses braucht man im Programm nicht.


Mögliche Verbesserungen:
Ein kleiner Kerko zwischen A Pin und GND.
Den µC während der Messung schlafen legen
Einen gleitenden Mittelwert berechnen




Title: Re: Spannung messen (maximal 15V)
Post by: meister_q on Aug 13, 2017, 04:28 pm
Vielen dank für die Ausführliche erklärung combie!

Zu Punkt 2:

Ich habe hier 1k 10k und 100k rumliegen, 47k hab ich leider nicht.

Was ist wenn ich 1470 (270 + 100 + 100 + 1000Ohm) zu 100 Ohm nehme?


Damit sollte ich die Kalibierung wie du sie dann bei Punkt 3 erläutert hast, auch hin bekommen?

Zu den Verbesserungen:

Im Startcode habe ich ja bereits die Berechnung des Mittelwertes.
Das mit dem Kondensator werde ich dann bei erfolgreicher Messung einfügen.
Title: Re: Spannung messen (maximal 15V)
Post by: combie on Aug 13, 2017, 04:43 pm
Quote
Im Startcode habe ich ja bereits die Berechnung des Mittelwertes.
Ja.
Ich sprach vom "gleitenden Mittelwert"
Der frisst weniger Speicher.

Soll mir allerdings auch egal sein.
Denn für ungenutzten Speicher gibt es kein Geld zurück.

Nimm einfach das, was du für richtig hältst.


Quote
Was ist wenn ich 1470 (270 + 100 + 100 + 1000Ohm) zu 100 Ohm nehme?
Kannst du tun!
Die niedrigen Widerstände führen zu einem höheren Strom.
Wenn du damit leben kannst, ist alles gut.

Auch 100k mit 100k parallel macht 50K, also etwas mehr als 47K.


Wenn du in meiner obrigen Überschlagsrechnung deine konkrete Referenzspannung verwendest, kannst du den Spannungsteiler vielleicht noch knapper auslegen. Das würde die Steigung kleiner machen, und damit mehr Schritte bis 15V erlauben, also etwas mehr Genauigkeit..

Das von mir gepostete Beispiel läuft mit 10k zu 134k
(weil ich gerade nichts anderes da hatte und die Höhe meiner Referenz mir die Chance lässt)


Mein Tipp:
Spiele mit den Werten.



Title: Re: Spannung messen (maximal 15V)
Post by: meister_q on Aug 13, 2017, 05:20 pm
Gut.

Folgendes hab ich gemacht:

Code: [Select]

/**
   Datenblatt des ATMega328P :
   http://www.atmel.com/Images/Atmel-42735-8-bit-AVR-Microcontroller-ATmega328-328P_Datasheet.pdf

*/


float value = 0.0;

const float Steigung = 14.98 / 909; // Spannung 14.98V bei analogWert 909

float analogWert = 0.0;

void setup()
{
  Serial.begin(9600);
  analogReference(INTERNAL);
}



void loop()
{
  analogWert = analogRead(A0);
  value = Steigung * analogWert;
  Serial.print("A: ");
  Serial.println(analogWert);
  Serial.print("Value: ");
  Serial.println(value);
  delay(100);
}


Habe 909 am analogen Pin, bei 14.98V (laut Multimeter) am DCDC Wandler, der mir meine Spannung liefert. Schaut nach einem passenden ergebniss aus!

Vielen dank!

Wie berechne ich den den gleitenden Mittelwert?

Title: Re: Spannung messen (maximal 15V)
Post by: combie on Aug 13, 2017, 06:11 pm
Code: [Select]
/**
 * Datenblatt des ATMega328P :
 * http://www.atmel.com/Images/Atmel-42735-8-bit-AVR-Microcontroller-ATmega328-328P_Datasheet.pdf
 *
*/


float gmw = 0.0; // Gleitender Mittelwert
const float Steigung = 15.6/1014;
float Faktor = 0.1; // 0 < Faktor < 1

void setup()
{
  Serial.begin(9600);
  analogReference(INTERNAL);
  gmw = Steigung * analogRead(A0); // GMW Vorbesetzen
}



void loop()
{
  int v = analogRead(A0);
  float value = Steigung * v;
  gmw = gmw - gmw*Faktor + value*Faktor;
  Serial.print(value,1);
  Serial.print(" ");
  Serial.println(gmw,1);
  delay(100);
}


Kleiner Faktor bewirkt große Dämpfung
Den Erfolg kann man sich schön im seriellen Plotter ansehen.
Title: Re: Spannung messen (maximal 15V)
Post by: meister_q on Aug 13, 2017, 06:33 pm
Mit der Rechnung passt es ganz gut. Bei eingestellten 12,83V (mit Multimeter gemessen), zeigt es mir im Seriellen Monitor 12.7V an. die 0.13V differenz sollte vernachlässigbar sein, da die Spannung ja nicht zum Schutz gegen Tiefenentladung genutzt wird.

Vielen dank nochmal combie, und alle anderen für eure Mühe.

Das Ergebniss reicht mir so, und an alle folgenden die in diesem Thread landen: Gelöst wurde es mit Combies letzten Posts.