Ich erstelle einen PID-Regler für Sous-Vide wie diesen und versuche zu entscheiden, welchen Temperatursensor ich bekommen soll.
Prioritäten:
- Kosten: <£ 25 in Großbritannien geliefert
- Genauigkeit: +/- 0,5 ° C.
- Bereich: 0 - 100 ° C.
- Ausgang: etwas, das von einem Arduino mit minimalen zusätzlichen Schaltkreisen gelesen werden kann (z. B. 0-5 VDC, ein leicht zu messender Widerstand oder digitaler Ausgang wie OneWire usw.)
- Physisch: wasserdicht, lebensmittelecht (idealerweise) und mit einem mindestens einen Meter langen Kabel - idealerweise nicht zu viel Arbeit, um diesen Formfaktor zu erzeugen (ich habe keine Werkstatt)
- Fehlermodus: Ideal, wenn ein Fehler eher zu einer Übertemperaturmessung als zu einer Untertemperatur führt
Gerne kann ich bei Bedarf Kompromisse eingehen, aber das ist mein Ideal. Offen auch für Vorschläge, was ich sonst noch kompromittieren sollte. Ich würde mich besonders für Gedanken zu Sensoren wie einem k-Typ, einem pt100, einem TMP36-Chip und einem "Standard" 10K-Thermistor interessieren (wenn diese Namen jedoch nicht spezifisch genug sind, lassen Sie mich bitte wissen, was ich sein sollte stattdessen suchen).
arduino
temperature
pid-controller
thermistor
thermocouple
Richard Russell
quelle
quelle
Antworten:
Erstens, wenn Sie anderen zustimmen: Wenn Sie sich für eine Genauigkeit von 1,0 ° C entscheiden, wird Ihr Leben viel einfacher.
Sie scheinen auf analoge Sensoren eingestellt zu sein, aber ich würde einen mit digitaler Schnittstelle vorschlagen. Analoge Sensoren sind entweder (verwendet) radiometrisch (liefern einen temperaturabhängigen Prozentsatz von Vcc), was eine nichtlineare Antwort ergibt, die Sie konvertieren müssen. Der andere Typ (LM35 usw.) ist absolut, was erfordert, dass Sie gegen eine Referenzspannung, die (viel) genauer als Ihre gewünschte Genauigkeit sein muss, A / D betreiben. Wenn Sie nicht etwas messen möchten, das ein Sensor mit digitaler Schnittstelle nicht kann (wie >> 100C), scheint dies eine Menge unnötiger Probleme zu sein.
Edit: Lass uns einen LM35 ausprobieren. 10 mV / C, selbst wenn der LM35 selbst keinen Fehler einführt , ist eine typische Referenz (LM431 usw.) 1% genau, was einen 1% igen Fehler in der Temperaturanzeige einführt! Ein typischer A / D-Mikrocontroller hat 10 Bit. Nehmen wir an, der volle Maßstab ist eine 2,5-V-Referenz (prüfen Sie, ob Ihr uC dies zulässt!). 1-Bit-A / D-Fehler (seien wir optimistisch! Überprüfen Sie besser Ihr uC-Datenblatt) beträgt 2,5 mV = 1 / 4C-Fehler. Selbst ohne den Sensor selbst haben wir also einen Fehler von + / 1,25 C (bestenfalls ..).
Holen Sie sich einen digitalen Schnittstellensensor, zum Beispiel den guten alten DS1820 / 18S20 / 18B20, alle TO92. Oder einer der I2C- oder SPI-Sensoren, die Microchip in TO220 herstellt. Wenn Sie in einem Fach oder etwas heizen, können Sie die Lasche mit dem Fach verbinden.
quelle
Holen Sie sich einen Präzisions-Temperatursensor-IC wie den LM35CAZ .
Sie versorgen es mit guten 5 V und der Ausgang ist eine einfache Spannung, die eine lineare Funktion der Temperatur ist. Sie haben eine ziemlich gute Genauigkeit von ± 1⁄4˚C bei Raumtemperatur.
Hinzugefügt:
Mehrere Leute haben über "Genauigkeit über Temperaturbereich" für diesen Sensor von ± 1 ° C gesprochen. Dies ist der falsche Bereich. "Genauigkeit bei Kochtemperatur" ist der richtige Bereich, um darüber zu sprechen. Bei etwa 60 ° C beträgt die Genauigkeit ± 0,7 und ist wahrscheinlich besser. Die "typische" Linie variiert über Ihren Kochbereich um ca. 0,1 ° C.
Sie benötigen wahrscheinlich nur einen oder zwei Kalibrierungspunkte, um diesen Sensor für Ihre Anforderungen genau genug zu machen. Dafür ist natürlich ein genaues Thermometer erforderlich, um es zu kalibrieren. Dafür haben Sie mehrere Möglichkeiten:
Option 1: Sie können Wasser verwenden. Die Temperatur des Wassers, das gefriert, beträgt 0 ° C. Stecken Sie es also in eine kleine Tasse Wasser in den Gefrierschrank und beobachten Sie die Ausgangsspannung sorgfältig. Es wird fallen und fallen, bis das Wasser zu gefrieren beginnt. Zu diesem Zeitpunkt hört die Temperatur auf zu fallen und bleibt für eine Weile flach. Sobald das Einfrieren abgeschlossen ist, beginnt die Temperatur wieder zu fallen. Beachten Sie die Spannung im flachen Bereich, die als 0 ° C-Kalibrierungspunkt verwendet werden soll.
Machen Sie dasselbe für kochendes Wasser. Am besten auf Meereshöhe. Wenn Sie nicht auf Meereshöhe sind, überprüfen Sie, wie hoch die Siedetemperatur in Ihrer Höhe ist.
Die Verwendung von 0 ° C und 100 ° C ist nicht so gut wie die Verwendung von beispielsweise 50 ° C und 80 ° C, aber es ist viel einfacher. Wenn Sie ein sehr genaues Thermometer zur Verfügung haben, sollten Sie Kalibrierungspunkte verwenden, die näher an Ihrer Kochtemperatur liegen.
Option 2: Verwenden Sie Methylalkohol. (Danke stevenvh) Das kocht bei 64,7ºC. Dies liegt so nahe an Ihrer Kochtemperatur, dass Sie nur einen Kalibrierungspunkt benötigen sollten, um eine sehr genaue Kochtemperatur zu erhalten. Achten Sie natürlich darauf, sich nicht mit den Dämpfen zu berauschen oder in die Luft zu jagen. Erhitze den Alkohol nicht über einer offenen Flamme!
Hinzugefügt - Verstärkung
Da Sie in einem engen Temperaturbereich arbeiten und eine gute Regelgenauigkeit benötigen, lohnt es sich wahrscheinlich auch, die Leistung des Sensors zu verstärken. Dies führt zu einer höheren ADC-Auflösung am Arduino, was zu einer besseren Stabilität des PID-Regelalgorithmus führt. Siehe die Frage Analoge Spannungspegelumwandlung (Pegelverschiebung), in der das Verstärken und Pegelverschieben einer analogen Spannung erläutert wird.
Angenommen, Sie arbeiten im Bereich von 40 ° C bis 100 ° C (0,4 V - 1,0 V). Sie sollten 0,4 V vom Signal subtrahieren, was 0,0 V - 0,6 V ergibt, und das Ergebnis mit einer Verstärkung von 8 verstärken, was 0,0 V - 4,8 V ergibt. Dies ergibt eine hervorragende Auflösung.
quelle
Es hört sich so an, als würden Sie nur nach der Sonde fragen. Anscheinend möchten Sie etwas, das Sie in direkten Kontakt mit dem Essen bringen können. Ein PID-Regler enthält viel mehr als nur den Rückkopplungssensor, aber es hört sich so an, als würden Sie nicht danach fragen. Wenn dies nicht der Fall ist, sollten Sie Ihre Frage aktualisieren. Ich habe auch keine Ahnung, was ein "Sous Vide" ist. Alle relevanten Informationen sollten in Ihrer Frage enthalten sein. Links sind nur für Hintergrundmaterial.
Wie Steven erwähnte, ist 1/2 ° C sehr ehrgeizig und unnötig, wenn Sie über Essen sprechen.
Der einfachste Temperatursensor ist ein Thermistor. Sie können den Bereich bewältigen und benötigen ansonsten nur einen Lastwiderstand. Das Ergebnis ist auch ratiometrisch für Ihr Angebot, sodass sich alle Angebotsschwankungen aufheben. Das Erkennen von Fehlern ist in der Firmware einfach, da Messwerte sehr nahe am oberen oder unteren Rand des Bereichs auf unrealistische Temperaturen hinweisen. Wenn Sie etwas außerhalb eines gültigen Temperaturbereichs erhalten, gehen Sie von einem Hardwarefehler aus und geben den für Sie sicheren Modus ein. Dies ist wirklich ein Firmware-Problem, kein Hardware-Problem mit einem Thermistor und dem richtigen Lastwiderstand.
Um die Lebensmittelsicherheit zu gewährleisten, sollte es gut sein, die Sonde in Glas einzuschließen. Wie wäre es, den Thermistor auf den Boden eines kleinen Reagenzglases zu kleben, das dann zur Sonde wird? Die Oberseite kann mit Heißkleber oder etwas versiegelt werden. Es muss wasserdicht sein, aber das Essen sollte nicht da sein. Es sollten nur zwei isolierte Drähte aus der Oberseite des Rohrs austreten. Glas ist ziemlich gut darin, Wärme zu übertragen. Die Zeitkonstante der Sonde sollte immer noch deutlich unter der Zeitkonstante von der Heizleistung bis zur Temperatur des Lebensmittelwechsels liegen.
Thermistoren sind nicht sehr genau, wenn Sie nicht viel Geld bezahlen. Für ein einmaliges Hobbyprojekt würde ich jeden Thermistor bekommen, der im richtigen Bereich vorhanden ist, und manuell kalibrieren. Kalibrieren Sie bei einigen bekannten Temperaturen, die mit einem zuverlässigen bekannten Thermometer ermittelt wurden, und lassen Sie die Firmware dazwischen interpolieren. Für zusätzliche Gutschrift können Sie sogar die Nenngleichung für den Thermistor nachschlagen, Ihre gemessenen Punkte so gut wie möglich daran anpassen und daraus die stetige Funktion ableiten. Sie können eine feste Tabelle in der Firmware mit vielen Segmenten aus der kalibrierten Funktion füllen, so dass die lineare Interpolation zwischen Segmenten recht gut ist.
Auch hier verlangt 1/2 ° C zu viel, aber so viel braucht man sowieso nicht. Ein Thermistor mit vielleicht 4 Kalibrierungspunkten, Gleichungsanpassung und anschließender Interpolation sollte in Ordnung sein, um das eigentliche Problem zu lösen.
quelle
Mit dem LM335Z können Sie den Offset- und Verstärkungsfehler für jeden Sensor mit 2 Testwerten bei 0 ° C und 100 ° C mit Eis und kochendem Wasser kalibrieren.
Dann erhalten Sie einen Bestätigungswert im mittleren Bereich, z. B. 50 ° C.
Sie können eine Testvorrichtung herstellen und einen Sensor als Ihren silbernen Standard gegen einen anderen mit dem Goldstandardthermometer kalibrieren. Anschließend speichern Sie die erwarteten Fehler und berechnen einen linearen Verlauf oder eine Verstärkungs- und Versatzzahl, die im EEPROM gespeichert werden soll, damit sie zu einem kalibrierten Satz werden. Wenn Sie eine Charge erhalten, stellen Sie möglicherweise fest, dass alle den gleichen Versatz- und Verstärkungsfehler aufweisen, den Sie in der Software korrigieren können, um den korrigierten Messwert anzuzeigen.
Mit 0,1 ° C-Standards können Sie einen Fehler von 0,2 ° C erwarten und jedes von Ihnen ausgewählte Display verwenden, um diesen Fehler von 0,5 ° C für Ihre kritischen Sollwerte zu gewährleisten.
Siehe Abb. 3
http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/DATASHEET/CD00000459.pdf
Ich würde den Sensor mit einer dünnen Beschichtung aus Epoxidharz in Lebensmittelqualität versiegeln, um das Gerät vor Feuchtigkeitsleckagen zu schützen, und Twisted-Pair- oder zwei Twisted-Pair-Flex-Drähte verwenden, wobei 2 als Abschirmung verwendet werden, und dann "Ferrit-CM-Drosseln" verwenden, um HF-Störungen zu absorbieren.
Sie benötigen dann einen ADC, dessen Genauigkeit auf +/- 0,5 Bit oder vielleicht 1 von 256 Pegeln garantiert ist, um 0,5 / 100% genau zu lesen. Dies ist in den meisten Arduinos nicht garantiert, daher müssen Sie einen Hardware-DAC verwenden, um dies in Ausgang minus Eingang auf einem 2-Kanal-Oszilloskop zu testen. Wählen Sie AC-Paar für CH1 und CH2 und zeigen Sie dann den XY-Modus CH1 gegen Ch2 an, um einen Mittelpunkt zu erhalten durchläuft maximal +/- 1 Bit. Jegliches Vref-Rauschen in Ihrem ADC führt bei Übergängen wie 01111 zu 10000 zu übersprungenen Quantisierungspegeln oder Hysterese, und das Übersprechen von digitaler Masse zu analoger Erdungsdurchführung schlägt bei Monotonie fehl.
Auf der TI-Website finden Sie Literatur zu ADC-Fehlern.
@Richard Russell << Ich schätze die Notwendigkeit einer Kontrolle von 0,5 ° C bei biologischen Kochstilen bei niedrigen Temperaturen, bei denen lebende Organismen schnell oberhalb der Pasteur-Temperatur zu sterben beginnen, wenn die Bakterien abgetötet werden.
Wenn ich es wäre, würde ich mit meinen Kalibrierungstemperaturen für die Offset-Verstärkung zwischen 45 und 65 ° C auf eine Genauigkeit von 0,1 ° kalibrieren, nachdem sie fest mit dem gut isolierten Topf verbunden ist. Dann können Sie jeden anderen handelsüblichen Herd auf dem Markt übertreffen ... vorausgesetzt, er ist gut isoliert in einem Dielektrikum mit hohem R-Wert.
Wickeln Sie es dann für eine 500-Dollar-Präzisions-SS ein, die wie der "Spirit of St Louis" tief zerkratzt und hochglanzpoliert ist. ;)
Persönlich würde ich die SS-Außensäure von Fachleuten ätzen lassen, die dies jeden Tag mit einem Kunstwerk von historischer Kochbedeutung für 50 US-Dollar tun und dann für benutzerdefinierte Kunstwerke mit persönlichem Logo und Firmennamen einen Aufpreis berechnen. Fragen Sie einfach, ob Sie eine gute Referenz benötigen.
Vielen Dank, dass ich Sie bei Ihrem Ziel unterstützen durfte.
quelle
Basierend auf den Informationen in anderen Antworten und der weiteren Suche fand ich bei Alpha-Crucis (EU) eine wasserdichte DS18B20- Sonde. Es ist auch bei Adafruit in den USA erhältlich.
Es erfüllt alle meine Anforderungen und hat einen idealen Formfaktor.
quelle