from machine import ADC, Pin
import utime
import tm1637
# Configuración de entradas y displays
AnalogIn = ADC(0) # Entrada para sensor TMP36 o LM35
SetPoint = ADC(1) # Entrada para setpoint (potenciómetro)
tmverde = tm1637.TM1637(clk=Pin(1), dio=Pin(0)) # Display para setpoint
tmrojo = tm1637.TM1637(clk=Pin(2), dio=Pin(3)) # Display para temperatura
tmverde.brightness(2) # Ajustar brillo del display verde
tmrojo.brightness(2) # Ajustar brillo del display rojo
# Conversión de unidades
Conv = 3300 / 65535 # Conversión de ADC a milivoltios
Conv1 = 150 / 3300 # Conversión de voltaje a temperatura
# Configuración de pines de salida
LED = Pin(15, Pin.OUT) # Pin para LED
Relay = Pin(16, Pin.OUT) # Pin para relé
LED.value(0) # Inicializa LED apagado
Relay.value(0) # Inicializa relé apagado
# Bucle principal
while True:
ValorPot = ADC.read_u16(SetPoint) # Leer potenciómetro
TempSP = Conv * ValorPot # Convertir a voltaje
SetTemp = TempSP * Conv1 # Convertir a temperatura
tmverde.number(int(SetTemp)) # Mostrar setpoint
V = AnalogIn.read_u16() # Leer sensor de temperatura
mV = V * Conv # Convertir a milivoltios
RoomTemp = (mV - 500.0) / 10.0 # Calcular temperatura
tmrojo.number(int(RoomTemp)) # Mostrar temperatura
# Control del relé y LED
if RoomTemp < SetTemp: # Si la temperatura es menor al setpoint
Relay.value(1) # Activar relé
LED.value(1) # Encender LED
else:
Relay.value(0) # Desactivar relé
LED.value(0) # Apagar LED
utime.sleep(1) # Esperar 1 segundo