Pytanie:
Czujniki temperatury do projektu sous-vide Arduino
Richard Russell
2012-05-28 19:52:56 UTC
view on stackexchange narkive permalink

Tworzę regulator PID do sous-vide, taki jak ten, i próbuję zdecydować, który czujnik temperatury wybrać.

Priorytety:

  • Koszt: < 25 GBP z dostawą w Wielkiej Brytanii
  • Dokładność: +/- 0,5 ° C
  • Zakres: 0 - 100 ° C
  • Wyjście: coś, co może odczytać Arduino z minimalną ilością dodatkowych obwodów (np. 0-5VDC, rezystancja, którą można łatwo zmierzyć lub wyjście cyfrowe, takie jak OneWire itp.)
  • Fizyczne: wodoodporne, bezpieczne dla żywności (najlepiej) i z przewodem o długości co najmniej metra - najlepiej nie za dużo pracy, aby stworzyć ten współczynnik (nie mam warsztatu)
  • Tryb awaryjny: byłby idealny, gdyby awaria spowodowała odczyt nadmiernej temperatury raczej niż niska temperatura

W razie potrzeby chętnie pójdę na kompromis w przypadku któregokolwiek z powyższych, ale to jest mój ideał. Jestem również otwarty na sugestie, w czym jeszcze powinienem pójść na kompromis. Byłbym szczególnie zainteresowany przemyśleniami dotyczącymi czujników, takich jak typ k, pt100, układ TMP36 i „standardowy” termistor 10K (chociaż jeśli te nazwy nie są wystarczająco szczegółowe, daj mi znać, jaki powinienem być zamiast tego).

