Estou criando um controlador PID para sous-vide, como este , e estou tentando decidir qual sensor de temperatura obter.
Prioridades:
- Custo: <£ 25 entregue no Reino Unido
- Precisão: +/- 0.5C
- Faixa: 0 - 100C
- Saída: algo que pode ser lido por um Arduino com circuitos adicionais mínimos (por exemplo, 0-5VDC, uma resistência que é facilmente medida ou saída digital como OneWire etc.)
- Físico: à prova d'água, seguro para alimentos (idealmente) e com uma vantagem de pelo menos um metro de comprimento - idealmente, não é muito trabalho para criar esse fator de forma (não tenho uma oficina)
- Modo de falha: seria ideal se uma falha causasse leitura de temperatura excessiva e não de temperatura baixa
É um prazer comprometer-se com qualquer um dos itens acima, se necessário, mas esse é o meu ideal. Também aberto a sugestões sobre o que mais devo comprometer. Eu estaria particularmente interessado em pensamentos sobre sensores como um tipo k, um pt100, um chip TMP36 e um termistor 10K "padrão" (embora se esses nomes não forem específicos o suficiente, informe-me como devo ser). procurando em vez disso).
arduino
temperature
pid-controller
thermistor
thermocouple
Richard Russell
fonte
fonte
Respostas:
Primeiro, concordando com os outros: buscar precisão de 1.0C tornará sua vida muito mais fácil.
Você parece estar configurado em sensores analógicos, mas eu sugiro um com uma interface digital. Os sensores analógicos são radiométricos (usados) (fornecem uma porcentagem de Vcc dependente da temperatura), o que fornece uma resposta não linear que você precisará converter. O outro tipo (LM35 etc) é absoluto, o que requer que você faça A / D com uma tensão de referência que deve ser (muito) mais precisa do que a precisão desejada. A menos que você queira medir algo que um sensor de interface digital não pode (como >> 100C), isso parece muito desagradável.
Edit: vamos tentar um LM35. 10mV / C, mesmo assumindo que o próprio LM35 não introduza nenhum erro , uma referência típica (LM431 etc) é 1% precisa, o que introduz um erro de 1% na leitura da temperatura! Um microcontrolador típico A / D é de 10 bits, vamos assumir que a escala completa é uma referência de 2,5V (verifique se o seu uC permite isso!). O erro A / D de 1 bit (sejamos otimistas !, verifique melhor a folha de dados do uC) é 2.5mV = 1 / 4C error. Portanto, mesmo sem o próprio sensor, temos um erro de + / 1,25 C (na melhor das hipóteses ..).
Obtenha um sensor de interface digital, por exemplo, o bom e velho DS1820 / 18S20 / 18B20, todos os TO92. Ou um dos sensores I2C ou SPI que a Microchip produz no TO220. Se você estiver aquecendo em uma bandeja ou algo assim, poderá conectar a aba à bandeja.
fonte
Obtenha um IC com sensor de temperatura de precisão, como o LM35CAZ .
Você o alimenta com bons 5v, e a saída é uma voltagem simples, que é uma função linear da temperatura. Eles têm uma precisão muito boa de ± 1⁄4˚C em temperatura ambiente.
Adicionado:
Várias pessoas falaram sobre "Precisão acima da faixa de temperatura" para esse sensor estar em ± 1ºC. Este é o intervalo errado para se falar. "Precisão na temperatura de cozimento" é o intervalo certo para falar. A cerca de 60ºC, a precisão é de ± 0,7 e provavelmente melhor que isso. A linha 'típica' varia cerca de 0,1ºC no seu intervalo de cozimento.
Você provavelmente só precisa de um ou dois pontos de calibração para obter esse sensor com precisão suficiente para suas necessidades. Mas, é claro, isso requer um termômetro preciso para calibrá-lo. Para isso, você tem algumas opções:
Opção 1: você pode usar água. A temperatura da água em processo de congelamento é de 0ºC. Coloque-o em um copo pequeno de água no freezer e observe a tensão de saída com cuidado. Cairá e cairá até que a água comece a congelar. Neste ponto, a temperatura irá parar de cair e permanecer plana por um tempo. Quando o congelamento estiver concluído, a temperatura começará a cair novamente. Anote a tensão na região plana para usar como seu ponto de calibração a 0ºC.
Faça o mesmo para ferver água. É melhor fazer isso ao nível do mar. Se você não estiver no nível do mar, verifique qual é a temperatura de ebulição da água em sua altitude.
Usar 0ºC e 100ºC não é tão bom quanto usar, digamos 50ºC e 80ºC, mas é muito mais fácil. Se você tiver um termômetro muito preciso disponível, use pontos de calibração mais próximos da temperatura de cozimento.
Opção 2: Use álcool metílico. (Obrigado stevenvh) Isso ferve a 64,7ºC. Isso é tão próximo da sua temperatura de cozimento, que você só precisa de um ponto de calibração para obter uma temperatura de cozimento muito precisa. Obviamente, tenha cuidado para não intoxicar ou explodir-se com a fumaça. Não aqueça o álcool sobre uma chama nua!
Adicionado - Amplificação
Como você trabalha em uma faixa de temperatura estreita e precisa de uma boa precisão de controle, provavelmente também vale a pena amplificar a saída do sensor. Isso dará uma maior resolução ADC no Arduino, o que se traduzirá em melhor estabilidade do algoritmo de controle PID. Consulte a pergunta Conversão de nível de tensão analógica (mudança de nível), que discute a amplificação e a mudança de nível de uma tensão analógica.
Supondo que você esteja trabalhando na faixa de 40ºC - 100ºC (0,4v - 1,0v). Você quer subtrair 0,4v do sinal, dando 0,0v - 0,6v, e amplificar o resultado com um ganho de 8, dando 0,0v - 4,8v. Isso dará uma excelente resolução.
fonte
Parece que você está perguntando apenas sobre o probe. Aparentemente, você quer algo que possa colocar em contato direto com a comida. Um controlador PID inclui muito mais do que apenas o sensor de feedback, mas parece que você não está perguntando sobre isso. Se algo estiver incorreto, atualize sua pergunta. Eu também não tenho idéia do que é uma coisa "Sous Vide". Qualquer informação relevante deve estar na sua pergunta. Os links são apenas para material de fundo.
Como Steven mencionou, 1/2 degC é muito ambicioso e desnecessário quando você está falando sobre comida.
O sensor de temperatura mais fácil será um termistor. Eles podem lidar com a faixa e precisam apenas de um resistor de carga. O resultado também será ratiométrico para o seu suprimento, portanto, quaisquer variações no suprimento serão canceladas. A detecção de falha é fácil no firmware, pois leituras muito próximas à parte superior ou inferior da faixa indicam temperaturas irrealistas. Se houver algo fora de uma faixa de temperatura válida, você assume uma falha de hardware e insere o que acha que é o seu modo de segurança. Este é realmente um problema de firmware, não de hardware com um termistor e o resistor de carga correto.
Quanto a torná-lo seguro para alimentos, colocar a sonda em vidro deve ser bom. Que tal epoxar o termistor no fundo de um pequeno tubo de ensaio, que se torna a sonda? A parte superior pode ser selada com cola quente ou algo assim. Ele precisa ser à prova d'água, mas os alimentos não devem estar lá. Apenas dois fios isolados devem emergir da parte superior do tubo. O vidro é bastante bom na transmissão de calor. A constante de tempo da sonda ainda deve ser bem menor que a constante de tempo entre a energia do aquecedor e a temperatura de mudança de alimentos.
Os termistores não são muito precisos, a menos que você pague muito dinheiro. Para um projeto de hobby único, eu pegava qualquer termistor que pudesse ser encontrado na faixa certa e calibrava manualmente. Calibre em algumas temperaturas conhecidas determinadas a partir de um termômetro confiável e, em seguida, faça com que o firmware interpole no meio. Para crédito extra, você pode até procurar a equação nominal do termistor, ajustar seus pontos medidos da melhor forma possível, e daí derivar a função contínua. Você pode preencher uma tabela fixa no firmware com muitos segmentos da função calibrada, para que a interpolação linear entre segmentos seja bastante boa.
Novamente, 1/2 degC está pedindo demais, mas você realmente não precisa de muito. Um termistor com talvez 4 pontos de calibração, ajuste de equação e interpolação deve ser bom para resolver o problema real.
fonte
Usando o LM335Z, você pode calibrar o deslocamento e obter erros para qualquer sensor com 2 leituras de teste a 0'C 100'C com gelo e água fervente.
Em seguida, obtenha uma leitura de verificação no intervalo médio, digamos 50'C.
Você pode fazer um gabarito de teste e calibrar um sensor como seu padrão prateado contra outro, o termômetro padrão ouro. Você salva os erros reais esperados e calcula uma progressão linear ou um número de ganho e deslocamento para salvar na EEPROM para que eles se tornem um conjunto calibrado. Se você receber um lote, poderá descobrir que todos têm o mesmo erro de deslocamento e ganho que você pode corrigir no software para exibir a leitura corrigida.
Com os padrões de 0,1'C, você pode esperar um erro de 0,2'eg e usar qualquer monitor que escolher para garantir esse erro de 0,5'C para seus pontos de ajuste críticos.
Veja a Fig. 3
http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/DATASHEET/CD00000459.pdf
Eu selava o sensor com uma fina camada de epóxi de qualidade alimentar para proteger o dispositivo contra vazamentos de umidade e usava fios flexíveis de par trançado ou dois pares trançados usando 2 como blindagem e depois usava "bobinas de ferrite CM" para absorver a interferência de RF.
Você precisa de um ADC com precisão garantida de +/- 0,5 bits ou talvez 1 em 256 níveis para ler 0,5 / 100% de precisão. Isso não é garantido na maioria dos Arduino; portanto, você precisa usar um DAC de hardware para testá-lo na Saída menos Entrada em um escopo de 2 canais e selecione o par AC para CH1 e CH 2 e, em seguida, exiba o modo XY CH1 vs Ch2 para obter um ponto central que percorre no máximo +/- 1 bit. Qualquer ruído Vref no seu ADC causará níveis de quantização ignorados ou histerese durante transições como 01111 a 10000 e a diafonia do solo digital para a entrada de alimentação analógica do solo falhará na monotonicidade.
Verifique o site da TI para obter literatura sobre erros ADC.
@ Richard Russell << Agradeço a necessidade de um controle de 0,5 ° C em estilos de cozimento orgânico a baixas temperaturas, onde o organismo vivo começa a morrer rapidamente acima da temperatura de Pasteur quando a bactéria é morta.
Se fosse eu, eu calibraria com precisão de 0,1 graus usando minhas temperaturas de calibração de ganho de deslocamento entre 45 e 65 graus C depois que ele estiver firmemente conectado ao pote bem isolado. Então você pode executar qualquer outro fogão comercial no mercado ... supondo que ele esteja bem isolado em dielétrico de alto valor de R.
Então, pela aparência, para que você possa cobrar US $ 500, envolva-a com precisão SS americana que, como o "Spirit of St Louis", esteja profundamente arranhada e polida. ;)
Pessoalmente, eu teria o ácido exterior da SS gravado por profissionais que fazem isso todos os dias com uma obra de arte com significado histórico de culinária por US $ 50 e depois cobram mais por obras de arte personalizadas com logotipo pessoal e nome da empresa. Basta perguntar se você precisa de uma boa ref.
Obrigado por me deixar ajudá-lo com seu objetivo.
fonte
Com base nas informações fornecidas em outras respostas e em pesquisas adicionais, encontrei uma sonda Waterproof DS18B20 em Alpha-Crucis (UE). Também está disponível na Adafruit nos EUA.
Ele atende a todos os meus requisitos e possui um formato ideal.
fonte