Vin messen, nur wie?

Hallo, ich möchte die spannung eines 6V Blei-Vlies akkus messen, welcher das zum Messen verwendete Arduino Pro Mini 5V versorgt.

Habe nun mehrfach etwas von der 1.1V Referenzspannung gelesen, doch die Beispielsketche funktionieren bei mir nicht, die ausgegebenen Werte sind bei 5V (~5400mV laut readVcc Funktion) Versorgung jedoch höher als bei Versorgung mit dem 6V Blei Vlies Akku (~5400mV).. was mache ich falsch?

Hier das verwendete Sketch:

long readVcc() {
  // Read 1.1V reference against AVcc
  // set the reference to Vcc and the measurement to the internal 1.1V reference
  #if defined(__AVR_ATmega32U4__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
    ADMUX = _BV(REFS0) | _BV(MUX4) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);
  #elif defined (__AVR_ATtiny24__) || defined(__AVR_ATtiny44__) || defined(__AVR_ATtiny84__)
    ADMUX = _BV(MUX5) | _BV(MUX0);
  #elif defined (__AVR_ATtiny25__) || defined(__AVR_ATtiny45__) || defined(__AVR_ATtiny85__)
    ADMUX = _BV(MUX3) | _BV(MUX2);
  #else
    ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);
  #endif  

  delay(2); // Wait for Vref to settle
  ADCSRA |= _BV(ADSC); // Start conversion
  while (bit_is_set(ADCSRA,ADSC)); // measuring

  uint8_t low  = ADCL; // must read ADCL first - it then locks ADCH  
  uint8_t high = ADCH; // unlocks both

  long result = (high<<8) | low;

  result = 1125300L / result; // Calculate Vcc (in mV); 1125300 = 1.1*1023*1000
  return result; // Vcc in millivolts
}

Vielen Dank für jegliche Hilfe.

Hallo,

wenn du eine Spannung messen willst, die höher ist als die Versorgungsspannung des Arduino brauchst du immer einen Spannungsteiler aus zwei Widerständen, um die Spannung zu reduzieren. Der AD-Wandler hat mehrere Betriebsarten, einmal kannst du die Versorgungsspannung (also 5V) als Referenz (=100%) nehmen oder die eingebaute Referenzspannungsquelle mit 1,1V. Das ist das, was ich machen würde, weil sonst deine Messung beeinflusst wird von Schwankungen der Versorgungsspannung. Also 6V Akkuspannung (max. wohl 7V wenn du ihn vollädst) runterteilen auf 1V, dann messen und den Wert ausrechnen.

Viele Grüße

Elektrix

Hi

Wie meinen?

5400mA ist ein Strom, von 5,4A - also schon stattlich.
Das hat NICHTS mit einer Spannung zu tun, sofern Du nicht über einen Shunt diesen Strom 'siehst' (wobei ein Shunt auch 'nur' eine Spannung erzeugt, also irgend was mit Volt).

MfG

Du kannst den Arduino nicht direkt an den 6V Akku zur Spannungsversorgung anschließen. Für den 5V Eingang ist diese Spannung zu hoch und für den Vin Pin zu wenig.
Du brauchst einen DC/DC Wandler der mit 7,2V bis 4,8 V Eingangsspannung klarkommt.
Grüße Uwe

Das pro Mini läuft am Raw pin mit 6.4V perfekt.

Meine Natürlich mV nicht mA..

Das mit der Referenzspannung klingt gut.. hatte ich soweit auch verstanden..
Nur so lege ich meine Spannung an? In dem Sketch ist nirgendwo ein Input angegeben oder irre ich mich und erkenne es nicht?

Danke für die schnellen Antworten.

Hi

Welcher µC ist auf dem Arduino Pro Mini verbaut?
In Dessen Datenblatt kannst Du sehen, was passiert, wenn Du die oben gezeigten Register so setzt.

Alternativ dort schauen, wo der Code her ist, Da sollte dazu schon was stehen.

MfG

Hier das verwendete Sketch:

Warum nicht analogRead().

Das fummeln an den Registern ist nicht unbedingt der falsche Weg, aber man sollte dann schon wissen, was man da tut.
Und die Frage nach dem Pin zeigt, dass du dafür noch etwas lesen werden musst.

Ja, die 1,1V Referenz ist schon richtig.
Und ein Spannungsteiler, so ca 10 zu 1.
Verwende eine Kalibrierung, z.B. die "Ein Punkt Kalibrierung" sollte hier reichen.

