from machine import Pin, ADC
from utime import sleep
# Configura el pin ADC (12)
adc = ADC(Pin(12))
# Ajustamos la atenuación para un rango de voltaje de 0 a 3.6V
# sino tendriamos calculos incorrectos
adc.atten(ADC.ATTN_11DB)
# Parámetros del divisor de voltaje
# Resistencia fija en ohmios (10k ohmios)
R_fixed = 10000
# Configuramos el Voltaje de alimentación en voltios (3.3V)
Vcc = 3.3
def adc_to_resistance(adc_value):
# Convertir valor ADC a voltaje
V_out = adc_value * (Vcc / 4095)
# Evitamos la división por cero
if V_out == 0:
return float('inf') # Retorna infinito positivo
# Calcular resistencia variable del potenciómetro
R_variable = R_fixed * ((Vcc / V_out) - 1)
# Retornamos la resistencia que calculamos
return R_variable
while True:
# Leemos el valor del ADC
adc_value = adc.read()
# Convertimos el valor ADC a resistencia
resistance = adc_to_resistance(adc_value)
# Mostramos por pantalla el valor de ADC y la Resistencia
print("Valor ADC:", adc_value, " / Resistencia: {:.2f} ohmios".format(resistance))
# Esperar 1 segundo
sleep(1)