Estoy creando un controlador PID para sous-vide, como este , y estoy tratando de decidir qué sensor de temperatura desea obtener.
Prioridades:
- Costo: <£ 25 entregados en el Reino Unido
- Precisión: +/- 0.5C
- Rango: 0 - 100C
- Salida: algo que puede leer un Arduino con un mínimo de circuitos adicionales (por ejemplo, 0-5 V CC, una resistencia que se mide fácilmente o una salida digital como OneWire, etc.)
- Físico: resistente al agua, apto para alimentos (idealmente) y con un cable de al menos un metro de largo, idealmente no es demasiado trabajo para crear este factor de forma (no tengo un taller)
- Modo de falla: sería ideal si una falla causara una lectura de sobre temperatura en lugar de una temperatura baja
Feliz de comprometer cualquiera de los anteriores si es necesario, pero este es mi ideal. También abierto a sugerencias sobre qué más debería comprometer. Me interesaría especialmente pensar en sensores como un tipo k, un pt100, un chip TMP36 y un termistor "estándar" de 10K (aunque si estos nombres no son lo suficientemente específicos, por favor avíseme qué debería ser buscando en su lugar).
arduino
temperature
pid-controller
thermistor
thermocouple
Richard Russell
fuente
fuente
Respuestas:
Primero, estar de acuerdo con los demás: la precisión de 1.0C hará que su vida sea mucho más fácil.
Parece que está configurado con sensores analógicos, pero sugeriría uno con una interfaz digital. Los sensores analógicos son radiométricos (usados) (entregan un porcentaje de Vcc dependiente de la temperatura), lo que da una respuesta no lineal, que deberá convertir. El otro tipo (LM35, etc.) es absoluto, lo que requiere A / D contra un voltaje de referencia que debe ser (mucho) más preciso que la precisión deseada. A menos que desee medir algo que un sensor de interfaz digital no puede (como >> 100C), esto parece una molestia innecesaria.
Editar: intentemos un LM35. 10mV / C, incluso suponiendo que el LM35 en sí no introduce ningún error , una referencia típica (LM431, etc.) es 1% precisa, ¡lo que introduce un error del 1% en la lectura de temperatura! Un microcontrolador típico A / D es de 10 bits, supongamos que la escala completa es una referencia de 2.5V (¡compruebe si su uC lo permite!). El error A / D de 1 bit (¡seamos optimistas !, mejor revise su hoja de datos uC) es 2.5mV = error 1 / 4C. Entonces, incluso sin el sensor en sí, tenemos un error de + / 1.25 C (en el mejor de los casos ...).
Obtenga un sensor de interfaz digital, por ejemplo, el viejo DS1820 / 18S20 / 18B20, todo TO92. O uno de los sensores I2C o SPI que Microchip fabrica en TO220. Si está calentando en una bandeja o algo, podría conectar la pestaña a la bandeja.
fuente
Obtenga un IC de sensor de temperatura de precisión, como el LM35CAZ .
Lo alimentas con un buen 5v, y la salida es un voltaje simple que es una función lineal de temperatura. Tienen una precisión bastante buena de ± 1⁄4˚C a temperatura ambiente.
Adicional:
Varias personas han hablado acerca de "La precisión sobre el rango de temperatura" para este sensor es de ± 1ºC. Este es el rango equivocado para hablar. "Precisión a la temperatura de cocción" es el rango adecuado para hablar. A aproximadamente 60ºC, la precisión es de ± 0.7, y probablemente mejor que eso. La línea "típica" varía aproximadamente 0.1ºC sobre su rango de cocción.
Probablemente solo necesite uno o dos puntos de calibración para que este sensor sea lo suficientemente preciso para sus necesidades. Pero, por supuesto, eso requiere un termómetro preciso para calibrarlo. Para eso, tienes un par de opciones:
Opción 1: puedes usar agua. La temperatura del agua que se congela es de 0ºC. Así que mételo en una pequeña taza de agua en el congelador y observa cuidadosamente el voltaje de salida. Caerá y caerá hasta que el agua comience a congelarse. En este punto, la temperatura dejará de caer y permanecerá plana por un tiempo. Una vez que se completa la congelación, la temperatura comenzará a caer nuevamente. Tome nota del voltaje en la región plana para usar como su punto de calibración de 0ºC.
Haga lo mismo para hervir agua. Es mejor hacer esto al nivel del mar. Si no está al nivel del mar, compruebe cuál es la temperatura de ebullición del agua a su altitud.
Usar 0ºC y 100ºC no es tan bueno como usar, digamos 50ºC y 80ºC, pero es mucho más fácil. Si tiene un termómetro muy preciso disponible, entonces debe usar puntos de calibración más cercanos a su temperatura de cocción.
Opción 2: usar alcohol metílico. (Gracias stevenvh) Esto hierve a 64.7ºC. Esto está tan cerca de su temperatura de cocción, que solo debería necesitar un punto de calibración para obtener una temperatura de cocción muy precisa. Obviamente tenga cuidado de no intoxicarse o explotar con los humos. ¡No caliente el alcohol sobre una llama desnuda!
Agregado - Amplificación
Dado que está trabajando en un rango de temperatura estrecho y necesita una buena precisión de control, probablemente también valga la pena amplificar la salida del sensor. Esto dará una mayor resolución de ADC en Arduino, lo que se traducirá en una mejor estabilidad del algoritmo de control PID. Consulte la pregunta Conversión de nivel de voltaje analógico (cambio de nivel) que analiza la amplificación y el cambio de nivel de un voltaje analógico.
Suponiendo que está trabajando en el rango de 40ºC - 100ºC (0.4v - 1.0v). Querrá restar 0.4v de la señal, dando 0.0v - 0.6v, y amplificar el resultado con una ganancia de 8, dando 0.0v - 4.8v. Esto le dará una excelente resolución.
fuente
Parece que solo pregunta por la sonda. Aparentemente quieres algo que puedas poner en contacto directo con la comida. Un controlador PID incluye mucho más que el sensor de retroalimentación, pero parece que no está preguntando sobre eso. Si algo de esto es incorrecto, entonces debe actualizar su pregunta. Tampoco tengo idea de lo que es "Sous Vide". Cualquier información relevante debe estar en su pregunta. Los enlaces son solo para material de antecedentes.
Como Steven mencionó, 1/2 degC es muy ambicioso e innecesario cuando se habla de comida.
El sensor de temperatura más fácil será un termistor. Pueden manejar el rango y de lo contrario solo necesitan una resistencia de carga. El resultado también será radiométrico para su suministro, por lo que cualquier variación de suministro se cancelará. La detección de fallas es fácil en el firmware ya que las lecturas muy cercanas a la parte superior o inferior del rango indican temperaturas poco realistas. Si obtiene algo fuera de un rango de temperatura válido, entonces asume una falla de hardware e ingresa lo que cree que es su modo seguro. Esto es realmente un problema de firmware, no uno de hardware con un termistor y la resistencia de carga correcta.
En cuanto a hacerlo seguro para los alimentos, encerrar la sonda en vidrio debería ser bueno. ¿Qué tal epoxiar el termistor al fondo de un pequeño tubo de prueba, que luego se convierte en la sonda? La parte superior se puede sellar con pegamento caliente o algo. Tiene que ser hermético pero la comida no debería estar allí. Solo deben salir dos cables aislados de la parte superior del tubo. El vidrio es bastante bueno para transmitir calor. La constante de tiempo de la sonda aún debe ser mucho menor que la constante de tiempo desde la potencia del calentador hasta la temperatura de cambio de alimentos.
Los termistores no son muy precisos a menos que pague mucho dinero. Para un proyecto de pasatiempo único, obtendría el termistor que se pueda tener en el rango correcto y lo calibraría manualmente. Calibre a unas pocas temperaturas conocidas determinadas por un termómetro confiable conocido, luego haga que el firmware se interpole entre ellos. Para obtener un crédito adicional, incluso puede buscar la ecuación nominal para el termistor, ajustar sus puntos medidos lo mejor posible y luego derivar la función continua de eso. Puede completar una tabla fija en el firmware con muchos segmentos de la función calibrada para que la interpolación lineal entre segmentos sea bastante buena.
Nuevamente, 1/2 degC está pidiendo demasiado, pero en realidad no necesitas tanto. Un termistor con quizás 4 puntos de calibración, ajuste de ecuación y luego interpolación debería estar bien para resolver el problema real.
fuente
Usando el LM335Z, puede calibrar el error de compensación y ganancia para cualquier sensor dado con 2 lecturas de prueba a 0'C 100'C con hielo y agua hirviendo.
Luego obtenga una lectura de verificación en el rango medio, digamos 50'C.
Puede hacer una plantilla de prueba y calibrar un sensor como su estándar de plata contra otro, el termómetro estándar de oro. Luego guarda los errores esperados-reales y calcula una progresión lineal o ganancia y número de compensación para guardar en EEPROM para que se conviertan en un conjunto calibrado. Si obtiene un lote, es posible que todos tengan el mismo error de compensación y ganancia que puede corregir en el software para mostrar la lectura corregida.
Con los estándares de 0.1'C puede esperar un error de 0.2'deg y usar cualquier pantalla que elija para garantizar un error de 0.5'C para sus puntos de ajuste críticos.
Ver Fig. 3
http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/DATASHEET/CD00000459.pdf
Sellaría el sensor con una capa delgada de epoxi de grado alimenticio para proteger el dispositivo de fugas de humedad y usaría un par trenzado o dos cables flexibles de par trenzado usando 2 como escudo y luego usaría "estranguladores CM de ferrita" para absorber la interferencia de RF.
Luego necesita un ADC que tenga una precisión garantizada de +/- 0.5 bit o quizás 1 en 256 niveles para leer 0.5 / 100% de precisión. Esto no está garantizado en la mayoría de los Arduino, por lo que debe usar un DAC de hardware para probar esto en Salida menos Entrada en un alcance de 2 canales y seleccionar un par de CA para CH1 y CH 2 y luego mostrar el modo XY CH1 vs Ch2 para obtener un punto central que atraviesa un máximo de +/- 1 bit. Cualquier ruido Vref en su ADC causará niveles de cuantificación omitidos o histéresis durante transiciones como 01111 a 10000 y la diafonía de la conexión a tierra digital a la alimentación analógica de entrada fallará en la monotonicidad.
Consulte el sitio de TI para obtener información sobre errores de ADC.
@Richard Russell << Aprecio la necesidad de un control de 0.5 ° C en los estilos de cocina orgánica a bajas temperaturas donde los organismos vivos comienzan a morir rápidamente por encima de la temperatura de Pasteur cuando se mata la bacteria.
Si fuera yo, calibraría con una precisión de 0.1 grados usando mis temperaturas de calibración de ganancia de compensación entre 45 y 65 grados C después de que esté firmemente unida a la olla bien aislada. Entonces puede superar cualquier otra cocina comercial en el mercado ... suponiendo que esté bien aislada en dieléctrico de alto valor R.
Luego, para la apariencia para que pueda cobrar $ 500, envuélvala en precisión SS estadounidense que, al igual que el "Espíritu de San Luis", esté profundamente rayado y altamente pulido. ;)
Personalmente, me gustaría que el ácido exterior de SS fuera grabado por profesionales que hacen esto todos los días con una obra de arte de importancia culinaria histórica por $ 50 y luego cobran extra por obras de arte personalizadas con el logotipo personal y el nombre de la empresa. Solo pregunta si necesitas una buena referencia.
Gracias por permitirme ayudarte con tu objetivo.
fuente
Basado en la información dada en otras respuestas, y buscando más, encontré una sonda DS18B20 a prueba de agua en Alpha-Crucis (EU). También está disponible en Adafruit en los EE. UU.
Cumple con todos mis requisitos y tiene un factor de forma ideal.
fuente