Forum: Mikrocontroller und Digitale Elektronik Sensor per ADC einlesen?


von Carsten Köditz (Gast)


Lesenswert?

Guten Abend!

Ich hänge schon wieder in meinem Projekt.

Ich hab nen ADU meines ATmega128 durch eure Hilfe in Betrieb genommen.
Ich wandle nun 5V! Das geht bei allen Eingängen sehr gut. Nur bei einem
weiß ich nicht weiter.
Ich möchte hier eine Temperatur Auf nem Display anzeigen. Ich benutze
den Sensor KTY16-6. Ich möchte den Temperatur Bereich von 0 bis 50°C
anzeigen. In diesem Bereich fallen an dem Sensor 1,8 - 2,4V ab.

Wie kann ich den Wert im ADCW Register in dem 0-5V und nicht die
1,8-2,4V stehen nun für mich "umbauen"??

Ich programmiere in C und benutze den CodeVisionAVR Compiler!

Danke jetzt schon!

Gruß

Carsten

von crazy horse (Gast)


Lesenswert?

im einfachsten Fall erstmal den Sensor als linear annehmen und einfach
den Messbereich umrechnen. 1,8V entsprechen 368, 2,4V 492. Macht einen
Offset von 368 und Delta 124.
Mal in Menschensprache (damit du auch noch was zu tun hast):-)
Ergebnis >=368 dann Ergebnis - 368, sonst 0.
Temperatur = Ergebnis*50/124.

Wird nicht allzugenau, musst wahrscheinlich eine Kennlinienkorrektur
vornehmen. Entweder mit einer Formel (aus dem Datenblatt des KTY) oder
mittels Tabelle.

von Carsten Köditz (Gast)


Lesenswert?

Ok, vielen Dank, hast mir sehr geholfen!

Es funktioniert. Zumindest die Abfrage!
Aber das mit dem (ergebnis * 50) / 124
verstehe ich nicht so ganz und es funktionier auch nicht so wie ich es
gerne hätte.

Es geht bei Null °C los, bei 1,8V, das ist super, aber meine Anzeige
geht dann bis 264°C...

Kannste mir die Zeile nochmal erklären?

Gruß

Carsten

von Dieter B (Gast)


Lesenswert?

Hallo Carsten

Du willst doch 0 bis 50 Grad messen. Dabei kommen Werte vom AD Wandler
zwischen 368 bis 492 raus. Also 124 verschiedene Werte für 50 Grad.

Damit ergibt sich doch eine Änderung von 1 Bit vom AD Wandler 50 Grad /
124 Schrittw = 0,4032 Grad / Schritt.

Was anderes sagt die Formel oben doch auch nicht aus.

Gemessen 400 ergibt  (400 - 368 ) * ( 50 / 124 ) = 12,09 Grad

Hoffe das hilft

MFG
Dieter

von Carsten Köditz (Gast)


Lesenswert?

Ok, Danke dir, habs verstanden!

Das ist allerdings schlecht für mich.
Weil dann kann ich ja nur in 0,4°C Schritten anzeigen..
Stimmt das? Und das ist ja dann auch total unabhängig
davon ob ich nur von 10-30°C anzeige, bleibt immer bei 0,4°
Schritten....
Ok, trotzdem Danke!

von Dieter B (Gast)


Lesenswert?

Hallo Carsten

Das einfachste für dich wäre doch, AREF von 2,56 Volt zu nehmen. Dann
hast du doch schon eine Auflösung von 0,2083 Grad / Schritt.

Mit geschickter Wahl von AREF kannst du dir auch die Rechnerei
vereinfachen.

Oder mit OP das Signal aufbereiten.

Oder, oder oder ....

MFG
Dieter

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.