Hallo Gemeinde.
Ich verwende ein Arduino Pro Mini Board und anfangs direkt mit einer
Spannung aus 2x AA Akkus (2,8V - 1,8V).
Jetzt musste ich doch den MCP1700 verbauen, da der DS1820 eine konstante
3V Spannung benötigt. Sollte alles hinreichend bekannt sein. :-)
Nun geht es mir darum, den Zeitpunkt, wann meine Spannungsversorgung
schlapp macht bzw. wann die Batterie "leer" sind zu ermitteln mit dem
ADC des Atmega328p.
Im Netz habe ich erfahren, dass man hierfür die interne Referenzspannung
hernehmen kann, diese aber vorher mit dem Multimeter genau bestimmen
muss.
Die Referenzspannung schwankt anscheinend um 10% und kann daher zwischen
1 - 1,2V liegen...
Gut, könnte ich machen. Allerdings benötige ich ja dann einen
Spannungsteiler...
Jetzt meine eigentlich Frage:
Der MCP1700 liefert mir doch auch eine konstante Spannung oder? Wie
genau ist die? Ich setze momentan den Typ für eine 3,3V Spannung ein.
Hätte es irgendwelche Vorteile diese herzunehmen?
Man Batteriefach kann 3xAA aufnehmen. Da ich mir noch nicht sicher bin,
welchen Typ ich einsetze (Akku oder Batterie) schwankt die
Eingangsspannung zum MCP1700 von 4,5/4,2 bis runter auf 2,7V.
Der MCP dürfte ja noch bis ca. 3,1V funktionieren... (meine Schaltung
zieht max. 25mA).
Sven Scholz schrieb:> Allerdings benötige ich ja dann einen Spannungsteiler...
Brauchst du nicht. DU kannst als ADC Referenz die Versorgunsgspannung
einstellen und dann über den ADC Multiplexer die interne Referenz messen
(also den Spieß umdrehen).
Vorsicht: Die interne Referenz des Atmegas ist auf ca. +/- 10% genau,
sie schwankt aber nicht um diesen Wert. Diese "Genauigkeit" ist (u.a.)
herstellungsabhängig. Wenn du die Referenz in der Zielschaltung misst
ist diese eigentlich sehr genau/stabil und zwar so, dass es idR für 10
bit ausreichend ist.
Der MCP1700 ist mit seinen 0.4% Output Voltage Regulation und den 1.0%
Load Regulation nicht wirklich als Referenz für einen 10 bit ADC
geeignet.
Auf der anderen Seite musst du dich nur fragen, wie genau brauchst du es
wirklich. Ich denke, es würde genügen die Batterie-Spannung auf 1 bis 2
% genau zu messen und dafür wäre auch der MCP1700 ausreichend.
Ich mein, ob du jetzt bei 3.10 V oder 3.05V sagst, dass der Akku leer
ist, kann ja eigentlich nicht soo dramatisch für den DS1820 sein. ;)
M. K. schrieb:> Der MCP1700 ist mit seinen 0.4% Output Voltage Regulation und den 1.0%> Load Regulation nicht wirklich als Referenz für einen 10 bit ADC> geeignet.
In der von Stefanus vorgeschlagenen Vorgehensweise muss sie das auch
nicht, denn gerade deren Schwankung soll ja bestimmt werden. Sie ist
auch nicht "die Referenz", sondern soll nur so eingestellt werden und
die interne, konstante Ref wird gemessen - die ist der Bezug für die
Rechnung.
HildeK schrieb:> In der von Stefanus vorgeschlagenen Vorgehensweise muss sie das auch> nicht, denn gerade deren Schwankung soll ja bestimmt werden. Sie ist> auch nicht "die Referenz", sondern soll nur so eingestellt werden und> die interne, konstante Ref wird gemessen - die ist der Bezug für die> Rechnung.
Keine Frage, kann man so machen wenn mans so braucht. Ist hier aber
nicht der Fall. Zumindest denke ich mir, dass das ziemlich viel Aufwand
dafür ist, nur um das Schätzeisen DS1820 nicht bei unter 3V zu betreiben
;)
M. K. schrieb:> Zumindest denke ich mir, dass das ziemlich viel Aufwand> dafür ist, nur um das Schätzeisen DS1820 nicht bei unter 3V zu betreiben
SW-Aufwand? Oder was?
Er will mit dem ADC ohne Spannungsteiler (zusätzlicher Stromverbrauch
bei Batteriebetrieb) die Versorgung überwachen. Es ist doch nichts
Einfacher als das, nicht mal eine zusätzliche Leitung wird benötigt, nur
eine andere Formel zur Bestimmung der Spannung. Damit wird nach einer
notwendigen Kalibrierung die Versorgungsspannung mit der Genauigkeit der
internen Referenz bestimmbar sein.
Der MCP1700 ist w.c. mit ±3% spezifiziert. Ob das dem DS1820 reicht,
weiß ich nicht, seine untere Grenze liegt bei 3.0V. Zu wissen, ob man
die 3.0V unterschreitet, ist also sinnvoll.
Oder ich verstehe deinen Einwand nicht :-).
HildeK schrieb:> Oder ich verstehe deinen Einwand nicht :-).
Mein Einwand war nur, da der TE sich fragt ob die interne Referenz genau
genug ist um die Versorgung damit zu messen obs nicht besser sei den
MCP1700 zur Messung zu nutzen. Und hier ist mein Einwand nur, dass der
MCP1700 noch viel ungenauer ist als die interne Referenz ;)
M. K. schrieb:> HildeK schrieb:>> Oder ich verstehe deinen Einwand nicht :-).>> Mein Einwand war nur, da der TE sich fragt ob die interne Referenz genau> genug ist um die Versorgung damit zu messen obs nicht besser sei den> MCP1700 zur Messung zu nutzen.
Das ergibt nach wie vor keinen Sinn. Der MCP1700 ist ein
Spannungsregler. Mit dem kann man so oder so nichts messen.
Auch sonst ist leidlich unklar, was genau der TE machen will. Mit
seinen 2 Primärzellen kommt er auch mit dem MCP1700 nicht auf 3V. Also
wird er wohl auf 3 oder 4 Zellen upgraden müssen.
Nehmen wir an, es sind 3 Zellen. Aus denen könnte er den ATMega nach wie
vor direkt betreiben. Dann kann er die Batteriespannung vor dem MCP1700
messen, was IMHO Sinn ergeben würde aber die Kommunikation mit dem
DS1820 erschwert. Oder er betreibt den ATMega ebenfalls an den
stabilisierten 3V. Dann mißt er die meiste Zeit stabile 3.0V und erkennt
die leere Batterie erst, wenn es eigentlich schon zu spät ist.
Die Genauigkeit der Referenz spielt für diese Anwendung aber keine
Rolle, das heißt nur daß er nicht einfach eine hartcodierte Schwelle für
den ADC-Meßwert verwenden kann, sondern jeden µC einmalig kalibrieren
muß. Wenn er die 3V mißt, kann das sogar automatisch geschehen. Denn er
bekommt dann die meiste Zeit über einen leidlich konstanten Wert vom ADC
und muß nur die Abweichung detektieren.
Axel S. schrieb:> Das ergibt nach wie vor keinen Sinn. Der MCP1700 ist ein> Spannungsregler. Mit dem kann man so oder so nichts messen.
Der soll ja auch nur als Referenz für den ADC des AVRs herhalten. Wenn
man den Thread liest ist das klar.
Axel S. schrieb:> Auch sonst ist leidlich unklar, was genau der TE machen will. Mit> seinen 2 Primärzellen kommt er auch mit dem MCP1700 nicht auf 3V. Also> wird er wohl auf 3 oder 4 Zellen upgraden müssen.
Und auch hier: Lesen hilft. Aktuell nutzt der TE nur zwei Zellen, sein
Batteriefach bietet aber Platz für drei Zellen und dann passts auch für
den MCP1700.
Lies dir erst noch mal in Ruhe den Thread durch. ;)
M. K. schrieb:> Axel S. schrieb:>> Das ergibt nach wie vor keinen Sinn. Der MCP1700 ist ein>> Spannungsregler. Mit dem kann man so oder so nichts messen.>> Der soll ja auch nur als Referenz für den ADC des AVRs herhalten. Wenn> man den Thread liest ist das klar.
Eigentlich nicht. Welchen Vorteil soll das bieten? Und es geht auch nur
ausschließlich dann, wenn er den ATMega aus der unstabilisierten
Rohspannung betreibt.
> Axel S. schrieb:>> Auch sonst ist leidlich unklar, was genau der TE machen will. Mit>> seinen 2 Primärzellen kommt er auch mit dem MCP1700 nicht auf 3V. Also>> wird er wohl auf 3 oder 4 Zellen upgraden müssen.>> Und auch hier: Lesen hilft. Aktuell nutzt der TE nur zwei Zellen, sein> Batteriefach bietet aber Platz für drei Zellen
Stimmt. Den Teil mit 3 Zellen hatte ich tatsächlich überlesen. Immerhin
hatte ich das richtig geraten. Aus welcher Spannung er seinen ATMega
betreiben will, schreibt er aber nicht.
> und dann passts auch für den MCP1700.
Naja. Eigentlich nicht. Für den 3.3V Typ schon gar nicht. Und auch mit
dem 3.0V Typ kriegt er nicht die volle Energie aus den Zellen.
Braucht der DS1820 wirklich konstante 3V? Dem Datenblatt entnehme ich
das nicht. Da steht nominal 5V, minimal 2.8V. Würde gut zu 3 Zellen
passen.
Hallo nochmal,
danke für eure hilfreichen Antworten.
Natürlich möchte die Spannung am MCP-Eingang, also die direkte
Batteriespannung per ADC ausmessen.
Alles andere macht wenig Sinn...
(Direkt den Atmega328p über 3xAA zu speisen wird wohl nicht gehen, da
ich ja dann 4,5V bekomme und dies der Atmega328p nicht verträgt. Auch
andere Sensoren vertragen nur max. 3,6V.)
Ich verwende somit die interne Referenzspannung...
Damit kann ich aber dann doch nur Spannungen unter den ~1,1V messen
oder?
Danke!
Sven Scholz schrieb:> da ich ja dann 4,5V bekomme und dies der Atmega328p nicht verträgt.
Er verträgt bis zu 5,5V ganz offiziell.
Sven Scholz schrieb:> Ich verwende somit die interne Referenzspannung...> Damit kann ich aber dann doch nur Spannungen unter den ~1,1V messen> oder?
Fast richtig. Die meisten AVR haben drei Reqferenzen zur Verfügung:
1) Versorgungsspannung (das wären dann die 4,5V)
2) 2,56V
3) 1,1V
Du kannst in allen drei Fällen Eingangsspannungen von Null Volt bis zur
Höhe der Referenzspannung messen. Bei vielen AVR Modellen kannst du
außerdem eine der internen Referenzen relativ zur Versorgungsspannung
messen. Dann ist VCC die Referenz und du misst die 1,1V Spannung.
Siehe hier, erste Antwort:
https://arduino.stackexchange.com/questions/50769/how-to-measure-the-supply-voltage-of-arduino-without-using-an-analog-pin
Axel S. schrieb:> Braucht der DS1820 wirklich konstante 3V? Dem Datenblatt entnehme ich> das nicht. Da steht nominal 5V, minimal 2.8V. Würde gut zu 3 Zellen> passen.
Ich las zwar min. 3.0V, aber egal: Den Regler braucht er nicht! Sowohl
der DS als auch der Mega sind in dem Bereich von 3 Batteriezellen fast
ideal zu betreiben; gut, unten verliert man ein paar Prozent an
Kapazität, wenn die 3.0V als Minimum für den DS korrekt sind - ob das
relevant ist?
Und dann ist es tatsächlich fraglich, ob man die Batteriespannung
überwachen muss - allerdings kostet das auch nur ein paar Zeilen Code
und einen Kalibriervorgang für jeden Mega. Aber auch ein wenig Energie
...
Axel S. schrieb:> Eigentlich nicht. Welchen Vorteil soll das bieten?
Na das sag ich doch ;)
Stefanus F. schrieb:> Fast richtig. Die meisten AVR haben drei Reqferenzen zur Verfügung:
Und welchen AVR hat das Arduino Pro Mini Board? Genau, einen Atmega328P
und der hat nur eine interne Referenz von 1.1 VDC ;)
M. K. schrieb:> Und welchen AVR hat das Arduino Pro Mini Board? Genau, einen Atmega328P> und der hat nur eine interne Referenz von 1.1 VDC ;)
Ja. Mir ging es eher darum, klarzustellen, dass er auch größere
Versorgungsspannungen als 1,1V messen kann, wenn er den Spieß umdreht
(Referenz=aVCC und Multiplexer=1,1V).
Stefanus F. schrieb:> M. K. schrieb:>> Und welchen AVR hat das Arduino Pro Mini Board? Genau, einen Atmega328P>> und der hat nur eine interne Referenz von 1.1 VDC ;)>> Ja. Mir ging es eher darum, klarzustellen, dass er auch größere> Versorgungsspannungen als 1,1V messen kann, wenn er den Spieß umdreht> (Referenz=aVCC und Multiplexer=1,1V).
Das hattest du ja schon oben geschrieben ;)