Je crée un contrôleur PID pour le sous-vide, comme celui-ci , et j'essaie de décider quel capteur de température obtenir.
Priorités:
- Coût: <25 £ livré au Royaume-Uni
- Précision: +/- 0,5 C
- Plage: 0 - 100C
- Sortie: quelque chose qui peut être lu par un Arduino avec un minimum de circuits supplémentaires (par exemple 0-5VDC, une résistance qui est facilement mesurable, ou une sortie numérique telle que OneWire, etc.)
- Physique: imperméable, sans danger pour les aliments (idéalement) et avec un plomb d'au moins un mètre de long - idéalement pas trop de travail pour créer ce facteur de forme (je n'ai pas d'atelier)
- Mode de défaillance: serait idéal si une défaillance provoquait une lecture de surchauffe plutôt qu'une sous-température
Heureux de faire des compromis sur l'un des points ci-dessus si nécessaire, mais c'est mon idéal. Également ouvert aux suggestions sur quoi d'autre je devrais faire des compromis. Je serais particulièrement intéressé par des réflexions concernant des capteurs tels qu'un type k, un pt100, une puce TMP36 et une thermistance 10K "standard" (bien que si ces noms ne sont pas assez précis, faites-moi savoir ce que je devrais être chercher à la place).
arduino
temperature
pid-controller
thermistor
thermocouple
Richard Russell
la source
la source
Réponses:
Tout d'abord, être d'accord avec les autres: opter pour la précision 1.0C vous facilitera la vie.
Vous semblez être réglé sur des capteurs analogiques, mais je suggère un avec une interface numérique. Les capteurs analogiques sont soit (utilisés) radiométriques (fournissent un pourcentage de Vcc dépendant de la température), ce qui donne une réponse non linéaire, que vous devrez convertir. L'autre type (LM35, etc.) est absolu, ce qui vous oblige à A / N contre une tension de référence qui doit être (beaucoup) plus précise que votre précision souhaitée. À moins que vous ne vouliez mesurer quelque chose qu'un capteur d'interface numérique ne peut pas (comme >> 100C), cela semble beaucoup de tracas inutiles.
Edit: essayons un LM35. 10mV / C, même en supposant que le LM35 lui-même n'introduise aucune erreur , une référence typique (LM431, etc.) est précise à 1%, ce qui introduit une erreur de 1% dans la lecture de la température! Un microcontrôleur A / D typique est de 10 bits, supposons que la pleine échelle soit une référence de 2,5 V (vérifiez si votre uC le permet!). Une erreur A / D de 1 bit (soyons optimistes !, mieux vérifier votre fiche technique uC) est de 2,5 mV = erreur 1 / 4C. Donc, même sans le capteur lui-même, nous avons une erreur de + / 1,25 C (au mieux ..).
Obtenez un capteur d'interface numérique, par exemple le bon vieux DS1820 / 18S20 / 18B20, tous TO92. Ou l'un des capteurs I2C ou SPI que Microchip fabrique dans TO220. Si vous chauffez dans un plateau ou quelque chose, vous pouvez connecter la languette au plateau.
la source
Obtenez un CI de capteur de température de précision, comme le LM35CAZ .
Vous l'alimentez avec un bon 5v, et la sortie est une simple tension qui est une fonction linéaire de la température. Ils ont une assez bonne précision de ± 1⁄4˚C à température ambiante.
Ajoutée:
Plusieurs personnes ont parlé de «précision sur la plage de température» pour ce capteur étant de ± 1ºC. Ce n'est pas la bonne gamme dont parler. «Précision à la température de cuisson» est la bonne gamme dont il faut parler. À environ 60 ° C, la précision est de ± 0,7, et probablement mieux que cela. La ligne «typique» varie d'environ 0,1 ° C sur votre cuisinière.
Vous n'avez probablement besoin que d'un ou deux points d'étalonnage pour que ce capteur soit suffisamment précis pour vos besoins. Mais, bien sûr, cela nécessite un thermomètre précis pour l'étalonner. Pour cela, vous avez deux options:
Option 1: vous pouvez utiliser de l'eau. La température de l'eau en cours de congélation est de 0 ° C. Alors, collez-le dans une petite tasse d'eau dans le congélateur et surveillez attentivement la tension de sortie. Il tombera et tombera jusqu'à ce que l'eau commence à geler. À ce stade, la température cessera de chuter et restera plate pendant un petit moment. Une fois la congélation terminée, la température recommencera à baisser. Prenez note de la tension dans la zone plate à utiliser comme point d'étalonnage à 0 ° C.
Faites de même pour l'eau bouillante. Il vaut mieux le faire au niveau de la mer. Si vous n'êtes pas au niveau de la mer, vérifiez quelle est la température d'ébullition de l'eau à votre altitude.
Utiliser 0ºC et 100ºC n'est pas aussi bon que d'utiliser, disons 50ºC et 80ºC, mais c'est beaucoup plus facile. Si vous disposez d'un thermomètre très précis, vous devez utiliser des points d'étalonnage plus proches de votre température de cuisson.
Option 2: utilisez de l'alcool méthylique. (Merci stevenvh) Cela bout à 64,7ºC. Elle est si proche de votre température de cuisson que vous ne devriez avoir besoin que d'un seul point d'étalonnage pour obtenir une température de cuisson très précise. Évitez bien sûr de vous enivrer ou de vous faire exploser avec les fumées. Ne chauffez pas l'alcool sur une flamme nue!
Ajouté - Amplification
Puisque vous travaillez dans une plage de température étroite et que vous avez besoin d'une bonne précision de contrôle, cela vaut probablement aussi la peine d'amplifier la sortie du capteur. Cela donnera une plus grande résolution ADC à l'Arduino, ce qui se traduira par une meilleure stabilité de l'algorithme de contrôle PID. Voir la question Conversion de niveau de tension analogique (décalage de niveau) qui traite de l'amplification et du décalage de niveau d'une tension analogique.
En supposant que vous travaillez dans la plage 40ºC - 100ºC (0.4v - 1.0v). Vous voudrez soustraire 0,4v du signal, donnant 0,0v - 0,6v, et amplifier le résultat avec un gain de 8, donnant 0,0v - 4,8v. Cela donnera une excellente résolution.
la source
Il semble que vous posiez des questions sur la sonde uniquement. Apparemment, vous voulez quelque chose que vous pouvez mettre en contact direct avec la nourriture. Un contrôleur PID comprend beaucoup plus que le capteur de rétroaction, mais il semble que vous ne posiez pas de question à ce sujet. Si tout cela est incorrect, vous devez mettre à jour votre question. Je ne sais pas non plus ce qu'est un truc "Sous Vide". Toute information pertinente devrait être dans votre question. Les liens sont uniquement pour le matériel de fond.
Comme Steven l'a mentionné, 1/2 degC est très ambitieux et inutile lorsque vous parlez de nourriture.
Le capteur de température le plus simple sera une thermistance. Ils peuvent gérer la plage et n'ont autrement besoin que d'une résistance de charge. Le résultat sera également ratiométrique à votre approvisionnement, de sorte que toutes les variations d'approvisionnement s'annulent. La détection des pannes est facile dans le micrologiciel, car les lectures très proches du haut ou du bas de la plage indiquent des températures irréalistes. Si vous obtenez quelque chose en dehors d'une plage de températures valide, vous supposez une défaillance matérielle et entrez ce que vous pensez être votre mode sans échec. C'est vraiment un problème de firmware, pas un problème matériel avec une thermistance et la bonne résistance de charge.
Quant à la rendre sûre pour les aliments, enfermer la sonde dans du verre devrait être bon. Que diriez-vous d'époxy la thermistance au fond d'un petit tube à essai, qui devient alors la sonde? Le dessus peut être scellé avec de la colle chaude ou quelque chose. Il doit être étanche à l'eau mais la nourriture ne devrait pas être là. Seuls deux fils isolés devraient sortir du haut du tube. Le verre transmet assez bien la chaleur. La constante de temps de la sonde doit toujours être bien inférieure à la constante de temps entre la puissance du réchauffeur et la température de changement des aliments.
Les thermistances ne sont pas très précises, sauf si vous payez beaucoup d'argent. Pour un projet de loisir unique, j'obtiendrais n'importe quelle thermistance qui peut être eu dans la bonne gamme et étalonner manuellement. Étalonnez à quelques températures connues déterminées à partir d'un thermomètre connu fiable, puis faites interpoler le micrologiciel entre les deux. Pour un crédit supplémentaire, vous pouvez même rechercher l'équation nominale de la thermistance, y ajuster le mieux possible vos points mesurés, puis en dériver la fonction continue. Vous pouvez remplir une table fixe dans le firmware avec de nombreux segments de la fonction calibrée afin que l'interpolation linéaire entre les segments soit assez bonne.
Encore une fois, 1/2 degC en demande trop, mais vous n'en avez pas vraiment besoin de toute façon. Une thermistance avec peut-être 4 points d'étalonnage, un ajustement d'équation, puis une interpolation devrait suffire pour résoudre le problème réel.
la source
En utilisant le LM335Z, vous pouvez calibrer le décalage et l'erreur de gain pour n'importe quel capteur donné avec 2 lectures de test à 0'C 100'C avec de la glace et de l'eau bouillante.
Obtenez ensuite une lecture de vérification à mi-portée, par exemple 50 ° C.
Vous pouvez faire un gabarit de test et étalonner un capteur comme votre étalon argent contre un autre le thermomètre étalon or. Vous enregistrez ensuite les erreurs attendues-réelles et calculez une progression linéaire ou un gain et un nombre de décalage à enregistrer dans l'EEPROM afin qu'ils deviennent un ensemble calibré. Si vous obtenez un lot, vous pouvez constater qu'ils ont tous le même décalage et une erreur de gain que vous pouvez corriger dans le logiciel pour afficher la lecture corrigée.
Avec des normes de 0,1 ° C, vous pouvez vous attendre à une erreur de 0,2 ° et utiliser n'importe quel écran de votre choix pour garantir cette erreur de 0,5 ° C pour vos points de consigne critiques.
Voir Fig 3
http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/DATASHEET/CD00000459.pdf
Je scellerais le capteur avec une fine couche d'époxy de qualité alimentaire pour protéger l'appareil contre les fuites d'humidité et utiliserais une paire torsadée ou deux fils flexibles à paire torsadée en utilisant 2 comme bouclier, puis utiliser des "selfs ferrite CM" pour absorber les interférences RF.
Vous avez ensuite besoin d'un ADC dont la précision est garantie à +/- 0,5 bit ou peut-être 1 sur 256 niveaux pour une précision de 0,5 / 100%. Ce n'est pas garanti dans la plupart des Arduino, vous devez donc utiliser un DAC matériel pour le tester dans la sortie moins l'entrée sur une portée à 2 canaux et sélectionner le couple AC pour CH1 et CH 2, puis afficher le mode XY CH1 vs Ch2 pour obtenir un point central qui traverse un maximum de +/- 1 bit. Tout bruit Vref dans votre ADC entraînera des niveaux de quantification ou une hystérésis ignorés lors de transitions telles que 01111 à 10000 et la diaphonie de la terre numérique vers l'entrée de terre analogique en entrée échouera en cas de monotonie.
Consultez le site TI pour la littérature sur les erreurs ADC.
@Richard Russell << J'apprécie la nécessité d'un contrôle de 0,5 ° C dans les styles de cuisson biologiques à basses températures où les organismes vivants commencent à mourir rapidement au-dessus de la température Pasteur lorsque les bactéries sont tuées.
Si c'était moi, j'étalonnerais pour une précision de 0,1 degré en utilisant mes températures d'étalonnage de gain de décalage entre 45 et 65 degrés C après qu'il soit fermement attaché au pot bien isolé. Ensuite, vous pouvez surpasser n'importe quelle autre cuisinière commerciale sur le marché ... en supposant qu'elle soit bien isolée en diélectrique à haute valeur R.
Ensuite, pour l'apparence, vous pouvez facturer 500 $, enveloppez-le dans un SS américain de précision qui, comme le "Spirit of St Louis", est profondément rayé et très poli. ;)
Personnellement, je ferais graver l'acide SS extérieur par des professionnels qui le font tous les jours avec une œuvre d'art d'une importance historique pour la cuisine pour 50 $, puis facturer un supplément pour une œuvre d'art personnalisée avec le logo personnel et le nom de l'entreprise. Demandez simplement si vous avez besoin d'une bonne référence.
Merci de m'avoir permis de vous aider avec votre objectif.
la source
Sur la base des informations fournies dans d'autres réponses et en poursuivant mes recherches, j'ai trouvé une sonde étanche DS18B20 chez Alpha-Crucis (EU). Il est également disponible chez Adafruit aux États-Unis.
Il répond à toutes mes exigences et a un facteur de forme idéal.
la source