Dokładność 0,5 ° C jest bezsensowna i tylko utrudni Ci życie. 1 ° C to więcej niż wystarczająco. I nawet tego nie można uzyskać za pomocą termistora NTC bez spędzenia bolesnego dnia na kalibracji.
Wygląda na to, że aplikacja faktycznie wymaga najwyższej możliwej absolutnej dokładności. Wydaje się, że punkt kontrolowanego gotowania działa dokładnie w bardzo wąskim zakresie temperatur bliskich wrzenia.
W przypadku kuchenki sous-vide naprawdę potrzebujesz tylko jednego lub dwóch punktów kalibracji, ponieważ pracujesz w bardzo ograniczonym zakresie temperatur.
@RocketSurgeon - Sous vide zwykle gotuje się w temperaturze około 60ºC. Wymagana dokładność zależy od tego, co jest gotowane. Może się bardzo różnić.
Dobrze wiedzieć. Błędnie pomyślałem o przepisach na herbatę wymagających podgrzania wody do temperatury prawie wrzenia, ale unikania samego wrzenia, takich rzeczy.
Magnes rakietowy i rakietochirurg prowadzący rozmowę, która wcale nie była myląca dla oka.
Dlaczego czuję, że widziałem już to samo pytanie? Ach, z twojego poprzedniego pytania.
Komercyjne łaźnie wodne nie wydają się podawać dokładności. Cytują rozdzielczość, stabilność i jednolitość. Czy naprawdę wymagany jest tak wysoki poziom dokładności?
@Kellenjb - to pytanie dotyczy czujnika temperatury. Moje poprzednie pytanie dotyczyło przekaźnika.
@Cybergibbons - Jestem zadowolony z kalibracji, zamiast mieć coś absolutnie dokładnego, ale chciałbym wiedzieć, kiedy przepis mówi 55 ° C, że mogę ustawić go na 55 ° C i uzyskać wynik, którego szukam. Z tego, co wiem, to naprawdę wymaga dokładności +/- 0,5 ° C, chociaż +/- 1 ° C może być akceptowalne. +/- 2C nie byłoby dopuszczalne.
@RichardRussell [This Gizmag article] (http://www.gizmag.com/nomiku-sous-vide-cooker/23340/?utm_source=Gizmag+Subscribers&utm_campaign=9ab557a9c6-UA-2235360-4&utm_medium=email) może wzbudzić zainteresowanie - lipiec 2012.
Oto fajna implementacja sous vide, która może dać ci kilka pomysłów. http://www.flashingleds.net/sousvader/sousvader.html
Pięć odpowiedzi:
Rocketmagnet
2012-05-28 20:15:49 UTC
view on stackexchange narkive permalink

Zdobądź precyzyjny układ scalony czujnika temperatury, taki jak LM35CAZ.

LM35CAZ

Zasilasz go dobrym 5 V, a wyjście jest proste napięcie, które jest liniową funkcją temperatury. Mają całkiem niezłą dokładność ± 1⁄4˚Cat temperatury pokojowej.

Dodane:

Kilka osób mówiło o „dokładności w zakresie temperatur” dla tego czujnika wynoszącej ± 1ºC. To jest zły zakres do omówienia. „Dokładność w temperaturze gotowania” to właściwy zakres do omówienia. Przy około 60ºC dokładność wynosi ± 0,7 i prawdopodobnie jest lepsza. „Typowa” linia zmienia się o około 0,1 ° C w stosunku do zakresu gotowania.

Accuracy of LM35CAZ

Prawdopodobnie potrzebujesz tylko jednego lub dwóch punktów kalibracji, aby łatwo uzyskać ten czujnik wymagania. Ale oczywiście wymaga to dokładnego termometru do skalibrowania go. W tym celu masz kilka możliwości:

Opcja 1: Możesz użyć wody. Temperatura wody zamarzającej wynosi 0ºC. Więc włóż go do małej filiżanki wody w zamrażarce i uważnie obserwuj napięcie wyjściowe. Będzie spadać i opadać, aż woda zacznie zamarzać. W tym momencie temperatura przestanie spadać i pozostanie płaska przez chwilę. Po zakończeniu zamrażania temperatura ponownie zacznie spadać. Zanotuj napięcie w płaskim obszarze, aby użyć go jako punktu kalibracji 0ºC.

Freezing water temperature plot

Zrób to samo dla wrzącej wody. Najlepiej zrobić to na poziomie morza. Jeśli nie jesteś na poziomie morza, sprawdź, jaka jest temperatura wrzenia wody na Twojej wysokości.

Calibrating a thermometer.

Używanie 0ºC i 100ºC nie jest tak dobre jak używanie, powiedzmy 50ºC i 80ºC, ale to dużo łatwiejsze. Jeśli masz bardzo dokładny termometr, powinieneś użyć punktów kalibracji bliżej temperatury gotowania.

Opcja 2: użyj alkoholu metylowego. (Dzięki stevenvh) To wrze w 64,7ºC. Jest to tak zbliżone do temperatury gotowania, że ​​wystarczy jeden punkt kalibracji, aby uzyskać bardzo dokładną temperaturę gotowania. Oczywiście uważaj, aby nie odurzyć ani nie wysadzić się w powietrze oparami. Nie podgrzewaj alkoholu nad otwartym płomieniem!

Dodano - wzmocnienie

Ponieważ pracujesz w wąskim zakresie temperatur i potrzebujesz dobrej dokładności sterowania, prawdopodobnie warto wzmocnienie sygnału wyjściowego czujnika. Da to większą rozdzielczość ADC w Arduino, co przełoży się na lepszą stabilność algorytmu sterowania PID. Zobacz pytanie Konwersja poziomu napięcia analogowego (przesunięcie poziomu), które omawia wzmocnienie i przesunięcie poziomu napięcia analogowego.

Zakładając, że pracujesz w zakresie 40ºC - 100ºC (0,4v - 1.0v). Będziesz chciał odjąć 0,4v od sygnału, dając 0,0v - 0,6v, i wzmocnić wynik przy wzmocnieniu 8, dając 0,0v - 4,8v. Zapewni to doskonałą rozdzielczość.

Dokładność w zakresie temperatur wynosi 1 ° C. 0,25 ° C to rozmowa handlowa.
@stevenvh - „Dokładność ponad temperaturę” to zły zakres, o którym należy mówić. „Dokładność w temperaturze gotowania” to właściwy zakres, o którym warto mówić.
0,5 ° C wynosi 25 ° C. Czy temperatura gotowania będzie bliższa tej, czy bliższa zakresowi temperatur? Myślę, że to drugie.
@stevenvh - Myślę, że zamieszczony przeze mnie diagram odpowiada na to pytanie.
Nie zrozum mnie źle, nie chcę, aby twój czujnik wyglądał źle. Chcę być realistą. Jako konstruktor unikam typowych wartości. Zaprojektuj dla najgorszego przypadku. Jeśli maksymalna temperatura wynosi 0,7 ° C przy 60 ° C *, oznacza to, że może wystąpić *, bez względu na to, jak ładnie może wyglądać 0,1 ° C. W zależności od zastosowania liczenie na typowych wartościach może powodować problemy z jakością.
@stevenvh - Dlatego kalibracja w 0ºC i 100ºC jest dobrym pomysłem. Takie postępowanie prawdopodobnie przyniosłoby dokładność w granicach 0,25ºC. Chyba że naprawdę projektujesz dla najgorszego przypadku i zakładasz, że dokładność zmienia się losowo w tych granicach.
Możesz skalibrować w temperaturze wrzenia alkoholu metylowego zamiast wody: 64,7 ° C.
@stevenvh - To dobry pomysł! W takim przypadku mógłby prawdopodobnie wykonać kalibrację 1-punktową, aby uzyskać wystarczająco dobrą dokładność. Chociaż musiałby uważać, aby się nie odurzyć / nie wysadzić w powietrze.
Możesz dodać to do swojej odpowiedzi. Nie każdy czyta wszystkie komentarze.
Wzmocnienie użytecznego zakresu w celu pokrycia zakresu czujnika zmniejszy szum kwantyzacji, ale należy również zauważyć, że teraz dodaje on własny zestaw błędów. Nawet jeśli wykonujesz kalibrację w jednym punkcie, musisz teraz wziąć pod uwagę przesunięcie napięcia wejściowego wzmacniacza w zależności od temperatury urządzenia, a nie gotowanej rzeczy. Nie mówię, że wzmacnianie jest złe, po prostu jeśli masz je polecać, powinieneś również wskazać problemy, które się z nim wiążą.
@Olin - To dobra uwaga. Jednak w tym przypadku szum kwantyzacji jest naprawdę zły. 5 LSB powyżej 0,25ºC. To spowoduje, że stabilność będzie dość trudna. Jutro wspomnę o błędach wzmocnienia w odpowiedzi.
Zwróć uwagę, że urządzenie jest fabrycznie przycięte - stąd ** gwarantowane ** 0,5C AT 25C (dla topowego modelu) i dywergencja w obie strony. Jest wysoce prawdopodobne [TM], że po skalibrowaniu będzie się zachowywał równie dobrze w każdej innej rozsądnej temperaturze.
Dzięki za tę odpowiedź i dyskusję - bardzo doceniane
@RichardRussell - Nie ma problemu. Nie zapomnij zagłosować za i / lub zaznaczyć pomocne odpowiedzi.
Na marginesie może się okazać, że kubek lodowatej wody bardzo dokładnie osiągnie 0 stopni. Dzieje się tak, ponieważ topnienie lodu utrzyma go na poziomie 0 stopni, aby wznieść się powyżej, musi stopić cały lód. Wystarczy zwykła filiżanka wody z lodem, aby uzyskać świetne odniesienie 0 stopni w środku, bez konieczności oglądania w nieskończoność (jeśli chcesz być bardzo dokładny, musisz kompensować ciśnienie i zawartość minerałów)
Wouter van Ooijen
2012-05-28 21:13:28 UTC
view on stackexchange narkive permalink

Po pierwsze, zgadzanie się z innymi: dokładność 1,0C znacznie ułatwi ci życie.

Wydaje się, że jesteś nastawiony na czujniki analogowe, ale proponuję taki z interfejsem cyfrowym. Czujniki analogowe są albo (używane) radiometryczne (dostarczają procentową wartość Vcc zależną od tempearture), co daje nieliniową odpowiedź, którą trzeba będzie przeliczyć. Drugi typ (LM35 itp.) Jest absolutny, co wymaga A / D względem napięcia odniesienia, które musi być (znacznie) bardziej dokładne niż pożądana dokładność. Chyba, że ​​chcesz zmierzyć coś, czego nie potrafi czujnik z interfejsem cyfrowym (np. >> 100C), wydaje się to niepotrzebnym kłopotem.

Edycja: wypróbujmy LM35. 10mV / C, nawet zakładając, że sam LM35 nie wprowadza błędu , typowe odniesienie (LM431 itp.) Ma dokładność 1%, co wprowadza 1% błąd odczytu temperatury! Typowy mikrokontroler A / D ma 10 bitów, załóżmy, że pełna skala to odniesienie 2,5 V (sprawdź, czy Twój uC na to pozwala!). 1-bitowy błąd A / D (bądźmy optymistami!, Lepiej sprawdź arkusz danych uC) to 2.5mV = błąd 1 / 4C. Więc nawet bez samego czujnika mamy błąd + / 1.25 C (w najlepszym przypadku ...).

Zdobądź czujnik z interfejsem cyfrowym, na przykład stary dobry DS1820 / 18S20 / 18B20, wszystkie TO92. Lub jeden z czujników I2C lub SPI, które Microchip wytwarza w TO220. Jeśli podgrzewasz w tacy lub czymś innym, możesz podłączyć języczek do tacy.

Nie mam nic przeciwko temu, czy jest analogowy czy cyfrowy - nie wiedziałem, że istnieją urządzenia cyfrowe. Zmienię pytanie, aby wyjaśnić: po zapoznaniu się ze specyfikacją DS18S20 wygląda na odpowiedni, wystarczy, że umieściłbym go w jakiejś sondzie, aby zanurzyć się w wodzie - nietrywialne wyzwanie dla kogoś, kto nigdy tego nie zrobił :-)
Na podstawie informacji podanych w tej odpowiedzi i wielu innych oraz dalszych poszukiwań znalazłem wodoodporną sondę DS18B20 w Alpha-Crucis (UE). Jest również dostępny w Adafruit w USA, spełnia wszystkie moje wymagania i ma idealną formę.
Olin Lathrop
2012-05-28 20:22:59 UTC
view on stackexchange narkive permalink

