Spannungen mit einem 8-Bit Controller messen

Gast #2417202
Lesenswert?

Hallo zusammen,

nach einigen Recherchen im World Wide Web habe ich rausgefunden,dass man 
Spannungen einfach mit einem Mikrocontroller und einen Spannungsteiler 
messen kann.

Das hört sich wirklich unkompliziert und einfach an.

Mein Problem lautet:

Ich möchte Gleichspannungen im Bereich von 0-50V messen.Das wäre dann 
mit einem ATmega8 und einem 1/20 Spannungsteiler realisierbar.was ist 
dann wenn eine Spannung von 0.1V zu messen wäre,kann dann der AD-Wandler 
mit dem 5mV was anfangen?oder braucht er in diesem Fall einen 
Verstärker?

Ich hab mir überlegt das Problem mit einer automatischen 
Bereichsumschaltung zu lösen,weiss leider nicht wie ich das machen 
könnte.
(einen Verstärker(x2.5) für den Bereich 0V-0.99V,einen 
Spannungsteiler(1/4) für den Bereich 1V-9.99V und einen 
2.Spannungsteiler(1/25) für den Bereich 10V-50V, wie schalte ich aber 
automatisch zwischen diesen Bereichen?)

Außerdem wie siehts allgemein mit der Genauigkeit bei so einer einfach 
Schaltung (mit einem Spannungsteiler)?

Vielen Dank im Vorraus

Gruß
Gast #2417232
Lesenswert?

Samuel K. schrieb:
> Der Atmega hat doch schon einen Mux, einfach an einen Eingang den
> Spannungsteiler an den anderen ohne. Außerdem kann er auch das
> Eingangssignal verstärker, siehe Datenblatt.

/!\
ich wage es zu bezweifeln dass der AVR es mag wenn man ihm 50V an einen 
Pin legt !!!

wenn du einen mit 12bit ADC hast:
5V/4096=1.2mV Auflösung auf die 5V

mit einem Spannungsteiler von 1/20:
1.2mV*20=ca.0.025V  Auflösung auf deinen kompletten 0-50V Bereich
Gast #2417263
Lesenswert?

Danke für eure Antworten,

Samuel K. schrieb:
> Der Atmega hat doch schon einen Mux, einfach an einen Eingang den
> Spannungsteiler an den anderen ohne. Außerdem kann er auch das
> Eingangssignal verstärker, siehe Datenblatt.

In meinem Fall wäre das dann so:

Direkt (0V-0.99V)               ---- ADC3 ---- Mux ---- Verstärker
Spannungsteiler 1 1V-9.99V      ---- ADC1 ---- Mux
Spannungsteiler 2 10V-50V       ---- ADC2 ---- Mux

natürlich mit Schutzschaltung :)

Welche Eingangsspannung an den ADCs ist die "Richtige" kann man per 
Software realisieren,wie groß ist der Aufwand bei dieser Variante?

steffen schrieb:

> wenn du einen mit 12bit ADC hast:
> 5V/4096=1.2mV Auflösung auf die 5V
>
> mit einem Spannungsteiler von 1/20:
> 1.2mV*20=ca.0.025V  Auflösung auf deinen kompletten 0-50V Bereich

wie bist du auf 4096 gekommen?

Das Problem liegt daran,dass die meisten 8-Bit AVRs haben nur 10-Bit 
ADCs.kennst du vlt einen der 12-Bit oder mehr hat?
#2417269
Lesenswert?

Im Mega gibts nur einen ADC, also so:
Direkt (0V-0.99V)  ADC -- Mux -- Verstärker -- Schutz -- Teiler -- In1
Spannungsteiler 1 1V-9.99V  |----------------- Schutz -- Teiler -- In2
Spannungsteiler 2 10V-50V   |--------------------------- Teiler -- In3

Ein Mega88 spart dir den Verstärker und du brauchst zusätzlich weniger 
Eingänge, da der interne Verstärker umschaltbar ist.

> natürlich mit Schutzschaltung :)
>
> Welche Eingangsspannung an den ADCs ist die "Richtige" kann man per
> Software realisieren,wie groß ist der Aufwand bei dieser Variante?

Man kann den zu Messenden Eingang einfach auswählen.

