Hallo,
habe mir den Artikel schon durchgelesen. Leider keine brauchbare
Schaltung gefunden
https://www.mikrocontroller.net/articles/Temperatursensor
Ich suche nach einen kleinem Schaltplan, um einen oder mehrere PT1000
Sensoren auszulesen. Die PT1000 sind als 2Draht herausgeführt. Falls
notwendig kann ich auch welche mit 3 oder 4 Leiter besorgen.
Ich möchte an einem Heizungssystem mehrere Temperaturen mitloggen.
(Anlegefühler). Die Genauigkeit spielt eine kleine Unterrolle. Gerne
möglichst genau. 1°K Abweichung sollte vollkommen ausreichen. Die
Fühlerkabel sind zwischen 1 und 20m lang.
Messen möchte ich das ganze mit einem AVR Mega. Der Temperaturbereich
ist zwischen -30°C (Aussenfühler) und 90°C (Vorlauf). Würde gerne mit
einer Referenzspannung arbeiten die genau ist. Kann mir dazu einer die
Schaltung zur Verfügung stellen?
Temp schrieb:> Kann mir dazu einer die Schaltung zur Verfügung stellen?
Du meinst echt, dass es für die passende Schaltung keine Rolle spielt ob
1 oder 5 Sensoren ?
Temp schrieb:> Würde gerne mit> einer Referenzspannung arbeiten die genau ist.
Die kürzt sich bei Widerstandssensoren raus, ist also egal.
Es gibt fertige ADCs, die nur einen stabilen Referenzwiderstand
brauchen, z.B. AD7793.
Schaltungen mit OPVs brauchen oft mehrere genaue Bauteile, sind also
komplizierter.
Am einfachsten sind digitale Sensoren, z.B. DS18B20, SMT172.
Temp schrieb:> Ich möchte an einem Heizungssystem mehrere Temperaturen mitloggen.> (Anlegefühler). Die Genauigkeit spielt eine kleine Unterrolle. Gerne> möglichst genau. 1°K Abweichung sollte vollkommen ausreichen. Die> Fühlerkabel sind zwischen 1 und 20m lang.
Die Auswertung von PT-Fühlern erfordert meist etwas Geschick mit dem
Lötkolben (praktisch alle hochauflösenden ADC´s sind SMD und z.T.
winzig)
oder entsprechenden zusätzlichen Schaltungs-und Bauteileaufwand, der
sich natürlich mit der Fühleranzahl potenziert.
Wenn der Sensortyp nicht in Stein gemeißelt ist, kann man die Sache auch
deutlich vereinfachen. Mittels Oversampling kann man dem internen ADC
des ATMega auch mal 12bit entlocken, in diesem Anwendungsfall muss die
Messfrequenz ja nicht besonders hoch sein. Damit lassen sich mittels
geeigneter Fühlerwahl die Eingangs beschriebenen Anforderungen pro
Messkanal spielend mit einem Widerstand + Fühler erschlagen, externe
ADC´s braucht es dann auch nicht.
Gruß Dominik
Peter D. schrieb:> Lach.> Er will messen und keine Lottozahlen.
Zu früh gelacht...
... Läuft bei mir mit einem 20k Ntc stabil und nach "Kalibrierung" auch
äußerst genau (im Zehntel Grad Bereich / geprüft mit
Anschütz-Thermometersatz) ;-)
Bevor ich es nicht selbst probiert habe war ich diesbezüglich
zugegebenermaßen auch etwas skeptisch.
Gruß Dominik
Dominik schrieb:> Zu früh gelacht...
Im Gegenteil, jetzt lachen wir erst richtig, denn aus deinem Beitrag
kann man entnehmen, daß du nicht mal ansatzweise weisst, welche
notwendige Bedingung existieren muss, damit diese Art der
Auflösungssteigerung überhaupt funktioniert.
Dazu gibt es auch ne AppNote von Atmel, finde die gerade aber nicht
wieder.
Habs nur kurz überflogen, aber diese scheint es ähnlich gut oder sogar
besser zu beschreiben, wichtig ist halt ein verlässliches "Störsignal"
und da kann man ja zur Not nachhelfen (PWM).
https://www.silabs.com/documents/public/application-notes/an118.pdf
In Bezug auf die Temperaturfühler, bei Verwendung von KTY11-6,
(hab ich auch schonmal als Anlegefühler gesehen) wäre ein Oversampling
nicht mal erforderlich, allerdings sind Glättung und Offsetkorrektur
natürlich Pflicht:
1
T R R_Series R_Sum ADC10 ADC12
2
-40 1139,27 4000 5139,27 227 908
3
-30 1250,39 4000 5250,39 244 975
4
-20 1396,25 4000 5396,25 265 1060
5
-10 1495,86 4000 5495,86 278 1115
6
0 1630,21 4000 5630,21 296 1186
7
10 1772,32 4000 5772,32 314 1257
8
20 1922,17 4000 5922,17 332 1329
9
25 2000 4000 6000 341 1365
10
30 2079,77 4000 6079,77 350 1401
11
40 2245,17 4000 6245,17 368 1472
12
50 2418,21 4000 6418,21 385 1543
13
60 2599,06 4000 6599,06 403 1613
14
70 2787,65 4000 6787,65 420 1682
15
80 2983,99 4000 6983,99 437 1750
16
90 3188,08 4000 7188,08 454 1816
17
100 3399,91 4000 7399,91 470 1881
18
19
U 5 I_Max 0,000972901
Ob 2 oder 3 Leiter kann man sich streiten, 20m ist natürlich schon lang.
Gruß Dominik
Michael B. schrieb:> Im Gegenteil, jetzt lachen wir erst richtig, denn aus deinem Beitrag> kann man entnehmen, daß du nicht mal ansatzweise weisst, welche> notwendige Bedingung existieren muss, damit diese Art der> Auflösungssteigerung überhaupt funktioniert.
Dieses Forum besticht gelegentlich durch unheimlich konstruktiven
Beiträge,
in der Tat habe ich auch schon oft gelacht was hier so verzapft wird.
Dominik schrieb:> In Bezug auf die Temperaturfühler, bei Verwendung von KTY11-6,> (hab ich auch schonmal als Anlegefühler gesehen) wäre ein Oversampling> nicht mal erforderlich, allerdings sind Glättung und Offsetkorrektur> natürlich Pflicht:
Und wie korrigierst Du die Linearitätsfehler des ADCs?
m.n. schrieb:> Und wie korrigierst Du die Linearitätsfehler des ADCs?
Da der Atmega unspezifiziert ist gehe ich jetzt einfach mal vom 328p
aus,
der hätte wahrscheinlich auch genug ADC-Kanäle:
Lt. Datenblatt:
0.5 LSB Integral Non-Linearity
±2 LSB Absolute Accuracy
Bei ca. 20 Werten für je 10 Grad wäre mir das pers. hier fast egal.
Der Offset ist entscheidender, da er bei den, von mir bislang
verwendeten
AVR´s, einen Großteil der "Absolute Accuracy" ausmachte. Ein Faktor für
die Linearität über den gesamten Messbereich langt wohl dicke.
(Ansonsten hat der 328p ein ganzes kb EEPROM)
Bevor das hier zur Glaubensfrage wird, es handelt sich nicht um
eine Temperaturüberwachung für Kernreaktoren.
Mir ist durchaus bewusst, das eine "genaue" Temperaturmessung von vielen
Einflussgrößen abhängt, ich habe diesbezüglich schon ein paar
Erfahrungen sammeln können. Sonst hätte ich mir wahrscheinlich keinen
kalibrierten Thermometer-Satz geleistet ;-)
Also zurück zum Thema:
Temp schrieb:> Ich möchte an einem Heizungssystem mehrere Temperaturen mitloggen.> (Anlegefühler). Die Genauigkeit spielt eine kleine Unterrolle.
Hier ist nicht mal von steuern die Rede.
Gruß Dominik
Dominik schrieb:> m.n. schrieb:>> Und wie korrigierst Du die Linearitätsfehler des ADCs?>> Da der Atmega unspezifiziert ist gehe ich jetzt einfach mal vom 328p> aus,> der hätte wahrscheinlich auch genug ADC-Kanäle:>> Lt. Datenblatt:> 0.5 LSB Integral Non-Linearity> ±2 LSB Absolute Accuracy
Ich verstehe: wegen der vielen Eingangskanäle hoffst Du auf bessere
Linearität.
Würde einfach zwei definierte Widerstände mit auf die Platine packen und
mitmessen(2 zusätzliche Kanäle).
Das eliminiert nach Abgleich den Offset und den Verstärkungsfehler.
Nichtlinearitäten hast Du halt drin. Pukkt.
m.n. schrieb:> Ich verstehe: wegen der vielen Eingangskanäle hoffst Du auf bessere> Linearität.
Wow, da bin ich ja noch gar nicht drauf gekommen!
Die werden je zu viert in Serie geschaltet, macht 12bit.
Von diesen Serienschaltungen nimmt man ebenfalls 4 parallel.
Macht einen integralen Linearitätsfehler von 0,5 / 4 = 0,125
Millisievert.
Einziges Manko, der 328p hat nur 6 externe Kanäle am DIL, daher braucht
man leider 2,6 AVR´s. Vernetzt wird dies dann über I2C, fallen noch zwei
Kanäle weg, also vier AVRs. Damit die nicht so viel Platz auf der
Platine brauchen
könnte man die unterhalb von Pin 8 ja absägen, dann gehen die als DIL16
durch. Der USART liegt ja glücklicherweise oberhalb, damit könnte man
die Messdaten dann auch gleich noch übermitteln.
@Temp,
Lass dich nicht verunsichern, die Aufgabenstellung lässt sich bei
geschickter Fühlerauswahl mit einem Atmega328, Serienwiderständen
(Sollte Metallschicht, muss aber nicht unbedingt Präzision sein) und
ner überschaubaren Menge Quelltext schnell und ausreichend lösen.
"Kalibrieren" muss Du natürlich, da sowohl die Widerstände als auch die
Fühler und der ADC Toleranzen haben, dies ist aber bei den Anforderungen
überschaubar.
Wie willst Du die Daten loggen? Sollen die auf der Platine gespeichert
werden? Dann brauchst Du sicher noch externes EEPROM/SRAM, Microchip hat
da gute Sachen für SPI/I2C auch im DIL-Gehäuse.
Gruß Dominik
JoJetztMalHalblang schrieb:> Würde einfach zwei definierte Widerstände mit auf die Platine> packen und> mitmessen(2 zusätzliche Kanäle).>> Das eliminiert nach Abgleich den Offset und den Verstärkungsfehler.
Ja, ist auch ne gute Möglichkeit, sofern man denn dann die Fühler in
ausreichender Genauigkeit kauft (bei einem 20 Cent NTC liegt man
erfahrungsgemäß schnell 2 Grad (absolut) daneben).
JoJetztMalHalblang schrieb:> Nichtlinearitäten hast Du halt drin. Pukkt.
Exact!
Die Nichtlinearität liegt bei 0.5 und man beachte zudem die 3 Buchstaben
dahinter ;-)
Dominik schrieb:> m.n. schrieb:>> Ich verstehe: wegen der vielen Eingangskanäle hoffst Du auf bessere>> Linearität.>> Wow, da bin ich ja noch gar nicht drauf gekommen!>> Die werden je zu viert in Serie geschaltet, macht 12bit.>> Von diesen Serienschaltungen nimmt man ebenfalls 4 parallel.> Macht einen integralen Linearitätsfehler von 0,5 / 4 = 0,125> Millisievert.
Ist mir jetzt nicht ganz klar. Kannst das mal kurz erklären?
JoJoJO schrieb:> Ist mir jetzt nicht ganz klar. Kannst das mal kurz erklären?
;-)
Ja, ist doch logisch, jeder ADC-Kanal hat seinen Wirk- und
Entfaltungsbereich zwischen GND und ADCx.
Reihenschaltung:
ADC0-GND/ADC1-GND/ADC2-GND/ADC3-GND
(AREF ist hier als Klammermaß (REF.) zu verstehen, kann man beliebig
dazwischenpacken, stylisch sieht es an ADC3 aus, Mehrnutzen ergibt sich
an VCC, s.u.)
Dann noch ADC0 und GND von AVR1 bis AVR4 verbinden.
Vorteil dieser Schaltung ist zudem: Sie zeigt zuverlässig, ohne weitere
Komponenten, ein (pos.) Offset des ADC an, wenn man AREF mit VCC
verbindet.
Gruß Dominik
Dominik schrieb:> Lass dich nicht verunsichern, die Aufgabenstellung lässt sich bei> geschickter Fühlerauswahl mit einem Atmega328, Serienwiderständen> (Sollte Metallschicht, muss aber nicht unbedingt Präzision sein) und> ner überschaubaren Menge Quelltext schnell und ausreichend lösen.
Hasst du überhaupt die Aufgabenstellung gelesen ?
Die Fühler sind ausgewählt, Pt1000, und er will auf 20m auf 1 GradC
genau messen, nicht bloss auflösen. Da wird er Zuleitungskompensation
über 3/4-Draht machen müssen. Ob nun mit genauen externen OpAmps und
dann in die internen A/D eines ATmega oder 1 genaueren externen
A/D-Wandler ohne weitere OpAmps, jedenfalls NICHT mit den internen A/D
des ATMega und nur mit Serienwiderständen ohne OpAmps.
Verunsicher ihn also nicht.
Michael B. schrieb:> Die Fühler sind ausgewählt, Pt1000, und er will auf 20m auf 1 GradC> genau messen, nicht bloss auflösen.
Dem stimme ich nicht zu, da:
Temp schrieb:> Die PT1000 sind als 2Draht herausgeführt. Falls> notwendig kann ich auch welche mit 3 oder 4 Leiter besorgen.
Damit sind die Fühler zwar spezifiziert, aber noch nicht angeschweißt.
Der TO bietet quasi schon an hier zu wechseln.
Sinn eines Informationsaustausches ist üblicherweise auch Alternativen
aufzuzeigen. Ob es für diese Anwendung zwangsläufig PT1000 sein müssen?
Nur als kleine Erinnerung:
Dominik schrieb:> Wenn der Sensortyp nicht in Stein gemeißelt ist...Michael B. schrieb:> Da wird er Zuleitungskompensation> über 3/4-Draht machen müssen. Ob nun mit genauen externen OpAmps und> dann in die internen A/D eines ATmega oder 1 genaueren externen> A/D-Wandler ohne weitere OpAmps, jedenfalls NICHT mit den internen A/D> des ATMega und nur mit Serienwiderständen ohne OpAmps.
Wenn Du die PT1000 als gesetzt nimmst sind das die Szenarien, die
ich versuchte für den Fragesteller zu umgehen.
Obwohl es ohnehin eigentlich jeder verstanden hat:
Ja, mit PT1000 und nur Serienwiderstand wird das am internen ADC so
nicht klappen. Das habe ich auch nie behauptet.
Ein 20m Kabel an einem PT1000 für eine Messstelle mit max 90°?
Kann man machen, meist hat das dann aber mit explosionsgefährdeten
Bereichen zu tun.
Michael B. schrieb:> Verunsicher ihn also nicht.
<kein Kommentar>