import time
time.sleep(0.1) # Wait for USB to become ready
from machine import Pin, ADC, PWM
#Pulsadores de paro y marcha
pg= Pin(22,Pin.IN)
mg= Pin(21,Pin.IN)
pbc= Pin(20,Pin.IN)
mbc= Pin(19,Pin.IN)
#Interruptores
olcomp= Pin(18,Pin.IN)
olvent= Pin(17,Pin.IN)
flujo= Pin(16,Pin.IN)
#Leds
comp= Pin(0,Pin.OUT)
vent= Pin(1,Pin.OUT)
bc= Pin(2,Pin.OUT)
alar= Pin(3,Pin.OUT)
#Potenciometro
temp = ADC(Pin(28))
#lapso que ordena marcha primero antes de temporizador
marcha=0
# i requerido para prender de nuevo el ventilador segun el punto 2
i=0
while True:
#formula de potenciometro vs temperatura de 5 a 30 grados
valortemp = temp.read_u16()
valortemp = 0.000381 * valortemp + 5
valortemp=round(valortemp,1)
#lectura de los pulsadores de marcha y paro
valmg=mg.value()
valpg=pg.value()
valpbc=pbc.value()
valmbc=mbc.value()
#impresion de los pulsadores de marcha y paro
print("mg", str(valmg), " ", end=" ")
print("pg", str(valpg), " ", end="")
print("pbc", str(valpbc), " ", end="")
print("mbc", str(valmbc), " ")
#lectura de los interruptores de error
valolcomp=olcomp.value()
valolvent=olvent.value()
valflujo=flujo.value()
#impresion de los pulsadores de marcha y paro
print("olcomp", str(valolcomp), " ", end="")
print("olvent", str(valolvent), " ", end="")
print("flujo", str(valflujo)," ", end="")
print("temp",str(valortemp))
#pulsador de apagado de la bomba de circulacion
if valpbc == 1:
bc.value(0)
#pulsador de inicio de la bomba de circulacion
if valmbc == 1:
bc.value(1)
#pulsador de inicio general
if valmg == 1:
marcha=1
if valortemp>10:
comp.value(1)
time.sleep(3)
vent.value(1)
#pulsador de apagado general
if valpg==1:
comp.value(0)
vent.value(0)
bc.value(0)
alar.value(0)
marcha=0
#solo cuando esta en marcha comprueba la temperatura
if marcha==1:
compint=1
alarint = 0
#si la tempratuara es menor a 10 se sigue ciertos paarmetros
if valortemp<10:
compint = 0
alarint=1
vent.value(1)
comp.value(compint)
alar.value(alarint)
print("ventilador", str(vent.value())," ", end="")
print("compresor", str(compint)," ", end="")
print("alarma", str(alarint))
time.sleep(0.1)
#si la tempratuara es mayor a 10 se sigue ciertos paarmetros
else:
alarint = 0
compint=1
#si salta un error en el compresor se sigue cierto parametros
if valolcomp == 0:
alarint = 1
compint=0
#si salta un error en el flujo se sigue cierto parametros
if valflujo == 0:
alarint = 1
#si salta un error en el ventilador se sigue cierto parametros
if valolvent == 0:
alarint = 1
vent.value(0)
print("ventilador", str(vent.value())," ", end="")
compint=0
i=0
#si se desactiva el error en el ventilador se vuelve a los parametros inciales
if valolvent == 1:
i=i+1
#se crea una formula para que no analice cada 3 segundos sin para ya que entorpece el programa
#solo se toma el primer ciclo del interruptor de error del ventilador luego mantiene su estado
if i==1:
alar.value(0)
comp.value(1)
time.sleep(3)
vent.value(1)
print("ventilador", str(vent.value())," ", end="")
#segun el valor que quede dado los parametros solicitados, el valor de los led cambian de estado
comp.value(compint)
alar.value(alarint)
print("compint", str(compint)," ", end="")
print("alarint", str(alarint))