from machine import Pin, PWM
from time import sleep

class ControladorLED:
    def __init__ (self, ini_led):
        self.led = PWM(Pin(15, ini_led), freq = 1000, duty = 0)
    def ligar(self):
        self.led.duty(1023)
    def desligar(self):
        self.led.duty(0)
    def definir_intensodade(self, valor):
        valor = max(0, min(100, valor))# garante com que os valores fiquem entre 0 e 100 ( tive que buscar oytra maneira de fazer isso sem o if e elif)
        duty = int((valor/100)* 1023)
        self.led.duty
    def ini_controleled(ini_led):
        led = ControladorLED(ini_led)
        print('Digite um número de 0 a 100 para ajustar o brilho ou "on" e "off"para ligar ou desligar.')
        while True:
            try:
                entrada = input('Digite:').strip().lower()# strip remove os espaços extras e lower fica tudo em minusculo.
                
                if entrada.a():
                    if entrada not in ("on", "off"):
                        raise TypeError('Digite apenas "on" ou "off".')
                    elif entrada == "on":
                        self.ligar
                    elif entrada == "off":
                        self.desligar
                elif entrada.b():
                    valor = int(entrada)
                    if 0<= valor >=100:
                        self.definir_intensodade(valor)
                        print(f"brilho= {valor}%")
                    else:
                        raise ValueError('Digite um número entre 0 e 100.')
                else:
                    raise TypeError('Entrada Invalida.')
            except(ValueError, TypeError, KeyboardInterrupt) as e:
                print(f"Erro {e}")
           

if __name__ == '__main__':
    led = ControladorLED(15)
    led.ini_controleled