Sensor de temperatura#
Objetivo#
Obtener las lecturas de la temperatura actual mediante un sensor analógico LM35 y visualizar los resultados a través del monitor en serie del IDE de Thonny.
Nota
En esta práctica, se utilizará el RP2040.
Descripción#
En esta práctica, nos enfocaremos en la utilización del sensor analógico LM35 para la medición de la temperatura actual. El sensor LM35 ha sido seleccionado por su versatilidad y facilidad de integración con diversas placas de desarrollo. Es ideal para proyectos educativos y de electrónica al ser compatible con Arduino, Raspberry Pi, Nodemcu, ESP32, entre otros dispositivos con pines analógicos.
Este enfoque permite familiarizarse con la lectura analógica y la visualización de resultados en el monitor serie del IDE de Thonny. El código de ejemplo funciona tanto en ESP32 como en RP2040 bajo MicroPython, haciendo la práctica versátil y adaptable a distintas plataformas.
Descripción del ADC#
La clase ADC sirve como interfaz para convertir una señal analógica a digital. Se encuentra en el módulo machine y se puede importar de la siguiente forma:
1from machine import ADC
2
3adc = ADC(pin) # crea un objeto ADC para un pin
4val = adc.read_u16() # lectura de 0 a 65535
5val = adc.read_uv() # lectura en microvoltios
Para más información, consulta la Documentación oficial de MicroPython.
Puedes ver un ejemplo en el repositorio de la DualMCU.
Materiales#
Para el ESP32, adicionalmente necesitarás:
Diagrama de conexión#
Nota
Recuerda que la DualMCU permite intercambiar entre microcontroladores mediante un interruptor.

A continuación, se muestra el diagrama de conexión para el sensor LM35 con el microcontrolador RP2040:
RP2040 | LM35 ejemplo de código#

1'''
2Unit Electronics 2024
3 (o_
4 (o_ //\
5 (/)_ V_/_
6 tested code mark
7 version: 0.0.1
8 revision: 0.0.1
9 RP2040
10'''
11import machine
12import time
13
14# Configura el pin para leer el sensor LM35
15pin_lm35 = machine.Pin(28, machine.Pin.IN)
16adc = machine.ADC(pin_lm35)
17
18while True:
19 # Lee el valor en milivoltios
20 lm35_output_mv = adc.read_u16() * 3.3 / 65535 * 1000
21 # Convierte a grados Celsius
22 temperatura_celsius = (lm35_output_mv - 500) / 10
23 print("Temperatura: {:.2f} °C".format(temperatura_celsius))
24 time.sleep(1)
ESP32 | LM35 ejemplo de código#

1'''
2Unit Electronics 2024
3 (o_
4(o_ //\
5(/)_ V_/_
6
7version: 0.0.1
8revision: 0.0.1
9ESP32
10'''
11import machine
12import time
13
14# Configura el ADC en el pin 36
15adc = machine.ADC(machine.Pin(36))
16adc.atten(machine.ADC.ATTN_11DB) # Rango 0 a 3.3v
17adc.width(machine.ADC.WIDTH_12BIT) # Rango 0 a 4095
18
19# Configura LEDs en los pines 2 y 25
20led = machine.Pin(2, machine.Pin.OUT)
21led2 = machine.Pin(25, machine.Pin.OUT)
22
23while True:
24 valor = adc.read()
25 print(valor)
26 if valor > 2000:
27 led.value(1)
28 led2.value(0)
29 else:
30 led.value(0)
31 led2.value(1)
32 time.sleep(1)
Resultados#
En el monitor serie verás el valor de la temperatura en grados centígrados.

Conclusiones#
Esta práctica permite comprender la lectura de sensores analógicos y la configuración del ADC en microcontroladores. Además, demuestra cómo interactuar con dispositivos externos, como LEDs, para visualizar datos en tiempo real.
Nota
El ejemplo de código puede requerir ajustes según tu configuración y necesidades.