Forum: Mikrocontroller und Digitale Elektronik LCD Anzeige justieren


von Peter (Gast)


Lesenswert?

Hallo,
ich hab mal wieder ne Frage.
Ich will eine LCD Anzeige für ein Netzteil programmieren. Der 
Spannungswert wird mit dem Internen AD-Wandler eingelesen umgerechnet 
und auf dem LCD-Display angezeigt. Das klapp alles auch ganz gut.
Das Problem ist die Umrechnung. Der eingelesene Wert ist nicht linear, 
das heißt wenn ich die Anzeige zum Beispiel auf 5.0V justiere werden die 
5 V genau angezeigt. Aber je mehr ich die Spannung aufdrehe desto mehr 
weicht der angezeigt Wert vom ist Wert ab. Kann ich in C das irgendwie 
mit einer expotential Funktion lösen?

mfg peter

von Dennis (Gast)


Lesenswert?

Dann hast du doch eher einen Fehler in deiner Bit-Spannung-Umrechnung

von Peter (Gast)


Lesenswert?

adcval = ReadChannel(0);             u = ADC;
  u = u / 93,5;

ich mach ja eigentlich nicht mehr als das.

von Karl H. (kbuchegg)


Lesenswert?

Peter schrieb:
> adcval = ReadChannel(0);             u = ADC;
>   u = u / 93,5;
>
> ich mach ja eigentlich nicht mehr als das.

Nur dass sich das Dezimalkomma in C (so wie in den meisten 
Programmiersprachen) als Dezimalpunkt schreibt und nicht als Komma


  u = u / 93.5;


(und was soll der Quatsch mit 'den ADC nachher nochmal auslesen'? Dein 
ReadChannel wird dir ja wohl den gemessenen Wert als Rückgabewert 
liefern.

   u = ReadChannel( 0 ) / 93.5;

von Peter (Gast)


Lesenswert?

kann des am Op liegen? das gemessene Signal wird noch durch einen LM358 
invertiert und verstärkt

von Bernd N (Gast)


Lesenswert?

Was du suchst nennt sich Linearisieren.

Beitrag "ADC und Fixed-Point Arithmetik"

Das Beispiel zeigt dir wie man es über 2 Stützpunkte macht.

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


Lesenswert?

Peter schrieb:
> Aber je mehr ich die Spannung aufdrehe desto /mehr/
> weicht der angezeigt Wert vom ist Wert ab.
Das ist doch eine einfache Geradengleichung (evtl. mit Offset) und du 
hast offenbar eine falsche Steigung in der Berechnung...

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.