Wygląda na to, że pytasz tylko o sondę. Najwyraźniej chcesz czegoś, co możesz bezpośrednio zetknąć z jedzeniem. Sterownik PID zawiera dużo więcej niż tylko czujnik sprzężenia zwrotnego, ale wygląda na to, że o to nie pytasz. Jeśli którekolwiek z tych stwierdzeń jest nieprawidłowe, zaktualizuj swoje pytanie. Nie mam też pojęcia, co to jest „Sous Vide”. Wszelkie istotne informacje powinny znaleźć się w Twoim pytaniu. Linki służą tylko jako materiał pomocniczy.

Jak wspomniał Steven, 1/2 degC jest bardzo ambitne i niepotrzebne, gdy mówisz o jedzeniu.

Najłatwiejszym czujnikiem temperatury będzie termistor . Mogą obsługiwać zakres, a poza tym potrzebują tylko rezystora obciążenia. Wynik będzie również proporcjonalny do twojej podaży, więc wszelkie zmiany podaży zostaną anulowane. Wykrywanie awarii jest łatwe w oprogramowaniu sprzętowym, ponieważ odczyty bardzo bliskie górnej lub dolnej części zakresu wskazują nierealistyczne temperatury. Jeśli otrzymasz coś spoza prawidłowego zakresu temperatur, zakładasz awarię sprzętu i wchodzisz w taki, który uważasz za swój bezpieczny tryb. Jest to naprawdę problem oprogramowania układowego, a nie sprzętowego z termistorem i odpowiednim rezystorem obciążenia.

