#Intergantes: Angela Acero, Pablo Garzon, Maicol Cárdenas y Camilo Valderrama
from machine import Pin,ADC
from time import sleep
from lcd import LCD
# pines de la amtriz
R1 = 2
R2 = 4
R3 = 5
R4 = 19
C1 = 13
C2 = 12
C3 = 14
C4 = 27
# pines de la lcd
modo = 4
Rs = 26
enable = 25
Pines_datos = [16,17,18,21] #d5-7
lcd = LCD(mode = modo)
lcd.SetPines(Rs, enable, Pines_datos)
lcd.Iniciar()
# acondiconador
Temp=None
T = ADC(Pin(34))
A = Pin(33, Pin.OUT)
grados = None
valores = None
grados_min = const(10)
grados_max = const(60)
n = 2
datos = [None]*n
i = 0
j = 0
#para pormedioar los datos de temp
t = 10
prom1 = [0]*t
prom2 = 0
prom4 = 0
#para el teclado
presionado = const(1)
sinPresion = const(0)
teclas =[['1', '2', '3', '0'], ['4', '5', '6', '0'], ['7', '8', '9', '0'], ['°', '0', '0', 'D']]
filas = [R1,R2,R3,R4]
columnas = [C1,C2,C3,C4]
p_filas = [Pin(p_name, mode = Pin.OUT)for p_name in filas]
p_columnas = [Pin(p_name, mode=Pin.IN, pull=Pin.PULL_DOWN) for p_name in columnas]
def start() :
for fila2 in range (0,4):
for col in range (0,4):
p_filas[fila2].value(0)
def leer (fila2,columna2):
p_filas[fila2].value(1)
key = None
if p_columnas[columna2].value() == presionado:
key = presionado
if p_columnas[columna2].value() == sinPresion:
key = sinPresion
p_filas [fila2].value(0)
return key
def macuin (i):
for fila2 in range(4):
for columna2 in range(4):
tecla2 = leer(fila2, columna2)
if tecla2 == presionado:
grados = (teclas[fila2][columna2])
datos[i] = grados
sleep(0.2)
lcd.Print(grados,0,7+i)
sleep(0.5)
i += 1
return i
def concatenacion (grados):
grados = "".join(datos[0:3])
return grados
def reset (j):
for fila2 in range(4):
for columna2 in range(4):
tecla2 = leer(fila2, columna2)
if tecla2 == presionado:
algo = (teclas[fila2][columna2])
if algo == 'D':
sleep(0.5)
lcd.Clear()
A.value(0)
datos = [None]*n
valores = None
grados = None
Temp = None
j = 1
return j
print ("telcee")
start()
lcd.Clear()
lcd.Print("INICIANDO...")
sleep(1)
lcd.Clear()
sleep(0.5)
lcd.Print("temp: ")
while True:
j = reset(j)
if j == 1:
Valor = T.read()
V=Valor*(3.3/4095)
Temp = 34.65016972086*V
grados = None
i = 0
if Temp >=9 :
lcd.Print("Bajando temperatrua")
else:
prom4 = 0
prom1[9] = 0
prom2 = 0
j = 0
lcd.Clear()
sleep(1)
lcd.Print("Temp: ")
if i < 2:
i = macuin(i)
else:
grados = concatenacion(grados)
valores = int(grados)
if grados is not None:
lcd.Print("°C",0,10)
for i in range (1,10):
Valor = T.read() #leer voltaje
V=Valor*(3.3/4095) #Voltaje para la temperatura caracterizada desde el voltaje del sensor
Temp=34.65016972086*V #temperatura caracteriada por el voltaje que el mismo sensor saca
prom1[i-1] = prom1[i]
prom1[9] = int(Temp)
for i in range (1,10):
prom2 = prom2 + prom1[i]
prom2 = prom2 / t
prom4 = str(int(prom2)+1)
Gato = valores
if Temp < Gato :
A.value(1)
else:
A.value(0)
if grados_min <= valores <= grados_max:
lcd.Print("Temp leida:",1,0)
lcd.Print(prom4,1,12)
else:
sleep(1)
lcd.Clear()
sleep(1)
lcd.Print("ERROR: temperatura")
lcd.Print("fuera del " ,1,4)
lcd.Print("rango (10-60)",2,3)
sleep(1)
lcd.Clear()
lcd.Print("Temp: ")
i = 0
grados = None