from machine import ADC, Pin
import utime
import math
import tm1637
#LCD.lcd_init()
AnalogIn = ADC(0) #gp26 Entrada del sensor TMP36 o LM35.
SetPoint = ADC(1) #gp27 Entrada voltaje de ajuste del setpoint de temperatura (Pot 5 ó 10 kOhm).
tmverde= tm1637.TM1637(clk=Pin(1), dio=Pin(0))
tmrojo= tm1637.TM1637(clk=Pin(2), dio=Pin(3))
tmverde.brightness(2)
tmrojo.brightness(2)
# Calculo de la temperatura con la
# ecuación Steinhart-Hart
Conv = 3300 / 65535
Conv1=80/3300 #Conv1=100/3300
LED = Pin(15, Pin.OUT)
Relay = Pin(16, Pin.OUT)
LED.value(0)
Relay.value(0)
def Temperature(RawValue):
c1 = 0.001129148
c2 = 0.000234125
c3 = 0.0000000876741
R1 = 10000.0
ADC_Res = 65535.0
R2 = R1 / ((ADC_Res/RawValue - 1))
T = math.log(R2)
Tmp = 1.0 / (c1 + (c2 + (c3 * T * T)) * T)
Temp = Tmp - 273.15
return Temp
while True:
ValorPot=ADC.read_u16(SetPoint)
TempSP=Conv * ValorPot
SetTemp=0 + TempSP*Conv1
tmverde.number(int(SetTemp))
V = AnalogIn.read_u16()
RoomTemp = Temperature(V)
#mV = V * Conv
#RoomTemp = (mV - 500.0) / 10.0 #Para LM35, # Para TMP36, T=(Vo-500)/10
tmrojo.number(int(RoomTemp))
if RoomTemp < SetTemp:
Relay.value(1)
LED.value(1)
else:
Relay.value(0)
LED.value(0)
utime.sleep(1)
El potenciómetro ajusta la temperatura de referencia (display con caracteres verdes)