Forum: Mikrocontroller und Digitale Elektronik 2 verschiedene Spannungen an einem analogen Eingang


von jogi (Gast)


Lesenswert?

Hallo zusammen ich habe einn Atmega32 und will über einen Eingang 2 
verschiedene Spannungen einlesen.

- 5V
- 10V

da 10V nicht einfach draufgegeben werden dürfen habe ich eine OP 
beschaltung vor den Eingang gebaut der mir die Spannung immer halbiert.

10V werden 5V

und 5V werden 2,5V

so jetz habe ich das Problem wie ich jetzt die verschiedenen Spannungen 
einlesen kann , da meine refspannung 5V beträgt

mfg

von spess53 (Gast)


Lesenswert?

Hi

>da 10V nicht einfach draufgegeben werden dürfen habe ich eine OP
>beschaltung vor den Eingang gebaut der mir die Spannung immer halbiert.

Ein Spannungsteiler hätte es wahrscheinlich auch getan.

>so jetz habe ich das Problem wie ich jetzt die verschiedenen Spannungen
>einlesen kann , da meine refspannung 5V beträgt

Und an welcher Stelle?

MfG Spess

von jogi (Gast)


Lesenswert?

wie meinst du das an welcher stelle?

Interne REFspg falls du das meinst

von spess53 (Gast)


Lesenswert?

Hi

>Interne REFspg falls du das meinst

An welcher Stelle des Einlesens hast das Problem?

MfG Spess

von sportI (Gast)


Lesenswert?

naja die 10V klappt ohne Probleme da die auf 5V gemindert werden und mit 
der Ref Spg. von 5V verglichen werden.

nun stellt sich mir die Frage wie ich das bei den 2,5V machen soll... 
rein Theoretisch müsste ich doch den Ausgangswert von ADCW einfach mal 2 
nehmen dann müsste das gehen und ich könnte mit verschiedenen Rechnungen 
weitermachen...

von spess53 (Gast)


Lesenswert?

Hi

Der ADC gibt dir je nach Eingangsspannung einen Wert von 0..1023 (0..5V) 
aus.
Daraus die Spannung zu berechnen ist simple Mathematik. Steht übrigens 
auch im Datenblatt.

MfG Spess

von Hurz (Gast)


Lesenswert?

Hallo,

wie ist Dein erster Post gemeint:
1) Du willst "über einen Eingang 2 verschiedene Spannungen einlesen" -
2 verschiedene Spannungen bedeutet das "2 Kanäle"? Oder nacheinander 
einmal 10V und einmal 5V?

allgemein ist es so, dass Dein Atmega einen ADC hat, vor dem ein 
Umschalter ist, mit dem Du einen von 8 ADC-Kanälen auf den ADC-Eingang 
legen kannst.
Ausserdem braucht der ADC eine Referenzspannung. Diese kannst Du anlegen 
oder eine interne Referenz benutzen. Die Spannung darf nicht höher als 
die Versorgungsspannung sein. Legst Du nun an einen ADC-Pin eine 
Spannung an, die genau der Referenzspannung entspricht, und wählst den 
Kanal für den ADC aus, misst er den Wert 1024 (=2^10).
Hast Du eine Referenzspannung von Beispielsweise 5V und willst maximal 
10V messen, musst Du Deine Messspannung dem Meßbereich anpassen. Am 
einfachsten linear mit einem Spannungsteiler. Angenommen Du baust Dir 
mit 2 Widerständen einen Spannungsteiler, an dessen Ausgang die Hälfte 
der Eingangsspannung liegt, und Deine Messspannung von 10V liegt am 
Eingang an, liegt am Ausgang des Spannungsteilers eine Messspannung von 
5V an. Der ADC würde hier wieder 1024 messen. Du selbst weisst aber, 
dass dieser Wert nur der Hälfte der Spannung entspricht, musst also, 
wenn Du z.B. die gemessene Spannung auf dem Display ausgeben willst, mit 
2 Multiplizieren. - Ja, das müsstest Du dann im Programm machen.
Damit hast Du den Messbereich an den Maximalen Wert angepasst, kannst 
also statt 5V maximal 10V messen. Das hat jedoch einen Preis: durch die 
lineare Transformation und konstante Anzahl der 1024 Teilbereiche Deines 
Messbereiches, misst Dein ADC nun nur noch "halb so genau".
Dazu ein Beispiel: ohne Spannungsteiler bedeutet der ADC-Wert 1: 
1/1024*Vref = 1/1024*5V = 4,88mV. Das ist der kleinste messbare 
Spannungsunterschied.
Schaltest Du einen 2:1 Spannungsteiler vor den ADC, kannst Du nur 
1/1024*10V =9,77mV genau messen. Der ADC-Wert 1 bedeutet also 9,76mV.
Hast Du schon im Tutorial gelesen?

von sportI (Gast)


Lesenswert?

Also macht das also nichts wenn die Referenzspannung 5V ist und ich eine 
Spannung von 2,5V einlesen will?

von Hurz (Gast)


Lesenswert?

nicht 1024 sondern 1023.

von spess53 (Gast)


Lesenswert?

Hi

>Also macht das also nichts wenn die Referenzspannung 5V ist und ich eine
>Spannung von 2,5V einlesen will?

Nein. Die Referenzspannung bestimmt lediglich die maximal messbare 
Spannung.

MfG Spess

von Hurz (Gast)


Lesenswert?

nein, der ADC ist doch dazu da, um Spannungen zu messen, er gibt Dir 
einen Wert äquivalent zur angelegten Spannung aus. bei 2,5 V gibt er Dir 
512 als Wert aus.

Kann ich Deiner Fragestellung entnehmen, dass Du gar keinen ADC 
brauchst? Mir kommt es so vor, dass Du nur mit dem Controller schauen 
willst, ob ein Eingangspin "high" oder "low" ist und fragst Dich, ob der 
auch bei 2,5V schon high ist, kann das sein?

von sportI (Gast)


Lesenswert?

nein, will schon den analogwert einlesen... dann rechne ich ihn in eine 
spg wieder um und gebe ihn auf dem Display aus!

aha also hab ich das richtig verstanden das er bei einer REF spg.  von 
5V und einer Eingangsspannung von 5V 1023 Werte max ausgibt und bei 2,5V 
eingangsspannung gibt er max 511 werte aus!

stimmt das so?

von spess53 (Gast)


Lesenswert?

Hi

>aha also hab ich das richtig verstanden das er bei einer REF spg.  von
>5V und einer Eingangsspannung von 5V 1023 Werte max ausgibt und bei 2,5V
>eingangsspannung gibt er max 511 werte aus!

So in etwa. Du solltest aber eher mit Werten um 1023 bzw. 511 rechnen.

MfG Spess

von Hurz (Gast)


Lesenswert?

wenn du mit eingangsspannung = messpannung meinst, dann ja.

also, nochmal (hoffentlich unmißverständlich):
Dein Controller ist mit 5V versorgt.
Deine Referenzspannung beträgt 5V.

dann gilt:
Messspannung = 5 V   --> ADC misst 1023
Messspannung = 2,5 V --> ADC misst 512
Messspannung = 1V    --> ADS misst 205
Messspannung = x V   --> ADC misst (x V / 5V) * 1024

von sportI (Gast)


Lesenswert?

Danke sehr.

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.