from machine import Pin,ADC,PWM
from time import sleep
pot = ADC(Pin(34))
a = []
# 1 grau -> 22,75
# 180 graus -> 4095
#um cálculo que converta um valor de 0 a 4095 para 0 a 180
#adicionar um terceiro eixo na versão 3
#vai adicionar um número amais, porém, ele vai ser multiplicado por 10
#adiciona 180 por exemplo, vai ser 1800.
#se for maior do que 180 vai mexer o terceiro servo motor
servo = PWM(Pin(23),freq = 50)
servo2 = PWM(Pin(22),freq = 50)
botao = Pin(17,Pin.IN,Pin.PULL_DOWN)
botao2 = Pin(5,Pin.IN,Pin.PULL_DOWN)
botao3 = Pin(16,Pin.IN,Pin.PULL_DOWN)
botao_garra = Pin(18,Pin.IN,Pin.PULL_DOWN)
botao_garra_fecha = Pin(19,Pin.IN,Pin.PULL_DOWN)
while True:
servo2.duty(40)
servo.duty(40)
while True:
print(a)
valor = pot.read()
valor2 = int((valor / 4095) * 180)
if botao.value() == 1:
a.append(valor2)
sleep(1)
if botao_garra() == 1:
a.append(181)
sleep(1)
if botao_garra_fecha.value() == 1:
a.append(182)
sleep(1)
if botao2.value() == 1:
break
while True:
indice = 0
while(indice < len(a)):
if a[indice] == 181:
servo2.duty(int(40 + 60 * 0.45))
sleep(1)
if a[indice] == 182:
servo2.duty(int(40 + 0 * 0.45))
sleep(1)
if a[indice] != 181 and a[indice] != 182:
servo.duty(int(40 + a[indice] * 0.45))
sleep(1)
indice += 1
if botao3.value() == 1:
a.clear()
break