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
Ein Thermoelement (K-Type) und ein MAX 6675. Für SPI oder I2C ist mir níx bekannt. Gruß, Blobb
ein thermoelement mit opamp oder instrumentenverstärker verstärken und dann mit dem internen ad messen, alternativ ein externen ad über spi/i2c ... negative temperaturen auch?
Sorry, hatte ganz vergessen das der MAX6675 per SPI an den Controller angebunden wird. Temp.-Bereich 0-1024 Grad Celsius, Auflösung 0,25 Grad. Im Anhang das Datenblatt. Gruß, Blobb.
Leider habe ich nur einen K-typ Sensor gefunden als ich diese Lösung fand und dieser Sensor kostet ~60€; daher stammt ja auch meine Frage... GTT15150 im Geist-Electronic-Versand Minimaltemperatur ist Raumtemperatur Ich versuche den SMD-Ofen aus der Elektor 1/2006 nachzubauen! http://www.elektor.de/default.aspx?tabid=28&art=5550657
Hallo, Thomas Pfeiffer beschreibt auf seiner Seite http://thomaspfeifer.net/, wie er den Ofen nachgebaut hat. Vielleicht findest du auf dieser Seite weitere Infos. MfG Karsten
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.
Patrick Weggler wrote:
> Wie genau ist das Messen mit einer 1N4148?
In dem Temperaturbereich garnicht..
Ich fürchte, bei dunkler Rotglut wird aus dem Silizium wieder der Sand, aus dem es gewonnen wurde. Die max. Temperatur für Siliziumhalbleiter bevor bleibende Veränderungen auftreten liegt irgendwo bei 250°C
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))
> 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.
@Lothar >und Kennlinienlinearisierung sollten 1° möglich sein... >... aber wie eichen ?? ;o)) Beim Eichamt. Für teuer Geld. Aber auch "nur" kalibrieren wird nicht so einfach. MFG Falk
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
Hallo, und gibt es alternativ auch eine ungenauere Lösung, welche dann einfacher werden würde?
Habe gerade bei Reichelt einen KTY 84-130 entdeckt. Ware der geeignet wenn ja wie ansteuern und wie auswerten?
>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.
Ich nehme einfach eine Ausgleichsleitung für Typ K und verdrille einfach ein Ende. Schon habe ich mein Thermolement Typ K für ca. 3 €.
Das mache ich normalerweise auch so, aber bei 250-300°C tropft dir die Isolation weg. Da braucht's schon einen vernünftigen Geber.
>> 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!
@sonic
hättest du mir davon irgendwie einen Schaltplan?
@Mr Thermo
Ich verstehe nicht wie du das meinst?
>>einfach eine Ausgleichsleitung für Typ K und verdrille einfach
ein Ende
Könnte ich auch einen solchen hier einfach missbrauchen? Und ließe er sich mit dem Max 6675 auslesen oder nur per AD?
@Patrick: bin auf Arbeit, heute nachmittag werde ich die Schaltung posten. Die Konstantstromquelle habe ich hier schon mal 'reingestelle: Beitrag "Konstantstromquelle im µA-Bereich"
@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
> 1mA? Heizung gegen vereisen des Sensors?
Hä? Das sind 0,1mW.
Bei einem Wärmewiderstand von 1000K/W würde sich der Sensor immerhin um
gewaltige 0,1 Grad erwärmen.
Tolle Heizung.
> 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.
@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
@Falk: klar, am PT1000 haste auch einen höheren Spannungsabfall. @Patrick: hier die komplette Schaltung der Nebelmaschine.
Hallo, Danke! Hättest du mir noch den Programmteil der den Sensor einließt (wenn du's in C hast) oder könntest du mir nur kurz die wichtigsten Steps nennen? Gruß Patrick
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.
>>Du meinst die AD-Wandlung?
Eigentlich die Umrechnung AD-Wandlungsergebniss in Temperatur.
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'.
Ups..
>Das wäre (250 / 1023)*400 = 97.75 Ohm
sind natürlich mV, nicht Ohm!
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.