Jeśli chodzi o zabezpieczenie przed żywnością, zamknięcie sondy w szkle powinno być dobre. Co powiesz na epoksydowanie termistora do dna małej probówki, która następnie staje się sondą? Wierzch można uszczelnić gorącym klejem lub czymś podobnym. Musi być wodoszczelny, ale nie powinno tam być jedzenia. Z górnej części rury powinny wychodzić tylko dwa izolowane przewody. Szkło dość dobrze przenosi ciepło. Stała czasowa sondy powinna nadal być znacznie mniejsza niż stała czasowa od mocy grzałki do zmiany temperatury żywności.

Termistory nie są bardzo dokładne, chyba że płacisz dużo pieniędzy. W przypadku jednorazowego projektu hobbystycznego kupiłem dowolny termistor, jaki można mieć w odpowiednim zakresie i skalibrowałem ręcznie. Wykonaj kalibrację w kilku znanych temperaturach określonych za pomocą niezawodnego znanego termometru, a następnie wykonaj interpolację oprogramowania sprzętowego pomiędzy. Aby uzyskać dodatkowe punkty, możesz nawet sprawdzić nominalne równanie termistora, dopasować do niego zmierzone punkty najlepiej, jak to możliwe, a następnie wyprowadzić z tego funkcję ciągłą. Możesz zapełnić stałą tabelę w oprogramowaniu układowym wieloma segmentami ze skalibrowanej funkcji, aby interpolacja liniowa między segmentami była całkiem dobra.

