from machine import ADC, Pin
import time
import math
# Configuración del pin ADC (ejemplo: GPIO 26 / ADC0 en Raspberry Pi Pico)
adc = ADC(Pin(26))
# Parámetros del NTC 10K
R0 = 10000 # Resistencia nominal a 25 °C (10kΩ)
T0 = 298.15 # Temperatura nominal en Kelvin (25 °C + 273.15)
BETA = 3950 # Coeficiente Beta del termistor NTC
R_FIXED = 10000 # Resistencia fija del divisor de tensión (10kΩ)
VREF = 3.3 # Tensión de referencia del ADC
while True:
# Lectura de 16 bits (0 - 65535) en MicroPython para la Pico
adc_val = adc.read_u16()
# Evitar división por cero si el lector da 0
if adc_val > 0:
# Convertir lectura a voltaje
voltage = (adc_val / 65535.0) * VREF
# Calcular resistencia actual del termistor NTC
r_ntc = R_FIXED * (VREF / voltage - 1.0)
# Calcular temperatura en Kelvin usando la fórmula Beta
temp_k = 1.0 / ((1.0 / T0) + (1.0 / BETA) * math.log(r_ntc / R0))
# Convertir a Celsius
temp_c = temp_k - 273.15
print(f"Temperatura: {temp_c:.2f} °C | Resistencia: {r_ntc:.1f} Ω")
time.sleep(2)