from machine import ADC # Importa la clase ADC desde el módulo machine para usar el convertidor analógico a digital
# El sensor interno de temperatura está conectado al canal ADC 4
temp_sensor = ADC(4) # Crea un objeto ADC asociado al canal 4
# Función para leer la temperatura interna
def read_internal_temperature():
# Lee el valor bruto (raw) del ADC (de 0 a 65535)
adc_value = temp_sensor.read_u16()
# Convierte el valor del ADC a voltaje (escala de 3.3 V y resolución de 16 bits)
voltage = adc_value * (3.3 / 65535.0)
# Calcula la temperatura en grados Celsius basándose en las características del sensor
# Fórmula típica del sensor de temperatura interno del RP2040
temperature_celsius = 27 - (voltage - 0.706) / 0.001721
# Devuelve la temperatura en grados Celsius
return temperature_celsius
# Función para convertir de Celsius a Fahrenheit
def celsius_to_fahrenheit(temp_celsius):
# Fórmula de conversión: F = C * 9/5 + 32
temp_fahrenheit = temp_celsius * (9 / 5) + 32
# Devuelve la temperatura en grados Fahrenheit
return temp_fahrenheit
# Lectura y visualización de la temperatura interna
temperatureC = read_internal_temperature() # Lee la temperatura en Celsius
temperatureF = celsius_to_fahrenheit(temperatureC) # Convierte a Fahrenheit
# Imprime los resultados por consola
print("Internal Temperature:", temperatureC, "°C")
print("Internal Temperature:", temperatureF, "°F")