www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Temperatur Auslesen (NTC)


Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe mich die letzte Woche mit dem auslesen der Temperatur
beschäftigt.

Nur wie lese ich diese am genauesten aus?
Ich habe mir eine Tabelle erstellt, in der ich die Spannungen
abspeicher die der sensor liefert.

//Temperatur Tabelle (Spannungen in mV
static uint16_t table_temp[] PROGMEM = {2936, 2645, 2358, 2085, 1829,
1594, 1383, 1196, 1032, 889, 765, 659, 569, 491, 425, 369, 321, 279,
244, 214, 188, 166, 147, 130, 116, 103, 92, 82, 74, 67, 60};

Nun die Frage, gibt es eine einfachere  schnellere  genauere lösung,
als die ich unten aufgeführt habe?

// Lese die Temperatur eines Kanals ein
uint16_t ReadTemp(uint8_t mux)
{
  uint16_t temp = 0, temp1 = 0, temp2 = 0;
  uint8_t  i;
  temp2 = ReadChannel(mux); (liesst eine Spannung ein)
  for(i = 0; i<= 30; i++)
  {
    temp = pgm_read_word(&table_temp[i]);
    if((temp2 <= temp1) && (temp2 >= temp))
    {
      temp2 = temp2 - temp;
      temp1 = temp1 - temp;
      temp1 = 50000 / temp1;
      temp1 = temp1 * temp2;
      temp1 = temp1 / 10000;
      temp = (i*5)-temp1;
      i = 30;
    }
    temp1 = temp;
  }
  return temp;
}

Ich gehe hin, und rechne die Differenzspannung zwichen dem "ist Wert"
und dem nägstem Punkt ein.
dann rechne ich 50000 / diese Spannung und habe den Temperaturwert pro
mV
Diesen Wert multipliziere ich mit dem Rest, (der in der Tabelle steht -
ADC Wert)
und ziehe diesen Wert von dem Temperatur Wert wieder ab.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sieht doch gut aus..

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.