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
adcval = ReadChannel(0); u = ADC; u = u / 93,5; ich mach ja eigentlich nicht mehr als das.
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;
Was du suchst nennt sich Linearisieren. Beitrag "ADC und Fixed-Point Arithmetik" Das Beispiel zeigt dir wie man es über 2 Stützpunkte macht.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.