from machine import ADC, Pin
from time import sleep
import math
ADC_PIN = 26 # GP26 = ADC0 (mude se estiver em GP27/GP28)
VREF = 3.3
R_FIXED = 10000 # resistor fixo (10k)
R0 = 10000 # NTC 10k em 25°C
BETA = 3950 # Beta do NTC (ajuste se necessário)
T0 = 298.15 # 25°C em Kelvin
adc = ADC(Pin(ADC_PIN))
def calc_r_ntc(vout):
return R_FIXED * (vout / (VREF - vout))
def r_to_celsius(r_ntc):
inv_t = (1 / T0) + (1 / BETA) * math.log(r_ntc / R0)
t_k = 1 / inv_t
return t_k - 273.15
while True:
raw = adc.read_u16() # 0..65535
vout = (raw / 65535) * VREF
r_ntc = calc_r_ntc(vout)
temp_c = round(r_to_celsius(r_ntc), 1)
print("-> Valor analógico do sensor:", raw, "\n-> Temperatura:", temp_c, "°C\n")
sleep(2)