# DECLARAMOS LAS LIBRERIAS A UTILIZAR

from machine import Pin,PWM
from time import sleep

#  CREAMOS LA FUNCIÓN CORRESPONDIENTE A LO QUE QUEREMOS HACER

def LCD (datos,rs):

    d7.value(int(datos[0]))
    d6.value(int(datos[1]))
    d5.value(int(datos[2]))
    d4.value(int(datos[3]))
    d3.value(int(datos[4]))
    d2.value(int(datos[5]))
    d1.value(int(datos[6]))
    d0.value(int(datos[7]))
    RS.value(rs)
    EN.on()
    EN.off()

# DEFINIMOS LAS SALIDAS Y LAS ENTRADAS

# PUSH BOTTON

push= Pin(26,Pin.IN,Pin.PULL_UP)

#SERVO

servo= PWM(Pin(33),freq=50)

# LCD

d7=Pin(15, Pin.OUT)
d6=Pin(2, Pin.OUT)
d5=Pin(4, Pin.OUT)
d4=Pin(5, Pin.OUT)
d3=Pin(18, Pin.OUT)
d2=Pin(19, Pin.OUT)
d1=Pin(21, Pin.OUT)
d0=Pin(22, Pin.OUT)
RS=Pin(25, Pin.OUT)
EN=Pin(23, Pin.OUT)

# VARIABLES

pbveces= 0


Lista1=["00110000","00110000","00110000","00111000","00010100","00001100","00000110","00000001"]

POS1= ["01010000","01001111","01010011","00100000","00110001"]

POS2= ["01010000","01001111","01010011","00100000","00110010"]

POS3= ["01010000","01001111","01010011","00100000","00110011"]

Saltar= ["11000000"]

Borrartodo= ["00000001"]

Home= ["00000010"] 

for i in Lista1:
    LCD(i,0)

while(1):


    if push.value()==0:

        pbveces= pbveces+1
        if pbveces>2:
            pbveces=0

        while(push.value()==0):
            sleep(0.1)

    if pbveces==0:
   
        for i in POS1:
        
            LCD(i,1)
            
        for i in Home:

            LCD(i,0)    

        servo.duty(25)

    if pbveces==1:
   
        for i in POS2:
        
            LCD(i,1)

        for i in Home:

            LCD(i,0)    

        servo.duty(75)

    if pbveces==2:
   
        for i in POS3:
        
            LCD(i,1)

        for i in Home:

            LCD(i,0)    

        servo.duty(125)