Forum: Mikrocontroller und Digitale Elektronik Umrechnen von ADC Wert zu Einheit


von Tristan (Gast)


Lesenswert?

Hallo Forum,

ich bin neu mit dem STM32 Discovery F4 zugange.

Ich versuche gerade einen Temperatur-Sensor (0-250°C, 4 bis 20mA) über 
einen Widerstand auszulesen.

Der ADC liefert mir ja für 12bit = 4096.

3,256V ist die Spannung welche am ADC hängt (Vref). So ergibt sich:


Ue = Xd * Uref / 2^n


Ue = ADC Spannung
Xd = ADCWert
Uref = Vref = 3,256
2^n = 4096


Dann hab ich doch bspw beim ADC wert 512 :

512 * 3,256V
-------------     = 0,407V
4096


Wenn ich jetzt die Temperatur haben möchte vom mA Strom Signal des 
Sensor:

                0°C             250°C
ADC     0mA    4mA  10mA  20mA

ADC1  0,000V  0,653V  1,608V  3,206V
ADC2  0,000V  0,618V  1,538V  3,066V


dann muss ich doch so normieren:

y = (y1-y0) / (x1-x0) * (x-x0) + y0

hierbei ist

x: =    aktueller Wert in V
x0:=   0,653V   = untergrenze ADC = 4mA
y0:=   0        = untergrenze Einheit = 0,0 °C
x1:=   3,206V   = obegrenze ADC = 20mA
y1:=   250      = obegrenze Einheit = 250,0°C


y:=   Sklaiertes Ergebnis


Beispiel 10mA entspricht 0,653V  (müsste 125°C sein theoretisch):


(250-0)
-----------------------------------------
(3,206V-0,653V) * (1,608V-0,653V) + 0



250
-------------------
2,553 *  0,955   +0



 = 102,538°C

es kommen keine 125°C raus.
Wo ist denn mein Fehler? Ist die Formel so wie ich dachte falsch oder 
rechnet man anders die einheiten raus?




Viele Grüße
Tristan

von Sam (Gast)


Lesenswert?

Ohne alle deine Gedanken zu überprüfen würde ich jetzt mal sagen, dass 
das daran liegt, dass 125°C nicht 10mA sondern 12mA entsprechen ;)

von Tristan (Gast)


Lesenswert?

oops!

4mA = 0°C
10mA = 93,75°C
12mA = 125°C
20mA = 250°C



                    Strom-gemessen(10mA) -4mA
Temperatur(°C) =    -------------------------- * 250(°C) max Wert des 
Sensors
                            16mA

= 93,75°C    ... also ist die abweichung 9°C  zu den errechneten 102,x°C 
oben.


...

von frist (Gast)


Lesenswert?

Hi.

Her past doch was nicht zusammen:

≥ ADC 0mA 4mA 10mA 20mA
≥ ADC1 0,000V 0,653V 1,608V 3,206V
≥ ADC2 0,000V 0,618V 1,538V 3,066V

Beim fünffachen Strom solltest du doch die fünffache Spannung bekommen, 
das ist aber nicht der Fall. Irgend was ist da ziemlich nichtlinear, 
deine Rechnung setzt aber Linearität voraus.

Grüße
Flo

von Tristan (Gast)


Lesenswert?

ne der eingang ist 0..20ma  der   ausgang 0...3,3v

10ma = 3,3v/2   idealerweise

von Thomas S. (df1po)


Lesenswert?

Die Steigung (y1-y0) / (x1-x0) mit (x-x0) multipizieren, dann stimmts 
(nicht in den Nenner). Bei 10mA kommen eben 93,... Grad raus. 
(250C-0C)/(10mA-4mA) * (10mA-4mA) = 15.625C/mA * 6mA= 93.75C.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Tristan schrieb:
> Der ADC liefert mir ja für 12bit = 4096.

Pedanterie: Das tut er nicht.

Ein 12-Bit ADC liefert Werte im Intervall von 0 bis 4095. Der Wert 4096 
aber ist mit 12 Bit nicht darstellbar.

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.