Forum: Mikrocontroller und Digitale Elektronik ARDUINO ADC Verständnis Probleme Referenz


von Michael L. (cybertracker)


Angehängte Dateien:

Lesenswert?

Hallo,
Ich hoffe sehr ihr könnt mir helfen.

Ich habe genaugenommen 2 Probleme.
Ich hab 2 Platinen anfertigen lassen welche einmal mit LIPO mit LDO
und
einmal LiFePo4 ohne LDO betrieben werden
.
Uc ist ein 1284p mit Mightycore und externem 8Mhz Quarz daher läuft auf 
3,3V

Diese kommen in Funk Stationen rein daher ist der Akku Stand essentiell.
Die Lipos haben R5 R6 jeweils 47k.



Lifepo4 hab ich leider die Widerstände verdreht.
Siehe Bild. Bat geht zum PA7.


Da die Wiederständer 0402 sind ist da leider tauschen weniger eine 
Option.
Entfernen beim LiFePo4 werde ich wohl noch hin bekommen.

Wenn ich diese messe funktioniert es nur richtig wenn ich am VCC die 
3,3v anliegen habe.
Ich bin jetzt soweit das die er diese als Referenz nimmt.

Also muß ich ja auch auf die Interne gehen.

Dies sollte ja mit
analogReference(INTERNAL1V1);
laufen.

Nur mißt er mir dann nur Mist.
Akkus sollte er Lipo 4,3-2,5V
Lifepo4 3,5-3V messen.

Es muß nicht genau sein so bis 5-10% Abweichung kann ich verkraften. Es 
geht nur darum das ich frühzeitig hin kann um die Akkus zu tauschen.

Es wäre super wenn mir da einer Helfen kann.
Alternativ könnte man den LiFePo ja auch per VCC am UC messen. Da dieser 
ja direkt da ankommt. Dann müßte ich da die Wiedererstände nur 
entfernen.

Im Prinzip scheitere ich daran auf Interne Referenz zu stellen.
Und es am UC auszulesen.

Vielen vielen Danke.

von und zu (Gast)


Lesenswert?

Wie angenehm war die Elektronik Welt noch als es kein Arduino gab und 
die Preise für Platinenfertigung teuer waren. Da gab es zumindest einen 
höheren Schwellwert wie heute für die Entscheidung ob Elektronik 
wirklich das richtige Hobby für einen ist...

von Stefan F. (Gast)


Lesenswert?

1)

Dein Spannungsteiler ist zu hochohmig. Jedes mal wenn der ADC eine 
Messung macht, belastet er den Spannungsteiler für einen kurzen Moment 
und dann bricht dessen Ausgangsspannung ein.

Du musts den kleineren Widerstand auf 10kΩ reduzieren und den anderen 
dazu passen, dann geht es.

Oder du stabilisiert die Spannung mit einem 100nF Kondensator (am ADC 
Eingang nach GND). Dann musst du aber zwischen den Messungen ausreichend 
lange Pausen einlegen, damit der Kondensator nach der Belastung wieder 
nachgeladen wird. Ich schätze mal das 1 Sekunde reichen wird.

2)
Ich denke dass die Widerstände deines Spannungsteilers vertauscht sind. 
Der ADC kann ja nur Spannungen messen, die kleiner als die Referenz 
(1,1V) sind.

3)

> Diese kommen in Funk Stationen rein

Ein weiterer Grund, den Kondensator einzufügen. Weil jede Leitung eine 
Antenne ist und mit so geringer Belastung (100kΩ) eine Menge vom eigenen 
Funksignal empfangen wird.

von Stefan F. (Gast)


Lesenswert?

und zu schrieb:
> ob Elektronik wirklich das richtige Hobby für einen ist

Meckersäcke haben keine Freunde und sind für niemanden hilfreich

von Michael L. (cybertracker)


Lesenswert?

Stefan ⛄ F. schrieb:
> 1)
>
> Dein Spannungsteiler ist zu hochohmig. Jedes mal wenn der ADC eine
> Messung macht, belastet er den Spannungsteiler für einen kurzen Moment
> und dann bricht dessen Ausgangsspannung ein.
>
> Du musts den kleineren Widerstand auf 10kΩ reduzieren und den anderen
> dazu passen, dann geht es.
>
> Oder du stabilisiert die Spannung mit einem 100nF Kondensator (am ADC
> Eingang nach GND). Dann musst du aber zwischen den Messungen ausreichend
> lange Pausen einlegen, damit der Kondensator nach der Belastung wieder
> nachgeladen wird. Ich schätze mal das 1 Sekunde reichen wird.
>
> 2)
> Ich denke dass die Widerstände deines Spannungsteilers vertauscht sind.
> Der ADC kann ja nur Spannungen messen, die kleiner als die Referenz
> (1,1V) sind.
>
> 3)
>
>> Diese kommen in Funk Stationen rein
>
> Ein weiterer Grund, den Kondensator einzufügen. Weil jede Leitung eine
> Antenne ist und mit so geringer Belastung (100kΩ) eine Menge vom eigenen
> Funksignal empfangen wird.

Danke für die Hilfe. An den R5 komm ich wohl noch dran. Die Lipo Platine 
läuft dank eurer Hilfe mit Interner Referenz.

Kondensatoren hab ich Überall genug drauf. AM BAT(A7) leider nicht.
Pausen zwischen den Messungen sind 10 Minuten immer dazwischen schläft 
der 1284p.

von Stefan F. (Gast)


Lesenswert?

Michael L. schrieb:
> An den R5 komm ich wohl noch dran.

Gut, dann ändere den auf 22kΩ und löte einen gleich großen 100nF 
Kondensator oben drauf.

von Georg M. (g_m)


Lesenswert?

Michael L. schrieb:
> LiFePo4 ohne LDO

Direkt an der Batterie? Dann ist es möglich, die Spannung komplett 
intern zu messen.
Ist aber nur für Fortgeschrittene:

http://ww1.microchip.com/downloads/en/AppNotes/00002447A.pdf

von Ingo E. (ogni42)


Lesenswert?

Ich würde es so lösen, wie von Georg vorgeschlagen: Nutze die 1.1V 
Referenz und messe (via 4k7 Widerstand) direkt an VCC.

Da die 1.1V aber eine hohe Exemplarstreuung (+/- 10% IIRC, genaueres im 
Dabla) haben, musst Du die vorher für Dein Exemplar kalibrieren. Für 
Deine Anforderungen reicht wahrscheinlich ein Labornetzteil und ggf. 
noch ein (gutes) Voltmeter.

von Michael L. (cybertracker)


Lesenswert?

Stefan ⛄ F. schrieb:
> Michael L. schrieb:
>> An den R5 komm ich wohl noch dran.
>
> Gut, dann ändere den auf 22kΩ und löte einen gleich großen 100nF
> Kondensator oben drauf.

Danke das werde ich versuchen

Georg M. schrieb:
> Michael L. schrieb:
>> LiFePo4 ohne LDO
>
> Direkt an der Batterie? Dann ist es möglich, die Spannung komplett
> intern zu messen.
> Ist aber nur für Fortgeschrittene:
>
> http://ww1.microchip.com/downloads/en/AppNotes/00002447A.pdf

Das hab ich auch gelesen. Beim LiFePo4 wäre das eine Idee.
Leider bringt er mir da nuf müll.

Ich habe es danach versucht:
https://www.arduinoforum.de/arduino-Thread-Messen-der-eigenen-Betriebsspannung-mit-dem-Arduino

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.