Forum: Mikrocontroller und Digitale Elektronik STM32 U Messung


von #BIO (Gast)


Lesenswert?

Abend,

ich möchte mit einem STM32 eine Spannung messen.
Die Spannung beträgt max. 36V. Mit dem Spannungsteiler gehe ich auf 
einen ADC mit 12Bit Auflösung.

Ue: 0V -> 0V am ADC
Ue: 36V -> 3.3V am ADC
Auflösung: 3.3V / 4096 = 0,806mV

Nur, wie bekomme ich diese Zahlen in eine Rechnung in C-Code?

So hätte ich ja die Spannnung am ADC:
ue = adc_val * aufloesung

Und wie bekomme ich die Spannung Ue?
Muss das Widerstandsverhältnis mit einberechnet werden?
Wie macht man das richtig?

Hat jemand einen Tipp für mich?
danke, #BIO

von Jim M. (turboj)


Lesenswert?

Mein Tipp: Dreisatz.

von Joe F. (easylife)


Lesenswert?

2. tip: umgekehrte rechnung wie beim spannungsteiler.
wenn was mit 10.9091 rauskommt, ists richtig.

von Joe F. (easylife)


Lesenswert?

3. tip: man könnte auch sagen, du hast eine auflösung von 36V / 4096

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Joe F. schrieb:
> 3. tip: man könnte auch sagen, du hast eine auflösung von 36V / 4096
Ich würde in mV oder gar uV rechnen, dann käme ich ohne float aus...
Damm könnte man sagen, ein ADC Increment hat einen Wert von 
36000000uV/4096 = 879uV...

Und dann ist die Rechnung recht einfach:
long Spannung_in_uV;
:
:
Spannung_in_uV = ADC * 879;

Das wars...
Und wenn du später mal die Spannung in Volt oder Zehntel Volt brauchst, 
musst du nur die Spannung_in_uV nochmal teilen (und evtl. runden).

von Joe F. (easylife)


Lesenswert?

Lothar M. schrieb:
> 36000000uV/4096 = 879uV...

Kleiner Komma-Verschieber:

36000000uV/4096 = 8789uV

>
> Und dann ist die Rechnung recht einfach:
> long Spannung_in_uV;
> :
> :
> Spannung_in_uV = ADC * 879;

Spannung_in_uV = ADC * 8789;

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.