uwefed:
Du kannst den Arduino nicht direkt an den 6V Akku zur Spannungsversorgung anschließen. Für den 5V Eingang ist diese Spannung zu hoch und für den Vin Pin zu wenig.
Du brauchst einen DC/DC Wandler der mit 7,2V bis 4,8 V Eingangsspannung klarkommt.
Grüße Uwe

Vin von Bleigel-6V Akkus versorgt, das mag auf dem Papier etwas Out of specs sein, immerhin bekommt der Nano/Uno damit mehr Vcc, als sonst von USB-versorgt. Läuft bestens.

Die Specs sind auch etwas kurios: Zwischen den Stromstecker und Vin liegt beim Uno eine Diode, die 0,6 V Spannungsabfall einbringt, so muss auch unterschieden werden, ob der Arduino über Stecker oder über Vin versorgt wird. Dieser Unterschied gibt es in der Specs nicht.

Die Specs vom Atmel Chip haben auch keine Ahnung, dass der Chip auf einem Arduino Board steckt.
Was sagen die Specs vom Arduino Board?

Die Specs vom arduino Board sagen geht fit :smiley:

janneswa:
Das pro Mini läuft am Raw pin mit 6.4V perfekt.

Ok beim Mini PRO ist es anders als beim UNO.
Aber ein Bleiakku hat nicht immer 6,4V.
Die Entladeschlußspannung beträgt 1,75V pro Zelle und damit 5,25V für einen 6V Akku.

Grüße Uwe

Das ist kein Problem, das ganze arbeitet mit einem gsm modul welches täglich eine Status SMS versendet die Guthaben und Akkustand enthalten soll.. wird die akkuspannung zu gering wird der Akku aufgeladen.

Dafür benötige ich die Spannungsmessung.

RIN67630:
Vin von Bleigel-6V Akkus versorgt, das mag auf dem Papier etwas Out of specs sein, immerhin bekommt der Nano/Uno damit mehr Vcc, als sonst von USB-versorgt.

Wie kommst du auf das dünne Brett?

Bei USB Betrieb ist Vin unbeschaltet, die 5V vom USB gehen zu 5V, also hinter den Regler.
1 V Spannungsdifferenz reichen für den linearen Regler nicht (sagt die Spezifikation).

Input Voltage 7-9 V

@Whandall

Der Arduino PRO MINI hat einen MIC5205 Spannungsstabilisator. Dieser gibt max 160mA bei 0,35 V Dropout.

Also reichen 6V aber 5,25 bei leeren wahrscheinlich Akku nicht.

Grüße Uwe

uwefed:
@Whandall

https://www.arduino.cc/en/uploads/Main/Arduino-Pro-Mini-schematic.pdf

Der Arduino PRO MINI hat einen MIC5205 Spannungsstabilisator. Dieser gibt max 160mA bei 0,35 V Dropout.

Also reichen 6V aber 5,25 bei leeren wahrscheinlich Akku nicht.

Grüße Uwe

Es blieben dann immer noch 4,9V Vcc. Also deutlich mehr, als mit USB versorgt.

@uwefed

dann sollte man die geschriebene Dokumentation anpassen.

Wieso? Auf Arduino PRO — Arduino Official Store seht:

Board Power Supply: 3.35 -12 V (3.3V model) or 5 - 12 V (5V model)

Grüße Uwe

uwefed:
Wieso? Auf Arduino PRO — Arduino Official Store seht:

Board Power Supply: 3.35 -12 V (3.3V model) or 5 - 12 V (5V model)

Grüße Uwe

Das ist natürlich die ganze Bandbreite von der direkte Versorgung über Vcc bis zur Speisung am Stecker, nicht die Grenzen an Vin.

Die Spezifikationen der Spannungsreglern werden auch so ausgelegt, dass bei einem Vermessen eines Parameters, die anderen auch eingehalten werden.
Beim Betrieb unter dem Limit wird z.B. die Spannungsgenauigkeit und die Wellenglättung nach Spezifikation nicht mehr eingehalten, das heiße noch lange nicht, dass der Uno damit nicht mehr zuverlässig läuft (abgesehen von der Genauigkeit der Analogeingänge bei DEFAULT).

uwefed:
Wieso? Auf Arduino PRO — Arduino Official Store seht:

Board Power Supply: 3.35 -12 V (3.3V model) or 5 - 12 V (5V model)

Grüße Uwe

beimirnicht.png

bei mir steht es wie bei Uwe, unter Tech Specs