Usar el sensor de temperatura interno de Arduino


arduino-sensor-temperatura-interno

Un hecho no muy conocido de Arduino es que la mayoría de modelos disponen de un sensor de temperatura interno en el procesador, que podemos hacer para realizar mediciones sin necesidad de sensores externos.

Los procesadores que incorporan este sensor son el ATmega 168A, 168P, 328 y 32P (Arduino Uno y Nano), y el Atmega32U4 (Arduino Leonardo). Por contra, este sensor no está disponible en ATMega2560 (Arduino Mega).

La precisión de este sensor es limitada, dado que se encuentra dentro del integrado del procesado y le afecta el calor del mismo. Este incremento de temperatura será mayor cuanto mayor sea la carga del procesador y la corriente que circula por las salidas.

Con algo de calibración, el sensor interno de Arduino puede proporcionar una medición aproximada de la temperatura ambiente con una precisión de 2ºC, siempre que el procesador haya estado apagado durante al menos 10 minutos.

Anuncio:

Pese a sus limitaciones, el sensor de temperatura resulta interesante porque permite realizar mediciones sin emplear dispositivos exteriores. Por ejemplo, es útil para determinar el estado del procesador, en pruebas rápidas en una placa, o incluso en proyectos de mediciones de temperatura que requieran poca precisión, y con periodo entre mediciones largo.

El código que necesitamos para realizar la medición es el siguiente:

Si queréis calibrar el sensor, tenéis que tomar varias mediciones, dejando 30 minutos el sensor apagado, cotejar las mediciones con las de un sensor calibrado, y ajustar los valores 324.31 y 1.22 de la expresión (pero no os esperéis maravillas, como hemos dicho la precisión siempre va a ser limitada).

Si te ha gustado esta entrada y quieres leer más sobre Arduino puedes consultar la sección Tutoriales de Arduino

Anuncio:

Previous Cumplimos 4 años
Next Obtener usuarios y ordenadores de Active Directory con C#
1000
2 Comment threads
1 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
3 Comment authors
newest oldest
Simcity

Hola muy buenas.Me resulta interesante este trabajo,no por saber la temperatura exterior que ya tengo el sensor adecuado,si no para saber la temperatura del micro.
Con el codigo que usted presenta,se mide la temperaruta correcta de dentro del micropocesador,sin hacer los ajustes que indica al final?

luisllamas

De hecho, la temperatura que te da es la del procesador, y se suele usar para detectar cuando la carga es excesiva. La formula final es necesaria en todo caso, para convertir la medición del sensor en una temperatura. La fórmula varia de un modelo a otro, y se obtiene del Datasheet. En cualquier caso, es conveniente calibrarla, incluso para medir la temperatura interna. Para eso se deja el procesador parado durante 10 minutos aproximadamente, tiempo suficiente para que la temperatura del integrado se equilibre con la del entorno. Entonces se enciende, se realiza la medición con el sensor interno,… Read more »

Alejandro

Y cuál sería la conversión para un Arduino Leonardo. La he estado buscando por un tiempo, pero no encuentro mucha información, más allá de que sí tiene el sensor interno. Al probar el código el valor que me arroja de “wADC” es igual a 2 ó 1. En un lugar en el que estamos a 32 grados. Obvio al hacer la conversación con la fórmula me da -264.188. Alguna solución?