> steffen schrieb:
>
>> wenn du einen mit 12bit ADC hast:
>> 5V/4096=1.2mV Auflösung auf die 5V
>>
>> mit einem Spannungsteiler von 1/20:
>> 1.2mV*20=ca.0.025V  Auflösung auf deinen kompletten 0-50V Bereich
>
> wie bist du auf 4096 gekommen?
2^12
>
> Das Problem liegt daran,dass die meisten 8-Bit AVRs haben nur 10-Bit
> ADCs.kennst du vlt einen der 12-Bit oder mehr hat?

12bit bekommst du auch noch mit einem Mega hin (Oversampling) Einfach 
das Signal mehrmals abtasten und addieren. Für 12bit sollte man es 
(glaube ich) 16mal abtasten und dann 2 mal nach rechts schieben.
Gast #2418246
Lesenswert?

Samuel K. schrieb:
> Im Mega gibts nur einen ADC, also so:
> Direkt (0V-0.99V)  ADC -- Mux -- Verstärker -- Schutz -- Teiler -- In1
> Spannungsteiler 1 1V-9.99V  |----------------- Schutz -- Teiler -- In2
> Spannungsteiler 2 10V-50V   |--------------------------- Teiler -- In3
>
> Ein Mega88 spart dir den Verstärker und du brauchst zusätzlich weniger
> Eingänge, da der interne Verstärker umschaltbar ist.
>
>> natürlich mit Schutzschaltung :)
>>
>> Welche Eingangsspannung an den ADCs ist die "Richtige" kann man per
>> Software realisieren,wie groß ist der Aufwand bei dieser Variante?
>
> Man kann den zu Messenden Eingang einfach auswählen.
>

kann man das automatisch machen?

welche der beiden Varianten wäre dann besser, effizienter? 3 Bereiche 
oder mit dem 12-Bit ADC und 5V Referenzpannung?

Danke Samuel für deine Hilfe :)
#2418282
Lesenswert?

Samuel K. schrieb:

> 12bit bekommst du auch noch mit einem Mega hin (Oversampling) Einfach
> das Signal mehrmals abtasten und addieren. Für 12bit sollte man es
> (glaube ich) 16mal abtasten und dann 2 mal nach rechts schieben.

Mit Oversampling kannst Du zwar die Auflösung steigern, nicht aber die
Genauigkeit. Ich denke, die Entwickler der uPs wissen schon, warum sie
sich mit 10 Bit zufrieden gegeben haben...
Gruss
Harald
#2418288
Lesenswert?

Harald Wilhelms schrieb:
> Mit Oversampling kannst Du zwar die Auflösung steigern, nicht aber die
> Genauigkeit. Ich denke, die Entwickler der uPs wissen schon, warum sie
> sich mit 10 Bit zufrieden gegeben haben...

Kalibrieren muss man das ganze, aber es ist gut möglich 12-13bits sowohl 
Auflösung als auch Genauigkeit zu erhalten. Zumindest funktionieren 
13bit bei meinem Logger (auch Genauigkeit).
Gast #2418293
Lesenswert?

Meiner Meinung nach gehts am einfachsten so:

Spannungsteiler 10/1, um die Eingangsspannung auf 0-5V zu reduzieren.

Jetzt kann mit Referenzspannung 5V (AVcc) der Bereich 0-50V mit 10bit 
gemessen werden (ca 50 mV Auflösung).
Falls es im unteren Bereich noch genauer sein soll, kann man dann die 
Referenz auf die internen 2,56 Volt umschalten. So erhöht sich die 
Auflösung auf ca 25 mV.
Je nach Prozessor kannste möglicherweise auch noch die interne Bandgap 
als Referenz nehmen (1.1V), damit wär die Auflösung noch besser (im 
Spannungsbereich 0-10V).
:-)
#2418303
Lesenswert?

Shark schrieb:
> kann man das automatisch machen?
Programmieren muss man es schon, sonst weiß der µC ja nicht was er tun 
soll ;)
http://www.mikrocontroller.net/articles/AVR-Tutorial:_ADC

Shark schrieb:
> welche der beiden Varianten wäre dann besser, effizienter? 3 Bereiche
> oder mit dem 12-Bit ADC und 5V Referenzpannung?

Ich würde den bis 10V Bereich auch rauslassen, sollte die Auflösung 
nicht reichen -> Oversampling.


