mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Sensor per ADC einlesen?


Autor: Carsten Köditz (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Carsten Köditz (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Dieter B (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Carsten Köditz (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Dieter B (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.