Forum: Analoge Elektronik und Schaltungstechnik Spannungen mit einem 8-Bit Controller messen


von Shark (Gast)


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ß

von Sam .. (sam1994)


Lesenswert?

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.

von steffen (Gast)


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

von Dietrich L. (dietrichl)


Lesenswert?

Samuel K. schrieb:
> einfach an einen Eingang den
> Spannungsteiler an den anderen ohne
Aber eine Schutzbeschaltung des Eingangs nicht vergessen!
> Außerdem kann er auch das
> Eingangssignal verstärker, siehe Datenblatt.
Nicht der ATmega8. Da müsste er schon einen anderen nehmen.

Gruß Dietrich

von Sam .. (sam1994)


Lesenswert?

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

Natürlich muss ein entsprechend großer Widerstand + Kondensator davor.

Dietrich L. schrieb:
> Nicht der ATmega8. Da müsste er schon einen anderen nehmen.

Atmega88 müsste es können.


Als Spannungsteiler wäre übrigens 1/10 besser geeignet (50V->5V).

von Shark (Gast)


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?

von Sam .. (sam1994)


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.

von Shark (Gast)


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 :)

von Harald W. (wilhelms)


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

von Sam .. (sam1994)


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).

von Floh (Gast)


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).
:-)

von Sam .. (sam1994)


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.).

von Anja (Gast)


Lesenswert?

Shark schrieb:
> kennst du vlt einen der 12-Bit oder mehr hat?

Nimm einfach einen PIC da gibt es genügend mit 12 Bit A/D-Wandler.
z.B. dsPIC30F4013 oder einen aus der PIC24F(V)32KA304-Familie.

Gruß Anja

von MaWin (Gast)


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.

von Harald W. (wilhelms)


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

von Martin (Gast)


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.

von Harald W. (wilhelms)


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

von Sam .. (sam1994)


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.

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.