Estoy buscando una solución barata para detectar la temperatura con un MCU. Mis requisitos son:
- 2 canales
- rango de temperatura: 30-35 ° C
- resolución temporal: 1-2 K
- distancia del cable (MCU -> sensor) 10cm - 2m son aceptables
- la temperatura relativa entre dos canales es suficiente, no se requiere temperatura absoluta
Mi punto de partida son dos termopares con amplificadores de termopar, pero esto parece ser excesivo para mi aplicación. Los termopares funcionan a 10 $ en Radiospares, amperios a 5 $ que costarían 30 $ solo para estimar la temperatura.
Cuál es una buena dirección para buscar una solución más barata. NTC?
Editar 18 de julio de 2012
Después de que stevenvh extendió su respuesta para mostrar el alto grado de linealidad que se puede obtener con los NTC, invertí algo de tiempo para reconsiderar si los NTC no son una mejor solución.
Sin embargo, no estoy seguro de poder seguir a stevenvh en su razonamiento sobre el error que se puede obtener con los NTC a bajo precio en comparación con los chips semiconductores.
Para obtener la temperatura con un NTC entran en juego las siguientes funciones:
- función de transferencia la conversión de la temperatura ambiente a una resistencia
- el voltaje producido por el divisor de voltaje
- Conversión AD
- aproximación de curva lineal:
Las fuentes de error que veo son las siguientes:
- Errores de valor NTC: 1% cada uno para los valores y B 25 - 85 : total aproximadamente 2%
- 1% para el valor de resistencia lineal de saturación y digamos 0.5% para la fuente de voltaje de excitación
- Para un PIC16F1825, el voltaje de referencia interno utilizado para el ADC tiene un 6% de incertidumbre. Además, el ADC en sí tiene errores integrales, diferenciales, de compensación y ganancia, cada uno del orden de 1,5 lsb. A 10 bits, estos últimos combinados son como máximo 0,5%.
- Como stevenvh demostró en su respuesta, la aproximación lineal tiene un error de solo 0.0015% en el rango de interés.
El error en la estimación de la temperatura estará claramente dominado por el error de la referencia de voltaje ADV y los errores en los valores de resistencia. Claramente será superior al 6%. El error debido a la aproximación lineal es completamente insignificante como señaló stevenvh.
Una incertidumbre del 6% a 300 Kelvin es equivalente a un error de temperatura de 18K. Los chips de temperatura tienen un error de aproximadamente 1K. A 300K esto corresponde a una incertidumbre del 0.3%.
Me parece que es imposible superar esto con un NTC sin una calibración y verificación de rendimiento extremadamente cuidadosas. La incertidumbre en las resistencias de linealidad, el voltaje de excitación o el ADC visto de forma aislada empuja la incertidumbre de la solución NTC por encima de esto. ¿O tengo un error importante en mi razonamiento?
Por el momento estoy convencido de que los NTC pueden ser una solución de detección de temperatura de alta precisión, pero a bajo costo me parece que su rendimiento será un disparo en la oscuridad.
fuente
Yo diría NTC, sí. Este es el más barato que pude encontrar en Digikey. Alrededor de medio dólar, eso es mucho más barato que los IC de sensores de temperatura, que tienen aproximadamente la misma precisión. La ventaja de un NTC es que solo necesita una resistencia en serie y una entrada ADC en su microcontrolador, que la mayoría tiene hoy en día.
El bajo precio también tiene una desventaja: los NTC son cualquier cosa menos lineales. Tiene que usar su función de transferencia (que tiene un exponencial, que puede no gustarle, o usar una tabla de búsqueda, que para el rango dado puede ser la mejor solución.
editar dd. 2012-07-13
Bah, golpeado por un miserable LM75. No voy a dejar pasar esto. :-)
Voy a usar el * 103 * MT * de esta serie NTC . Primero la función de transferencia:
No parece prometedor, y de hecho entre 0 ° C y 100 ° C la curva se ve así:
cualquier cosa menos lineal, como dije. Podemos intentar linealizar eso, pero recuerde que vamos a hacer un divisor de resistencia con él, y tampoco son lineales, por lo que cualquier linealización ahora se arruinará por la resistencia en serie. Entonces, comencemos con la resistencia y veamos qué sucede. Tengo un suministro de 3.3 V y elijo una resistencia de 5.6 kΩ a Vcc, luego la salida se convierte
¡No está mal! La curva púrpura es la tangente en nuestro rango de interés: 30 ° C a 35 ° C. Podría trazar el gráfico ampliado sobre eso, pero eso nos da dos líneas coincidentes, así que echemos un vistazo al error:
Tampoco se ve bien, pero hay que mirar la escala vertical, que da el error relativo de la aproximación lineal en comparación con nuestra característica NTC entre 30 ° C a 35 ° C. El error es inferior a 15 ppm, o 0.0015% .
Mathematica dice que la ecuación para nuestra aproximación lineal casi perfecta es
Esto dará como resultado lecturas de ADC de 609 y 561, resp. para un ADC de 10 bits. Eso es un rango de 48 para una diferencia de 5 ° C, o una resolución de aproximadamente 0.1 ° C. Solo el NTC y una resistencia.
¿Quién necesita un LM75?
editar dd. 2012-08-13
Hecho: la solución NTC necesita calibración.
Le prometí a Arik volver al cálculo del error, pero es mucho más complicado de lo que pensaba, y no se puede completar debido a datos incompletos. Por ejemplo, tengo números muy precisos para los coeficientes en la función de transferencia del NTC (¡los números de 7 dígitos significativos ya están redondeados!), Pero no hay información sobre su precisión. Sin embargo, algunos comentarios.
La referencia de ADC del PIC tiene una tolerancia bastante mala del 6%. Arik dice que una incertidumbre del 6% a 300 kelvin es equivalente a un error de temperatura de 18 K , que por supuesto es absurdo y completamente absurdo. Hice una comprobación rápida: calculé la salida del divisor de voltaje para una temperatura de 20 ° C. Agregó 6% a eso, y se calculó de nuevo al valor de resistencia del NTC y la temperatura que sería. El error no es 18 ° C, sino 1 ° C, o menos del 0.5%, referido a 0 K.
Aun así, ¡el error del 6% es completamente irrelevante ! Si usa el voltaje de referencia del ADC para el divisor de resistencia, ese voltaje ni siquiera aparece en los cálculos. No me importaría si el error fue del 50%. Utilice otra referencia si la referencia interna incorrecta no está disponible fuera del controlador. Al igual que la fuente de alimentación de 3.3 V, o cualquier otro voltaje de CC que tenga.
La calibración no es lo que desea para un proyecto único, pero para la producción en masa no es una preocupación, y especialmente en la electrónica de consumo, donde cada centavo cuenta, es más probable que encuentre el NTC que un LM75 costoso.
fuente
Esto suena como un trabajo para un termistor, o dos termistores para ser más precisos. Dado que solo necesita distinguir tres estados de temperatura diferentes y solo está buscando temperatura relativa, puede conectar los dos termistores para formar una sola señal analógica. Eso se puede medir con un A / D integrado en el micro. La mayoría de los micros tienen A / D, por lo que esto no costará nada más. Probablemente agregaría un par de resistencias y condensadores como filtros de paso bajo para reducir el ruido.
Un termistor va de tierra a la señal analógica y el otro de potencia a la señal analógica. Es posible que deba calibrar un poco, pero con su rango de temperatura estrecho y su baja resolución, no necesita ponerse elegante. Probablemente solo es suficiente guardar el voltaje de diferencia cero y restarlo de la lectura futura.
fuente
Si no conoce el método de medición de temperatura delta-voltaje de diodo escalonado y está interesado en medir la temperatura, debe leer esto: puede transformar sus ideas sobre la medición de temperatura.
Llego un poco tarde a la fiesta.
Como la respuesta ya se habrá utilizado ahora, describiré un método alternativo que tiene considerables ventajas pero que parece ser sorprendentemente poco utilizado en forma discreta.
Este método se usa comúnmente en los circuitos integrados de medición de temperatura de CI, pero aún parece menos conocido de lo que cabría esperar.
Si un diodo de silicio (digamos) se alimenta alternativamente con dos corrientes conocidas, el cambio de voltaje delta con el cambio de corriente está relacionado con la temperatura absoluta.
Este método se utiliza (al menos) en los sensores TI LM82, LM83, LM84, LM87 y LTC3880, LTC3883 y LTC2974.
Tenga en cuenta que este método es diferente del método habitual para medir la caída absoluta de voltaje directo del diodo a una corriente dada para inferir la temperatura. Este método es sustancialmente más preciso y no requiere calibración específica del sensor.
Se pueden lograr precisiones de alrededor de 0.1 grados C (o K).
Las resoluciones dependen del método de medición.
El resultado es la calibración del dispositivo libre.
El resultado depende solo del tipo de diodo básico (por ejemplo, silicio, germanio),
por ejemplo, si usa un diodo de señal 1N4148 por debajo de 1 centavo, puede cambiar esto por otro 1N4148 y obtener las mismas precisiones sin recalibración.
La precisión de establecer las dos corrientes utilizadas obviamente afecta la precisión de los resultados, pero como se pueden elegir para adaptarse a los recursos disponibles, los resultados pueden ser muy buenos.
Este método es utilizado por algunos, pero no por todos, los sistemas de medición de temperatura del procesador incorporado. Por lo general, encontrará que cuando se usa este sistema, las descripciones técnicas son muy ligeras en los detalles y algo ofuscadas, es decir, parecen querer mantenerlo en secreto a pesar de que el método probablemente se remonta al trabajo de Widlar a mediados de la década de 1960.
Este método rivaliza con las precisiones alcanzables con un cuidado razonable usando termistores NTC o PT100, etc. Resistencias de platino y similares, con un grado muy complejo de complejidad y dificultad.
Esta excelente nota de aplicación del dispositivo analógico 199 La medición de temperaturas en chips de computadora con velocidad y precisión afirma que la técnica es nueva. No estoy del todo seguro de que sean correctos, pero es ciertamente útil y menos conocido que se esperaría.
Del documento anterior (ligeramente reescrito) para las corrientes de I y NI y la caída de voltaje del diodo Cv1 en la corriente 1 y Vd2 en la corriente 2:
Vd1 - Vd2 = DVd = (kT / q) ln (I / NI) = (kT / q) ln (1 / N)
Como N, k y q son todas constantes conocidas,
T = (constante) (DVd)
_ _
Excelente aplicación TI nota múltiple diodo remoto de detección de temperatura
Wikipedia - Sensor de temperatura de banda prohibida de silicio
[Detección precisa de temperatura LT AN137 con una unión PN externa] http://cds.linear.com/docs/Application%20Note/an137f.pdf
Utilizado, por ejemplo, en LTC3880, LTC3883 y LTC2974.
fuente
Medición de temperatura muy simple (Celcius) con termistor (10K) B25 / 100 = 4300 Me inspiré en el comentario anterior leído en este artículo.
Compré termistores de DigiKey 10K 5% a $ 1 cada uno. Quería obtener una medición de temperatura justa sin matemática flotante y compleja. Conexión a un Arduino de la siguiente manera: Vref a 3.3v; analógico-0 A0 a través de una resistencia de 10K y 3.3v. ; Termistor A0 a tierra. Obtengo la temperatura en Celcius de la siguiente manera: Código parcial: analogReference (EXTERNAL);
ADC = analogRead (0);
Th = 10000 / (1023 / ADC) -1; // 10000 es el dispositivo de reparación utilizado en el divisor.
T = (775 - Th) / 10;
La precisión es: +1 a 25C, +0 a 20C, -1 a 0C, +2 a -20C. Cambia la constante 775 para ajustarse más al rango de deseo que desea. Por ejemplo, use 765 en lugar de 775 para obtener un error de 0 alrededor de 25C. Como esto es matemática entera, agregué 5 a 770 antes de dividir por 10 para redondear.
fuente
Estoy usando LM35DZ . La temperatura varió de 0 Celsius a 100 Celsius, salida lineal y baja impedancia ; Lo he estado usando con conexión directa a mi entrada PIC ADC, funciona muy bien hasta ahora.
Una unidad cuesta alrededor de USD 3.
fuente
¿Qué tal un chip STM32F0? Su módulo ADC contiene un sensor de temperatura interno Y valores calibrados en dos puntos de temperatura Y valor calibrado para su generador Vref interno.
Con todo eso combinado, puede usarlo como un sensor de temperatura muy preciso (12 bits adc, y sigma con poco más de 1 lsb) en un amplio rango de voltaje.
También se puede programar como un sensor de temperatura dedicado: principalmente en reposo y despertar para leer la temperatura y transmitir datos y luego volver a dormir.
todo eso por menos de un dólar en pequeñas cantidades.
fuente