Forum: Projekte & Code ADC-Wert z.B. in Spannung umrechnen und dezimal ausgeben mittels Tabellen, auch Linearisieren


von eProfi (Gast)


Angehängte Dateien:

Lesenswert?

Im Anhang ein etwas anderer Weg, einen Wert z.B. vom ADC umzurechnen und 
auszugeben.

Die erste Tabelle ist z.B. für einen 10-Bit-ADC 1024 Words lang und 
beinhaltet -falls gewünscht- die Linearisierung und eine Vorumwandlung 
in Digits.
Aufbau z.B.: für 0..39999:
2 Bits 10000er
7 Bits   100er
7 Bits     1er

z.B. für 0..79998:
3 Bits 10000er
7 Bits   100er
6 Bits     1er (nur gerade Werte)

Auch Vorzeichen ist möglich.

Fullscale kann nach Belieben 3.2968, 3.3000, 4.9951, 5.0000 oder ein 
anderer Wert sein.

Die zweite Tabelle könnte durch Software ersetzt werden und beinhaltet 
die Umwandlung von 7bit nach 2 Digits.

Vorteile:
 - sehr schnelle Routine, nur ein paar Tabellenzugriffe.
 - Linearisierung möglich z.B. NTC -> Temperatur

Nachteil: rel. lange Tabelle im PROGMEM

Viel Spaß
Kommentare erwünscht!

von Falk B. (falk)


Lesenswert?

@ eProfi (Gast)

>Kommentare erwünscht!

Naja, schon ganz nett, aber in den meisten Fällen wohl unnötig. Wenns um 
Geschwindigkeit geht, speichert man die rohen ADC-Daten und rechnet 
offline um. Und für eine User-Ausgabe breucht man keine superschnelle 
Tabelle, da reicht ein direkte, kompakte Umrechung. Wo also wäre die 
Anwendung?

MFG
Falk

von eProfi (Gast)


Lesenswert?

Hallo Falk,
danke für Deinen Beitrag,
mich hat halt die Doppel- oder sogar Dreifachfunktion (Linearisierung, 
Umrechnung (Skalierung) und BCD-Wandlung) der Tabelle gereizt.

Wollte nur mal zeigen, dass es auch anders (unkonventionell) geht.


Noch ein Nachtrag zum besseren Verständnis:
Aufbau z.B.: für 0..39999:
2 Bits 10000er
7 Bits  1000er und 100er
7 Bits    10er und   1er

Immerhin hat es bisher 101 Leute interessiert.

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.