Ponownie, 1/2 degC wymaga za dużo, ale nie robisz tego i tak naprawdę tego potrzebuję. Termistor z 4 punktami kalibracji, dopasowaniem równania, a następnie interpolacją powinien wystarczyć do rozwiązania rzeczywistego problemu.

Skalibruj do 1/2 stopnia za pomocą niezawodnego, znanego termometru. Czy to nie przesuwa problemu? Termometr wzorcowy powinien być co najmniej równie dokładny, a najlepiej dokładniejszy, niż to 1/2 stopnia.
@Federico: Porusza problem dokładności, ale termometr referencyjny może być dowolną technologią, nie musi być bezpieczny dla żywności i nie musi być odczytywalny maszynowo. Porządny termometr rtęciowy (lub inny płynny) przeznaczony dla tego zakresu powinien być dostępny bez większych problemów.
Mam porządny termometr z sondą, który jest skalibrowany, którego mogę użyć do skalibrowania tego.Nie potrzebuję go bezpośrednio w kontakcie z jedzeniem, ale ponieważ będzie zanurzony w płynie w kuchence do ryżu, którą mogę również użyć do gotowania ryż, nie chcę, żeby wyciekało coś toksycznego ... Sous Vide to metoda gotowania z precyzyjnymi temperaturami w próżniowo zapakowanych workach w kąpieli wodnej. Kontroler PID buduję z Arduino iw tym przypadku wystarczy, że zdecyduję się na czujnik temperatury.
Tony Stewart Sunnyskyguy EE75
2012-05-29 12:43:55 UTC
view on stackexchange narkive permalink

Używając LM335Z, możesz skalibrować offset i błąd wzmocnienia dla dowolnego czujnika za pomocą 2 odczytów testowych w temperaturze 0'C 100'C z lodem i wrzącą wodą.

Następnie uzyskaj odczyt weryfikacyjny w połowie zakres powiedzmy 50'C.

Możesz zrobić przyrząd testowy i skalibrować jeden czujnik jako srebrny standard względem innego termometru o złotym standardzie. Następnie zapisujesz błędy oczekiwane-rzeczywiste i obliczasz liniową progresję lub liczbę wzmocnienia i przesunięcia, aby zapisać je w pamięci EEPROM, aby stały się skalibrowanym zestawem. Jeśli otrzymasz partię, może się okazać, że wszystkie mają ten sam błąd przesunięcia i wzmocnienia, który możesz poprawić w oprogramowaniu, aby wyświetlić poprawiony odczyt.

Przy standardach 0,1 ° C można spodziewać się błędu 0,2 ° C i użyć dowolnego wybranego wyświetlacza, aby zagwarantować, że błąd 0,5 ° C dla krytycznych wartości zadanych.

Zobacz rys. 3

http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/DATASHEET/CD00000459.pdf

Uszczelniłbym czujnik cienką powłoką żywicy epoksydowej, aby zabezpieczyć urządzenie przed wyciekiem wilgoci i użyj skrętki lub dwóch skrętek elastycznych, używając 2 jako ekranu, a następnie użyj "dławików ferrytowych CM" do pochłaniania zakłóceń RF. ADC z gwarantowaną dokładnością do +/- 0,5 bitu lub być może 1 na 256 poziomów do odczytu 0,5 / 100% dokładności. Nie jest to gwarantowane w większości Arduino, więc musisz użyć sprzętowego przetwornika cyfrowo-analogowego, aby przetestować to na wyjściu minus wejście w zakresie 2-kanałowym i wybrać parę AC dla CH1 i CH 2, a następnie wyświetlić tryb XY CH1 vs Ch2, aby uzyskać środkową kropkę, która przechodzi przez maksymalnie +/- 1 bit. Jakikolwiek szum Vref w twoim ADC spowoduje pominięcie poziomów kwantyzacji lub histerezy podczas przejść, takich jak 01111 do 10000, a przesłuch z cyfrowej masy do wejścia analogowego sygnału uziemienia nie powiedzie się przy monotoniczności.

