Introducción

La Raspberry Pi Pico posee un sensor de temperatura interno basado en un diodo especialmente diseñado para este fin. En esta guía rápida te enseñaremos cómo leer el sensor de temperatura interno en Raspberry Pi Pico en el lenguaje de programación MicroPython.

El sensor presente en el microcontrolador RP2040 no está diseñado para ser preciso, pero puede sacarnos de un apuro en ciertas situaciones y todo sin requerir componentes externos.

Materiales

¿Cómo leer el sensor de temperatura interno de Raspberry Pi Pico?

El sensor de temperatura está conectado al quinto canal del convertidor analógico a digital (ADC4). Para leer el sensor debemos realizar la conversión analógico a digital en este canal y realizar la conversión de voltaje a temperatura.

El sensor tiene una salida típica de 0.706 volts a 27 grados centígrados y una pendiente de -1.721 mV por grado centígrado.

Para obtener lecturas precisas con el sensor interno es necesario agregar una referencia de voltaje externa y también calibrar contra un instrumento preciso.

El funcionamiento detallado del sensor de temperatura está documentado en la hoja de datos del microcontrolador RP2040, por lo que si deseamos conocer más a detalle su funcionamiento lo ideal es referirnos a este documento.

Código para leer el sensor de temperatura interno de la Raspberry Pi Pico en MicroPython

Explicación del código

La funcionalidad principal del código se encuentra en la función tsensor_read_temperature() en la cual se convierte el valor que proporciona el ADC de la Raspberry Pi Pico en un valor de temperatura y también se calcula un promedio de las mediciones para lograr una medida más exacta.

En las lineas de código siguientes, definimos la función tsensor_read_temperature() y creamos e inicializamos la variable temp que utilizaremos localmente. Además comenzaremos un bucle que se ejecuta 10 veces. Dentro de ese bucle realizaremos las lecturas de temperatura:

El bucle tiene solamente dos lineas dentro de el. En la linea 20 tomamos la lectura de temperatura y sumamos en cada iteración del ciclo el valor de la temperatura medida a la variable temp para calcular el promedio de las mediciones. En la linea 21 esperamos 100 micro-segundos antes de continuar con otra iteración del ciclo:

La linea 20 es la más importante de este programa. Se puede dividir en dos operaciones: En la primera vamos a realizar la conversión analógica a digital y a convertir este valor a voltaje realizando las siguientes operaciones:

La segunda operación consiste en convertir la lectura en volts a grados centígrados; Para realizarlo, restamos el desplazamiento que tiene la medición a 27 grados de 0.706 volts y luego la dividimos entre los 1.721 milivolts /grado centígrado. Finalmente restamos el resultado a 27 que es nuestra temperatura de referencia a la cual fue caracterizado el sensor:

En la línea 22 dividimos entre 10 para finalizar el cálculo del promedio y retornamos el valor de la temperatura al programa que llama nuestra función:

Finalmente en en el bucle principal del programa llamamos a la función para leer el sensor de temperatura e imprimimos el resultado a la terminal.

Enlaces y lecturas recomendadas

Conclusión

  • En este tutorial aprendimos a leer el sensor de temperatura interno del microcontrolador RP2040.
  • Aprendimos a convertir el valor retornado por el convertidor analógico a digital (ADC) de nuestro microcontrolador RP2040 a voltaje.
  • En base al voltaje medido en el sensor de temperatura interno de la Raspberry Pi Pico pudimos derivar la medición de temperatura.
  • Mencionamos que aunque no se trata de un sensor de precisión, podemos usar esta característica para monitorear y controlar la temperatura del chip RP2040.
1
Escanea el código