Von den internen Referenzen würde ich allerdings ohne Kalibrierung 
abraten: Sie können um +-10% von der nominalen RefSpannung abweichen 
(ohne Kal.).
Gast #2418337
Lesenswert?

> Außerdem wie siehts allgemein mit der Genauigkeit bei
> so einer einfach Schaltung (mit einem Spannungsteiler)?

Erst mal hängt die Genauigkeit von der (Vergleichs-)referenz ab.

Die 5V aus einem 7805 sind nicht nur 5% ungenau, sondern auch nicht 
stabil.

Die interne Vref von 2.5V oder 1.1V eiens AVR ist ziemlich ungenau 
(+/-10%), aber 1000 mal stabiler als die 5V.

Extern an AREF angeschlossenen Spannungsreferenzen wie LM4120 können 
fast beliebig genau sein.

Dann geht es um die Auflösung, wenn du 50V aus 2.5V runterteilst, teilst 
du 0,1V auf 5mV, das geht nah an die Auflösungsgrenze des 10 bit und 
1024 Stufen A/D-Wandlers.

Du kannst also 50V in 0.1V Schritten anzeigen, aber nicht erwarten, daß 
ein 0.1V Messbereich existiert in dem du noch 100uV messbar wären.

Professionelle Multimeter machen es tatsächlich durch unterschiedliche 
Spannungsteiler (und eventuell verstärkende OpAmps), aber auch im 
kleinsten Messbereich muß ein hochohmiger Widerstand in Reihe zum 
Eingang liegen, damit bei Überspannung nicht der uC kaputt geht.
#2418342
Lesenswert?

Samuel K. schrieb:
> Harald Wilhelms schrieb:
>> Mit Oversampling kannst Du zwar die Auflösung steigern, nicht aber die
>> Genauigkeit. Ich denke, die Entwickler der uPs wissen schon, warum sie
>> sich mit 10 Bit zufrieden gegeben haben...
>
> Kalibrieren muss man das ganze, aber es ist gut möglich 12-13bits sowohl
> Auflösung als auch Genauigkeit zu erhalten. Zumindest funktionieren
> 13bit bei meinem Logger (auch Genauigkeit).

...und wie hast Du das ganze kalibriert? Mit einem 8-stelligen 
Voltmeter?
Gruss
Harald
Gast #2418477
Lesenswert?

Shark schrieb:
> Außerdem wie siehts allgemein mit der Genauigkeit bei so einer einfach
> Schaltung (mit einem Spannungsteiler)?

Bei einem Spannungsteiler für 10-bit Genauigkeit müssen die 
Spannungsteilerwiderstände von der Genauigkeit (Stabilität) deutlich 
besser als 0.1% sein. Das gilt genauso, wenn die Schaltung komplizierter 
ist, solange die Impedanz des Spannungsteilers nicht stört.
#2418488
Lesenswert?

Martin schrieb:

> Bei einem Spannungsteiler für 10-bit Genauigkeit müssen die
> Spannungsteilerwiderstände von der Genauigkeit (Stabilität) deutlich
> besser als 0.1% sein. Das gilt genauso, wenn die Schaltung komplizierter
> ist, solange die Impedanz des Spannungsteilers nicht stört.

Ich denke, bei 0,1% Auflösung sollten auch Spannungsteilerwiderstände
mit 0,1% Genauigkeit reichen (gibts bei Reichelt für 19ct). Es glaubt
doch wohl keiner ernsthaft, mit einem uP-AD-Wandler eine höhere
Genauigkeit als mit den meisten Multimeter zu erzielen.
Gruss
Harald
#2418548
Lesenswert?

>> Kalibrieren muss man das ganze, aber es ist gut möglich 12-13bits sowohl
>> Auflösung als auch Genauigkeit zu erhalten. Zumindest funktionieren
>> 13bit bei meinem Logger (auch Genauigkeit).
>
> ...und wie hast Du das ganze kalibriert? Mit einem 8-stelligen
> Voltmeter?
5 Stellig reicht schon, Widerstände kann man selektieren.


Für den Spannungsteiler sollte man gleich hochohmige Widerstände nehmen, 
ein Kondensator (10nF) dahinter und man spart sich die Schutzschaltung.

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