Gast
#2817216
Hi, ich möchte mit dem Sensor NTC 202 die Umgebungstemperatur auslesen und habe dazu einige Fragen. Verwendeter Sensor: http://www.temperatur-shop.de/index.php?cat=KAT72&product=TS-NTC-202&sid78910D081B7F411D80FC469D5E1017A8=76db6570899648125176c87ea7ee2e5a B-Wert: 3976 K R bei 25°C: 2,00 kOhm Temperaturbereich: -60°C bis 150°C Schaltung: im Anhang (ISP-Buchse für den Programmer wurde im Schaltplan weggelassen | es wird ein interner Takt von 8MHz verwendet | an PortB befindet sich ein LCD zur Ausgabe der Temperatur) 1. Frage: Wie kann ich den richtigen Widerstand ausrechnen, den ich für den Sensor verwenden muss? Hier ( http://www.umnicom.de/Elektronik/Mikrokontroller/Atmel/AtFan/AtFan.html ) gibt es einen Rechenweg, doch leider verstehe ich nicht wie ich aus dem B-Wert und dem Widerstand bei 25°C auf den Linearisierungswiderstand komme. (ich habe im Schaltplan einen 3,3kOhm Widerstand verwendet) 2. Frage: Wie kann ich aus dem ADC-Wert die Richtige Temperatur ausrechnen? Funktion zum Auslesen der Spannung an ADC0: uint16_t readADC(uint8_t channel) { uint8_t i; uint16_t result = 0; // Den ADC aktivieren und Teilungsfaktor auf 64 stellen ADCSRA = (1<<ADEN) | (1<<ADPS2) | (1<<ADPS1); // Kanal des Multiplexers waehlen // Interne Referenzspannung verwenden ADMUX = channel | (1<<REFS1) | (1<<REFS0); // Den ADC initialisieren + Dummyreadout ADCSRA |= (1<<ADSC); while(ADCSRA & (1<<ADSC)); // 3x die analoge Spannung and Kanal channel auslesen // dann Durchschnittswert ausrechnen for(i=0; i<3; i++) { // Eine Wandlung ADCSRA |= (1<<ADSC); // Auf Ergebnis warten... while(ADCSRA & (1<<ADSC)); result += ADCW; } // ADC wieder deaktivieren ADCSRA &= ~(1<<ADEN); result /= 3; return result; } Jetzt brauch ich noch eine Funktion zum umrechnen in °C. Dafür gibt es hier ( http://preis-ing.de/e_calc/index.php?seite=auternzc ) ein Programm, dass den Code erzeugt. Ich möchte am Ende z.B. eine Temperatur von 24,7 °C - muss ich dann also bei "Einheit in °C" 0,1 eintragen? Und welche Werte muss ich in den Array mit den Stützpunkten schreiben? Ich habe hier eine Tabelle ( http://www.produktinfo.conrad.com/datenblaetter/500000-524999/502356-in-01-de-Widerstandstabelle.pdf ), doch ich weiß nicht welche Spalte in den Array hineinkommt. Ich würde mich um Hilfe sehr freuen! Gruß.