Poszukaj literatury na temat błędów ADC w witrynie TI.

@Richard Russell << Doceniam potrzebę kontroli 0,5 st. C w ekologicznych stylach gotowania w niskich temperaturach, w których żywe organizmy zaczynają szybko umierać powyżej temperatury Pasteura, gdy bakterie są zabijane.

Gdybym to był ja, dokonałbym kalibracji z dokładnością do 0,1 stopnia, używając moich temperatur kalibracji wzmocnienia przesunięcia w zakresie od 45 do 65 stopni C, po mocnym przymocowaniu go do dobrze izolowanego naczynia. Następnie możesz wykonać każdą inną komercyjną kuchenkę na rynku ... zakładając, że jest dobrze izolowana dielektrykiem o wysokiej wartości R.

Następnie, aby uzyskać wygląd, abyś mógł pobrać 500 $, owinąć go precyzyjnym amerykańskim SS, który lubi „Spirit of St Louis” jest głęboko zarysowany i bardzo wypolerowany. ;)

Osobiście zleciłbym profesjonalistom wytrawienie zewnętrznego kwasu SS wytrawionego na co dzień grafiką o historycznym znaczeniu kulinarnym za 50 $, a następnie pobraniem dodatkowej opłaty za niestandardową grafikę z własnym logo i nazwą firmy. Po prostu zapytaj, czy potrzebujesz dobrej referencji.

Dziękuję, że pozwoliłeś mi pomóc w osiągnięciu celu.

Pozdrawiam - to naprawdę pomocne. Muszę powiedzieć, że nie mam pojęcia, co to „amerykańskie SS”, ale fajnie to brzmi :-)
SS = stal nierdzewna
Z pewnością, kiedy kalibrujesz czujnik, robisz to po ADC. Dlatego też kalibrujesz błąd ADC?
Richard Russell
2012-05-30 14:12:25 UTC
view on stackexchange narkive permalink

Na podstawie informacji podanych w innych odpowiedziach i dalszych poszukiwań znalazłem sondę Waterproof DS18B20 w Alpha-Crucis (UE). Jest również dostępny w Adafruit w USA.

Spełnia wszystkie moje wymagania i ma idealną formę.

to tylko link do produktu i brak informacji dlaczego. Są użytkownicy, którzy włożyli dużo pracy w odpowiedzi, aby pomóc ci cię nauczyć, a akceptacja jest zwykle nagrodą za takie zadanie, zwłaszcza jeśli wykonali pracę polegającą na prowadzeniu cię tutaj.
OK, przyjmuję inną odpowiedź. Gdzie mam wyciągnąć własne wnioski?
Mówiłem o dwóch rzeczach: 1) Jeśli czyjaś odpowiedź jest tym, co cię tu przywiodło, prawdopodobnie powinni otrzymać akceptację. 2) Pisanie odpowiedzi jest więcej niż dopuszczalne, ale czy możesz podać nam więcej informacji niż tylko link. W tej chwili nic więcej nie wiem, jak to urządzenie nosi w kilku miejscach i jest wodoodporne.
* Zrobiłem * Sous Vide używając DS18B20, tego z plastikową końcówką, ale model z metalową końcówką jest lepszy.Do gotowania wystarczy (używam go codziennie), a +/- 1 ° C to wszystko, czego potrzebujesz.Temperatura na patelni nie jest jednolita;może wynosić +/- 3 ° C w zależności od tego, gdzie umieścisz sondę i jak podgrzejesz wodę (inmersion v / s płyta grzejna), czy woda krąży, czy nie.


To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 3.0, w ramach której jest rozpowszechniana.
Loading...