import machine # Importa el módulo de la biblioteca de Machine para acceder a las funcionalidades del hardware
import utime # Importa el módulo de tiempo para usar funciones de espera
# Configuración de los pines
pot_pin = machine.ADC(26) # Configura el pin GP26 como entrada analógica (ADC) para leer el potenciómetro
R_fija = 1000 # Define la resistencia fija en ohmios (1kΩ) que se utilizará en el ohmímetro
R_shunt = 10 # Define la resistencia shunt en ohmios (10Ω) que se utilizará para medir corriente
# Factor de conversión del ADC (0-65535) a voltaje (0-3.3V)
conversion_factor = 3.3 / 65535 # Calcula el factor de conversión para convertir la lectura del ADC a voltaje
while True: # Inicia un bucle infinito para leer y mostrar las mediciones continuamente
# Leer el valor del ADC
reading = pot_pin.read_u16() # Lee el valor del ADC del pin GP26 (de 0 a 65535)
voltage = reading * conversion_factor # Convierte la lectura del ADC a voltaje (0 a 3.3V)
# Voltímetro
print("Voltímetro - Voltaje: {:.2f} V".format(voltage)) # Muestra el voltaje medido en la consola
# Ohmímetro
if voltage > 0: # Verifica que haya un voltaje medido antes de calcular la resistencia
# Calcula la resistencia desconocida usando la fórmula del divisor de tensión
R_desconocida = R_fija * (voltage / (3.3 - voltage))
print("Ohmímetro - Resistencia: {:.2f} ohmios".format(R_desconocida)) # Muestra la resistencia calculada
else:
print("Ohmímetro - Resistencia no detectada (voltaje 0)") # Muestra un mensaje si no se detecta voltaje
# Amperímetro
# Calcula la corriente usando la ley de Ohm (I = V/R) y convierte a miliamperios
current_mA = (voltage / R_shunt) * 1000
print("Amperímetro - Corriente: {:.2f} mA".format(current_mA)) # Muestra la corriente medida en miliamperios
# Esperar un segundo antes de la próxima lectura
utime.sleep(1) # Pausa el programa durante 1 segundo