from machine import Pin, PWM
from time import sleep
from machine import ADC #chamar classe adc para a leitura do potenciometro; ADC é conversor analógico digital
led = Pin(0, Pin.OUT) #define o led
potenciometro = ADC(27) #define o pino do joystick
freq = 1 #frequência em Hz
p = int(100/freq) #segundos
led.off() #começa com led apagado
valor = potenciometro.read_u16() #é o valor da leitura do potenciometro em decimal que corresponde aos 16 bits, o valor inicial é em bits e dps ocorre a conversão em decimal
duty = (1 * valor)/65536 #2 elevado a n onde n equivale ao numero de bits que. nesse caso é 16. só é 16 porque é a resolução do conversor ADC da placa
th = int(duty * p) # tempo em que a amplitude é maxima. a equaçao é oriunda da formula d=(th/p)
while True:
contador = 0 #o contador corresponde a unidade de tempo que simula o pwm. nesse caso de segundo em segundo
valor = potenciometro.read_u16() #.read_u16() é como se fosse o nosso querido .value()
duty = (1 * valor)/65536 #repetimos o "valor", "duty" e o "th" no while True pois precisam ser atualizados constatemente
th = int(duty * p)
print(duty)
for contador in range (0, th): #verificar desenho do pulso (quadradinhos) TH --> qualquer valor diferente de 0
led.on()
sleep(0.01)
for contador in range (th, p): # TL tempo low ---> tempo em que o pulso é 0
led.off()
sleep(0.01)