Temperaturmessung 250-300° Atmel

Gast #527037
Lesenswert?

Hallo,

ich suche eine Möglichkeit Temperaturen mit einem Atmega/tiny zu messen, 
wobei die obere Grenze im Bereich von 250-300° liegen muss.
Das ganze bräuchte ich gradgenau, möglichst billig und wenn's geht per 
i²c oder spi.

Kennt jemand eine Schaltung/ ein Bauteil was dies leisten kann?

Dank i.V.
Patrick
(Firma: Promaxx.net) #527212
Lesenswert?

Proffesionelle Thermoelemente kannst Du bei Greissinger kaufen. Selbst 
da sollten sie billiger als 60€ sein. (Ich habe da noch welche liegen, 
die ich nicht brauchen kann).
Und dann kannst Du bei allen Versendern NiCr-Ni-Elemente kaufen, die 
ohne Verpackung sind, also nur Adern in Glasseide o.ä. mit Stecker. Die 
liegen selbst einem 30€ Multimeter bei.
Gast #527477
Lesenswert?

Eine Diode macht die 300° mit Sicherheit nicht mit. Löten ist da auch 
nicht mehr.
Günstig und evtl. ohne Zusatzhardware wäre ein PT1000. Mit Oversampling 
und Kennlinienlinearisierung sollten 1° möglich sein...
... aber wie eichen ?? ;o))
Gast #527548
Lesenswert?

> Das ganze bräuchte ich gradgenau ....

Das halte ich für illusorisch, da der Temperaturgradient innerhalb des 
Ofens ein Vielfaches davon ist.

Als Anhaltspunkt:
Ein Thermoelement Typ K nach DIN IEC 584 hat in Genauigkeitsklasse 1 
(das ist die beste bei Standardelementen) von 0 bis 350°C einen Fehler 
von +-1,5 Grad.
In Klasse 2 ist der Fehler +-2,5 Grad.

Dazu kommen noch die Abweichungen der Vergleichsstelle und der 
Messwertverarbeitung (Verstärkung, Linearisierung), geschätzt jeweils 
0,5 bis 1 Grad.
Gast #527612
Lesenswert?

Uber Temperaturmessung mit K-Type Thermoelement im Bereich von
 -50°C bis 500°C habe ich schon geschrieben.
Voraussetzung:
 ATmega mit Differenz-Versärker, Gain200(Atmega16,32,64,128).
Als externe Beschaltung ist nur noch ein 2K7(1%) Widerstand,
5K Spindelpoti für Aref einstellung und
ein KTY81-110 Temperaturfühler für Raumtemperaturkompensierung 
notwendig.
Beitrag "Re: ADC im Messbereich kleiner 1V"

Branko
Gast #527828
Lesenswert?

>Aber auch "nur" kalibrieren wird nicht so einfach.

Wieso denn nicht? Wird bei uns auf Arbeit täglich gemacht. Und zwar auf 
0.5% genau. Das geht mit Burster-Kalibratoren oder mit präzisen 
Widerständen für Nullpunkt und Spanne, diese anstelle des PT100 (PT1000) 
anschließen.

Ich habe sowas auch mal mit PT100 gebaut (Nebelmaschine, regelt bei 
250°C), Stromspiegelschaltung (mit CA3046) und 5V-Spannungsregler als 
1mA-Konstantstromquelle, 4-Leiterschaltung, Messen mit Tiny26 
differentiell, Verstärkung x20 (glaub'ich). Funktioniert prima, 
Genauigkeit liegt bei ca. 2%, je nach TK der Widerstände und Potis.
Gast #527913
Lesenswert?

>> Das mache ich normalerweise auch so, aber bei 250-300°C tropft dir die
>> Isolation weg. Da braucht's schon einen vernünftigen Geber.

Kommt auf die Leitung an. Bei einer Leitung mit Teflon oder Silikon 
Isolierung machen die 300°C nicht viel aus. Darf halt kein PVC sein!
Gast #528073
Lesenswert?

@Sonic

>>Aber auch "nur" kalibrieren wird nicht so einfach.

>Wieso denn nicht? Wird bei uns auf Arbeit täglich gemacht. Und zwar auf
>0.5% genau. Das geht mit Burster-Kalibratoren oder mit präzisen
>Widerständen für Nullpunkt und Spanne, diese anstelle des PT100 (PT1000)
>anschließen.

Ja eben, dieser Aufbau läuft bei mir nicht unter "einfach".

>Ich habe sowas auch mal mit PT100 gebaut (Nebelmaschine, regelt bei
>250°C), Stromspiegelschaltung (mit CA3046) und 5V-Spannungsregler als
>1mA-Konstantstromquelle, 4-Leiterschaltung, Messen mit Tiny26

1mA? Heizung gegen vereisen des Sensors? ;-)

MfG
Falk
Gast #528389
Lesenswert?

@Sonic

>> 1mA? Heizung gegen vereisen des Sensors?

>In der Industrie (ältere Technik) sind 2.5mA normal. <1mA ist nur nötig
>wenn der Sensor in unbewegter Luft misst.

OK, mein Fehler. Ich hatte im Studium mal was mit PT1000 gebaut, dort 
waren 100uA der Standardwert.

MFG
Falk
Gast #528697
Lesenswert?

Du meinst die AD-Wandlung?

Die Einstellung des ADCs musste dir für den Tiny26 halt aus dem 
Datenblatt 'raussuchen, habe die Bits nur binär (ohne Bezeichnung) da:
1
// Einstellungen für AD-Wandler  
2
  
3
  ACSR = 0b10000000;
4
  ADCSR = 0b10010110;
5
  ADMUX = 0b01001011;
und hier die ADC-Funktion:
1
void ADC_conversion(void)  // Spannung über pt100 messen (32 Messswerte-Mittelwert)
2
{  
3
    int ADC_temp;
4
    int ADCresult = 0;
5
    unsigned char i;
6
    
7
    for(i=0;i<32;i++)           // 32 Messungen für bessere Genauigkeit 
8
    {
9
      ADCSR |= (1<<ADSC);   // 'single conversion' einleiten
10
      while(!(ADCSR & 0x10));  // auf ende der Wandlung warten, ADIF flag '1'
11
      ADC_temp = ADCL;   // ADCL Register lesen
12
      ADC_temp += (ADCH << 8); // ADCH Register lesen      
13
      ADCresult += ADC_temp;   // Ergebnisse der 32 Messungen addieren
14
    }
15
    ADCresult = ADCresult >> 5;     // Addierte Ergebnisse durch 32 teilen
16
    ADCresult_average = ADCresult;   // Mittelwert der 32 Messungen der globalen Variable zuweisen
17

18
  return;
19
}

Das Ganze ist schon etwas älter, geht also eleganter. So funktioniert's 
jedenfalls.
Gast #528850
Lesenswert?

Das habe ich aus Platzgründen hier nicht gemacht. Aber an ein bischen 
Mathematik wird's wohl nicht scheitern, oder? ;-)

Z.B.:
Bereich 0..250mV => 0..1023 (Faktor x20 beim Tiny26)
Messergebnis z.B. 400

also: Bereich  = (250 / 1023)
      Messwert = Bereich * Messergebnis

Das wäre (250 / 1023)*400 = 97.75 Ohm

Umrechnung in Temperatur entsprechend dem Fühler.

Du kannst auch die Kennlinie in einem ext. EEPROM in Form von 
1-byte-Korrekturfaktoren für die 1023 Messwerte hinterlegen und dann nur 
den Entsprechenden Wert dort 'holen'.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren