# Inicializar pantalla LCD I2C y encoder rotativo
import machine 
import lcd_2004
import time

lcd = lcd_2004.py(0x27, 22, 21)

# Inicializar variables
menu_principal = ["C41", "BYN"]
menu_cantidad = ["240 mL", "570 mL"]
opcion_principal = 0
opcion_cantidad = 0

# Función para mostrar el menú principal en la pantalla LCD
def mostrar_menu_principal():
  lcd.clear()
  lcd.set_cursor(0, 0)
  lcd.write("Elige producto:")
  lcd.set_cursor(0, 1)
  lcd.write(f"{menu_principal[opcion_principal]}  <")

# Función para mostrar el menú de cantidad en la pantalla LCD
def mostrar_menu_cantidad():
  lcd.clear()
  lcd.set_cursor(0, 0)
  lcd.write("Elige cantidad:")
  lcd.set_cursor(0, 1)
  lcd.write(f"{menu_cantidad[opcion_cantidad]}  <")

# Función para ejecutar el proceso de lavado con el producto C41
def lavado_c41(cantidad):
  # Ingresar la cantidad de producto C41 en la cubeta
  electrovalvula_c41.on()
  bomba_c41.on()
  while sensor_c41.read() < cantidad:
    pass
  electrovalvula_c41.off()
  bomba_c41.off()

  # Calentar el producto C41 a la temperatura de trabajo
  resistencia_c41.on()
  while sensor_temperatura_c41.read() < 37.8:
    pass
  resistencia_c41.off()

  # Enviar el producto C41 al recipiente final
  rele_9.on()
  bomba_2.on()
  while sensor_recipiente_final.read() < cantidad:
    pass
  rele_9.off()
  bomba_2.off()

  # Agitar el recipiente durante el tiempo especificado
  motor_dc.run_time(time=3*60+15, speed=15)
  motor_dc.stop()

  # Vaciar el recipiente
  rele_8.on()
  bomba_1.on()
  electrovalvula_recuperacion.on()
  while sensor_cubeta.read() < cantidad:
    pass
  rele_8.off()
  bomba_1.off()
  electrovalvula_recuperacion.off()