Я создаю ПИД-регулятор для sous-vide, как этот , и пытаюсь решить, какой датчик температуры получить.
Приоритеты:
- Стоимость: <£ 25 с доставкой в Великобритании
- Точность: +/- 0.5C
- Диапазон: 0 - 100C
- Выход: что-то, что может быть прочитано Arduino с минимальной дополнительной схемой (например, 0-5 В пост. Тока, сопротивление, которое легко измеряется, или цифровой выход, такой как OneWire и т. Д.)
- Физические: водонепроницаемые, безопасные для пищевых продуктов (в идеале) и с длиной провода не менее метра - в идеале не слишком много работы для создания этого форм-фактора (у меня нет мастерской)
- Режим отказа: был бы идеальным, если бы сбой вызвал показания перегрева, а не понижения температуры
Рад идти на компромисс по любому из вышеперечисленного, если это необходимо, но это мой идеал. Также открыт для предложений о том, что еще я должен идти на компромисс. Меня особенно интересуют мысли относительно таких датчиков, как k-тип, pt100, микросхема TMP36 и «стандартный» терморезистор 10K (хотя, если эти названия недостаточно точны, пожалуйста, дайте мне знать, каким я должен быть ищем вместо).
arduino
temperature
pid-controller
thermistor
thermocouple
Ричард Рассел
источник
источник
Ответы:
Во-первых, согласиться с другими: точность в 1.0C значительно облегчит вашу жизнь.
Кажется, вы настроены на аналоговые датчики, но я бы предложил один с цифровым интерфейсом. Аналоговые датчики являются (используются) радиометрическими (выдают процент Vcc, зависящий от температуры), что дает нелинейный отклик, который вам придется преобразовать. Другой тип (LM35 и т. Д.) Является абсолютным, что требует от вас аналого-цифрового преобразования от эталонного напряжения, которое должно быть (намного) более точным, чем требуемая точность. Если вы не хотите измерить что-то, чего не может датчик цифрового интерфейса (например, >> 100C), это кажется излишним хлопотом.
Изменить: давайте попробуем LM35. 10 мВ / C, даже если предположить, что сам LM35 не вносит ошибок , типичный эталон (LM431 и т. Д.) Имеет точность 1%, что вносит погрешность в 1% в показание температуры! Типичный A / D микроконтроллера имеет 10 бит, давайте предположим, что полная шкала является эталоном 2,5 В (проверьте, позволяет ли это ваш ОК!). 1-битная ошибка A / D (давайте будем оптимистичны, лучше проверьте таблицу данных uC) составляет 2,5 мВ = 1 / 4C ошибка. Так что даже без самого датчика мы имеем ошибку + / 1,25 C (в лучшем случае ..).
Получить датчик цифрового интерфейса, например старый добрый DS1820 / 18S20 / 18B20, все TO92. Или один из датчиков I2C или SPI, который Microchip производит в TO220. Если вы нагреваете в лотке или что-то еще, вы можете подключить вкладку к лотку.
источник
Получить точный датчик температуры IC, как LM35CAZ .
Вы получаете питание 5 В, и на выходе получается простое напряжение, которое является линейной функцией температуры. Они имеют довольно хорошую точность ± 1⁄4˚C при комнатной температуре.
Добавлено:
Несколько человек говорили о том, что «точность в диапазоне температур» для этого датчика составляет ± 1ºC. Это неправильный диапазон, чтобы говорить о. «Точность при температуре приготовления» - это правильный диапазон для разговора. При температуре около 60ºC точность составляет ± 0,7, и, вероятно, лучше, чем это. «Типичная» линия изменяется примерно на 0,1ºC в зависимости от вашего диапазона приготовления.
Вероятно, вам понадобится только одна или две точки калибровки, чтобы этот датчик был достаточно точным для ваших нужд. Но, конечно, это требует точного термометра для калибровки. Для этого у вас есть несколько вариантов:
Вариант 1: вы можете использовать воду. Температура воды, которая подвергается замерзанию, составляет 0ºC. Поэтому положите его в небольшую чашку воды в морозильнике и внимательно следите за выходным напряжением. Он будет падать и падать, пока вода не начнет замерзать. В этот момент температура перестанет падать и останется на некоторое время без изменений. По окончании замораживания температура снова начнет падать. Обратите внимание на напряжение в плоской области, которое будет использоваться в качестве точки калибровки 0ºC.
Сделайте то же самое для кипящей воды. Лучше всего делать это на уровне моря. Если вы не на уровне моря, то проверьте, какая температура кипения воды на вашей высоте.
Использование 0ºC и 100ºC не так хорошо, как использование, скажем, 50ºC и 80ºC, но это намного проще. Если у вас есть очень точный термометр, вам следует использовать калибровочные точки ближе к вашей температуре приготовления.
Вариант 2: использовать метиловый спирт. (Спасибо stevenvh) Это кипит при 64.7ºC. Это настолько близко к вашей температуре приготовления, что вам нужна только одна точка калибровки, чтобы получить очень точную температуру приготовления. Очевидно, будьте осторожны, чтобы не опьянеть и не взорвать себя дымом. Не нагревайте алкоголь над открытым огнем!
Добавлено - Усиление
Поскольку вы работаете в узком температурном диапазоне и вам нужна хорошая точность управления, вероятно, также стоит усилить выходной сигнал датчика. Это даст большее разрешение АЦП в Arduino, что приведет к лучшей стабильности алгоритма управления ПИД. См. Вопрос « Преобразование уровня аналогового напряжения (сдвиг уровня)», в котором рассматриваются усиление и сдвиг уровня аналогового напряжения.
Предполагая, что вы работаете в диапазоне 40–100 ° C (0,4–1,0 В). Вы хотите вычесть 0,4 В из сигнала, давая 0,0 В - 0,6 В, и усилить результат с коэффициентом усиления 8, давая 0,0 В - 4,8 В. Это даст отличное разрешение.
источник
Похоже, вы спрашиваете только о зонде. Очевидно, вы хотите что-то, что вы можете поставить в прямой контакт с едой. ПИД-регулятор включает в себя не только датчик обратной связи, но кажется, что вы не спрашиваете об этом. Если что-то из этого неверно, вам следует обновить свой вопрос. Я также понятия не имею, что такое "Sous Vide". Любая информация, имеющая к этому отношение, должна быть в вашем вопросе. Ссылки только для справочного материала.
Как отметил Стивен, 1/2 градуса Цельсия очень амбициозны и не нужны, когда вы говорите о еде.
Самым простым датчиком температуры будет термистор. Они могут работать с диапазоном и в противном случае требуется только нагрузочный резистор. Результат также будет пропорционален вашему предложению, поэтому любые изменения предложения будут отменены. Обнаружить сбой в микропрограммном обеспечении легко, поскольку показания очень близко к верхней или нижней части диапазона указывают на нереальные температуры. Если вы получаете что-то за пределами допустимого диапазона температур, вы допускаете аппаратный сбой и вводите то, что вы считаете безопасным режимом. Это действительно проблема прошивки, а не аппаратная с термистором и правильным нагрузочным резистором.
Что касается того, чтобы сделать его безопасным для пищевых продуктов, то следует поместить зонд в стекло. Как насчет эпоксидирования термистора на дно маленькой пробирки, которая затем становится зондом? Верх можно запечатать горячим клеем или чем-то еще. Это должно быть водонепроницаемым, но еда не должна быть там. Только два изолированных провода должны выходить из верхней части трубки. Стекло довольно хорошо передает тепло. Постоянная времени зонда должна быть значительно меньше постоянной времени от мощности нагревателя до температуры смены пищи.
Термисторы не очень точны, если вы не платите много денег. Для одноразового хобби-проекта я взял бы любой термистор, который можно было бы иметь в нужном диапазоне, и калибровал бы вручную. Выполняйте калибровку при нескольких известных температурах, определенных по надежному известному термометру, затем выполняйте интерполяцию встроенного программного обеспечения. Для дополнительной оценки вы можете даже найти номинальное уравнение для термистора, подобрать к нему ваши измеренные точки как можно лучше, а затем вывести из этого непрерывную функцию. Вы можете заполнить фиксированную таблицу во встроенном программном обеспечении многими сегментами из калиброванной функции, так что линейная интерполяция между сегментами будет довольно хорошей.
Опять же, 1/2 градуса Цельсия требует слишком многого, но в любом случае вам это не нужно. Термистор с 4 точками калибровки, подгонкой по уравнениям и последующей интерполяцией должен быть в порядке для решения актуальной проблемы.
источник
Используя LM335Z, вы можете откалибровать смещение и погрешность усиления для любого заданного датчика с помощью 2 тестовых показаний при 0 ° C 100 ° C со льдом и кипящей водой.
Затем получите контрольное значение в середине диапазона, скажем, 50'C.
Вы можете сделать испытательный стенд и откалибровать один датчик в качестве серебряного эталона относительно другого термометра золотого стандарта. Затем вы сохраняете ожидаемые фактические ошибки и рассчитываете линейную прогрессию или число усиления и смещения для сохранения в EEPROM, чтобы они стали калиброванным набором. Если вы получаете пакет, вы можете обнаружить, что все они имеют одинаковое смещение и ошибку усиления, которую вы можете исправить в программном обеспечении, чтобы отобразить исправленное значение.
Стандарты 0,1 ° С позволяют ожидать погрешность 0,2 ° С и использовать любой дисплей, который вы выберете, чтобы гарантировать погрешность 0,5 ° С для критических заданных значений.
См. Рис 3
http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/DATASHEET/CD00000459.pdf
Я бы заклеил датчик тонким слоем пищевой эпоксидной смолы для защиты устройства от утечки влаги и использовал витую пару или две витые пары, используя 2 в качестве экрана, а затем использовал «ферритовые дроссели CM» для поглощения радиочастотных помех.
Затем вам понадобится АЦП с гарантированной точностью +/- 0,5 бита или, возможно, 1 на 256 уровнях, чтобы получить точность 0,5 / 100%. Это не гарантируется в большинстве Arduino, поэтому вам нужно использовать аппаратный ЦАП, чтобы проверить это на Выходе минус Вход на 2-канальном прицеле и выбрать пару AC для CH1 и CH 2, а затем отобразить режим XY CH1 против Ch2, чтобы получить центральную точку, которая проходит максимум +/- 1 бит. Любой шум Vref в вашем АЦП вызовет пропущенные уровни квантования или гистерезис во время переходов, таких как 01111 - 10000, и перекрестные помехи от цифрового заземления на входной аналоговый сигнал заземления не будут выполняться из-за монотонности.
Проверьте сайт TI для литературы по ошибкам АЦП.
@Richard Russell << Я ценю необходимость контроля на 0,5 градуса C при приготовлении органических блюд при низких температурах, когда живой организм начинает быстро умирать выше температуры Пастера, когда бактерии убиты.
Если бы это был я, я бы откалибровал с точностью до 0,1 градуса, используя температуры калибровки усиления смещения между 45 и 65 градусами после того, как он будет надежно прикреплен к хорошо изолированной емкости. Тогда вы сможете превзойти любую другую коммерческую плиту на рынке ... при условии, что она хорошо изолирована диэлектриком с высоким значением R.
Тогда для внешнего вида, чтобы можно было брать 500 долларов, заверните его в точный американский СС, который, как и «Дух Сент-Луиса», сильно царапается и полируется. ;)
Лично я получу гравировку на наружную кислоту SS профессионалами, которые делают это каждый день с произведением искусства, имеющим историческое значение для приготовления пищи, за 50 долларов, а затем доплачивают за заказное произведение искусства с личным логотипом и названием компании. Просто спросите, нужен ли вам хороший реф.
Спасибо, что позволили мне помочь вам с вашей целью.
источник
Основываясь на информации, приведенной в других ответах, и на дальнейших поисках, я нашел водостойкий зонд DS18B20 в Alpha-Crucis (EU). Это также доступно в Adafruit в США.
Он отвечает всем моим требованиям и имеет идеальный форм-фактор.
источник