from machine import Pin, PWM, ADC
import time
from time import sleep
"""
IMPORTANTE: 1) ADAPTAR EL CODIGO PARA QUE FUNCIONE CON LOS PIN TOUCH
2) FALTA HACER QUE AL PRESIONAR LOS BOTONES(TOUCH)ESTOS TENGAN ENCLAVAMIENTO
"""
# Configuración de las propiedades de PWM
frecuencia = 5000
resolucion = 8
ledB = PWM(Pin(14), freq=frecuencia, duty=0)#salida hacia el motor producto del giro del potenciometro
potB = ADC(Pin(32,Pin.IN)) #lectura entrante del potenciometro
A1 = Pin(21, Pin.OUT) # Simula IN1
A2 = Pin(18, Pin.OUT) # Simula IN2
A3 = Pin(19, Pin.OUT) # Simula ENABLE
Boton1 = Pin(13, Pin.IN) # Simula los pines touch
Boton2 = Pin(4, Pin.IN) # Uno para parar la operación del motor y el otro para invertir el giro
leds_encendidos = False #variables auxiliares
motor_pausado = False
while True:
A3.value(1) #simula el enable del motor el cual siempre estara en uno al menos que se presione el touch simulado como BOTON2
if Boton1.value() == 1: # funciona para invertir el giro(puertos IN1 y IN2 ) en base al umbral
leds_encendidos = not leds_encendidos # Invertir el estado de los LEDs al presionar el botón
if leds_encendidos:
A1.value(1) #cambiar estos valores logicos de tal forma que uno mande un uno y el otro un cero
A2.value(1)
else:
A1.value(0) # Apagar los LEDs
A2.value(0)
while Boton1.value() == 1:
sleep(0.1)
if Boton2.value() == 1:# PARA APAGAR EL MOTOR
motor_pausado = not motor_pausado
sleep(0.1)
if motor_pausado:
y=0
while y != 1: #Toco crear este while para que pueda tener enclavamiento
print("a")
A3.value(0)
sleep(0.1)
if Boton2.value() == 1:
y+=1
valorPotenciometroB = potB.read() #toma la lectura del potenciometro
cicloLEDB = int(valorPotenciometroB / 16) # si no se colocaba int, a partir de la linea 37 se empieza a tener problemas
# debido a que daria un valor de tipo flotante
ledB.duty(cicloLEDB) #salida para el control de velocidad de giro del motor
time.sleep_ms(15) # Pequeña pausa