Datum: 26.03.2007 20:04
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
Datum: 26.03.2007 20:08
Ein Thermoelement (K-Type) und ein MAX 6675. Für SPI oder I2C ist mir níx bekannt. Gruß, Blobb
Datum: 26.03.2007 20:09
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?
Datum: 26.03.2007 21:22
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.
Datum: 26.03.2007 22:06
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
Datum: 26.03.2007 22:31
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
Datum: 26.03.2007 23:06
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.
Datum: 27.03.2007 12:28
Wie genau ist das Messen mit einer 1N4148?
Datum: 27.03.2007 12:35
Patrick Weggler wrote:
> Wie genau ist das Messen mit einer 1N4148?
In dem Temperaturbereich garnicht..
Datum: 27.03.2007 12:38
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
Datum: 27.03.2007 12:38
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))
Datum: 27.03.2007 13:46
> 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.
Datum: 27.03.2007 13:53
@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
Datum: 27.03.2007 15:10
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 "ADC im Messbereich kleiner 1V" Branko
Datum: 27.03.2007 17:58
Hallo, und gibt es alternativ auch eine ungenauere Lösung, welche dann einfacher werden würde?
Datum: 27.03.2007 18:05
Habe gerade bei Reichelt einen KTY 84-130 entdeckt. Ware der geeignet wenn ja wie ansteuern und wie auswerten?
Datum: 27.03.2007 18:18
>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.
Datum: 27.03.2007 18:43
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 €.
Datum: 27.03.2007 18:44
Das mache ich normalerweise auch so, aber bei 250-300°C tropft dir die Isolation weg. Da braucht's schon einen vernünftigen Geber.
Datum: 27.03.2007 20:55
>> 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!
Datum: 28.03.2007 02:11
@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
Datum: 28.03.2007 02:31
Könnte ich auch einen solchen hier einfach missbrauchen? Und ließe er sich mit dem Max 6675 auslesen oder nur per AD?
Datum: 28.03.2007 02:32
Datum: 28.03.2007 07:00
@Patrick: bin auf Arbeit, heute nachmittag werde ich die Schaltung posten. Die Konstantstromquelle habe ich hier schon mal 'reingestelle: Beitrag "Konstantstromquelle im µA-Bereich"
Datum: 28.03.2007 08:50
@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
Datum: 28.03.2007 09:23
> 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.
Datum: 28.03.2007 14:24
> 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.
Datum: 28.03.2007 14:41
@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
Datum: 28.03.2007 16:49
@Falk: klar, am PT1000 haste auch einen höheren Spannungsabfall. @Patrick: hier die komplette Schaltung der Nebelmaschine.
Datum: 28.03.2007 20:03
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
Datum: 28.03.2007 20:13
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:
// Einstellungen für AD-Wandler ACSR = 0b10000000; ADCSR = 0b10010110; ADMUX = 0b01001011; |
und hier die ADC-Funktion:
void ADC_conversion(void) // Spannung über pt100 messen (32 Messswerte-Mittelwert) { int ADC_temp; int ADCresult = 0; unsigned char i; for(i=0;i<32;i++) // 32 Messungen für bessere Genauigkeit { ADCSR |= (1<<ADSC); // 'single conversion' einleiten while(!(ADCSR & 0x10)); // auf ende der Wandlung warten, ADIF flag '1' ADC_temp = ADCL; // ADCL Register lesen ADC_temp += (ADCH << 8); // ADCH Register lesen ADCresult += ADC_temp; // Ergebnisse der 32 Messungen addieren } ADCresult = ADCresult >> 5; // Addierte Ergebnisse durch 32 teilen ADCresult_average = ADCresult; // Mittelwert der 32 Messungen der globalen Variable zuweisen return; } |
Das Ganze ist schon etwas älter, geht also eleganter. So funktioniert's jedenfalls.
Datum: 29.03.2007 00:34
>>Du meinst die AD-Wandlung?
Eigentlich die Umrechnung AD-Wandlungsergebniss in Temperatur.
Datum: 29.03.2007 06:59
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'.
Datum: 29.03.2007 08:33
Ups..
>Das wäre (250 / 1023)*400 = 97.75 Ohm
sind natürlich mV, nicht Ohm!
Antwort schreiben
Die Angabe einer Email-Adresse ist freiwillig. Wenn Sie automatisch per Email über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.
Wichtige Regeln - erst lesen, dann posten!
- Suchfunktion und Betreffsuche benutzen - vielleicht gibt es schon einen ähnlichen Beitrag
- Aussagekräftigen Betreff wählen
- Im Betreff angeben um welchen Controllertyp es geht (AVR, PIC, ...)
- Groß- und Kleinschreibung verwenden
- Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang
- JPEG-Dateien (.jpg) nur für Fotos verwenden, Schaltpläne, Screenshots usw. als PNG oder GIF anhängen
Formatierung (mehr Informationen...)
- [c]C-Code[/c]
- [avrasm]AVR-Assembler-Code[/avrasm]
- [pre]vorformatierter Text (z.B. Code in anderen Sprachen)[/pre]
- [math]Formel in LaTeX-Syntax[/math]
- [[Titel]] - Link zu Artikel
