from machine import Pin
import time
# Configura los pines según tu hardware
boton1 = Pin(21, Pin.IN, Pin.PULL_DOWN) # Cambia el pin si es necesario
boton2 = Pin(20, Pin.IN, Pin.PULL_DOWN)
boton3 = Pin(19, Pin.IN, Pin.PULL_DOWN)
boton4 = Pin(18, Pin.IN, Pin.PULL_DOWN)
boton5 = Pin(17, Pin.IN, Pin.PULL_DOWN)
boton6 = Pin(16, Pin.IN, Pin.PULL_DOWN)
boton7 = Pin(25, Pin.IN, Pin.PULL_DOWN)
boton8 = Pin(27, Pin.IN, Pin.PULL_DOWN)
boton9 = Pin(26, Pin.IN, Pin.PULL_DOWN)
boton10 = Pin(22, Pin.IN, Pin.PULL_DOWN)
salida1 = Pin(0, Pin.OUT)
salida2 = Pin(1, Pin.OUT)
salida3 = Pin(2, Pin.OUT)
salida4 = Pin(3, Pin.OUT)
salida5 = Pin(4, Pin.OUT)
salida6 = Pin(5, Pin.OUT)
salida7 = Pin(6, Pin.OUT)
salida8 = Pin(7, Pin.OUT)
salida9 = Pin(8, Pin.OUT)
salida10 = Pin(9, Pin.OUT)
salida11 = Pin(10, Pin.OUT)
salida12 = Pin(11, Pin.OUT)
salida13 = Pin(12, Pin.OUT)
salida14 = Pin(13, Pin.OUT)
salida15 = Pin(14, Pin.OUT)
salida16 = Pin(15, Pin.OUT)
# Estado de cada salida
estado1 = False
estado2 = False
estado3 = False
estado4 = False
estado5 = False
estado6 = False
estado7 = False
estado8 = False
estado9 = False
estado10 = False
estado11 = False
estado12 = False
estado13 = False
estado14 = False
estado15 = False
estado16 = False
estado17 = False
estado18 = False
estado19 = False
estado20 = False
estado21 = False
estado22 = False
estado23 = False
estado24 = False
estado25 = False
estado26 = False
estado27 = False
estado28 = False
# Variables de control
conteo1 = 0
conteo2 = 0
conteo3 = 0
conteo4 = 0
conteo5 = 0
conteo6 = 0
conteo7 = 0
conteo8 = 0
conteo9 = 0
conteo10 = 0
tiempo_espera = 1000 # Tiempo máximo entre pulsos (ms)
ultimo_pulso1 = 0
ultimo_pulso2 = 0
ultimo_pulso3 = 0
ultimo_pulso4 = 0
ultimo_pulso5 = 0
ultimo_pulso6 = 0
ultimo_pulso7 = 0
ultimo_pulso8 = 0
ultimo_pulso9 = 0
ultimo_pulso10 = 0
def alternar_salida1(pulsos):
global estado1, estado2, estado3
if pulsos == 1:
estado1 = not estado1
salida1.value(estado1)
print("Salida 1:", "ON" if estado1 else "OFF")
elif pulsos == 2:
estado2 = not estado2
salida2.value(estado2)
print("Salida 2:", "ON" if estado2 else "OFF")
elif pulsos == 3:
estado3 = not estado3
salida3.value(estado3)
print("Salida 3:", "ON" if estado3 else "OFF")
elif pulsos == 4:
# Reset: apagar todas las salidas
estado1 = False
estado2 = False
estado3 = False
salida1.off()
salida2.off()
salida3.off()
print("Reset: todas las salidas apagadas")
else:
print("Número de pulsos no válido:", pulsos)
def alternar_salida2(pulsos):
global estado4, estado5, estado6
if pulsos == 1:
estado4 = not estado4
salida4.value(estado4)
print("Salida 4:", "ON" if estado4 else "OFF")
elif pulsos == 2:
estado5 = not estado5
salida5.value(estado5)
print("Salida 5:", "ON" if estado5 else "OFF")
elif pulsos == 3:
estado6 = not estado6
salida6.value(estado6)
print("Salida 6:", "ON" if estado6 else "OFF")
elif pulsos == 4:
# Reset: apagar todas las salidas
estado4 = False
estado5 = False
estado6 = False
salida4.off()
salida5.off()
salida6.off()
print("Reset: todas las salidas apagadas")
else:
print("Número de pulsos no válido:", pulsos)
def alternar_salida3(pulsos):
global estado7, estado8, estado9
if pulsos == 1:
estado7 = not estado7
salida7.value(estado7)
print("Salida 7:", "ON" if estado7 else "OFF")
elif pulsos == 2:
estado8 = not estado8
salida8.value(estado8)
print("Salida 8:", "ON" if estado8 else "OFF")
elif pulsos == 3:
estado9 = not estado9
salida9.value(estado9)
print("Salida 9:", "ON" if estado9 else "OFF")
elif pulsos == 4:
# Reset: apagar todas las salidas
estado7 = False
estado8 = False
estado9 = False
salida7.off()
salida8.off()
salida9.off()
print("Reset: todas las salidas apagadas")
else:
print("Número de pulsos no válido:", pulsos)
def alternar_salida4(pulsos):
global estado10, estado11, estado12
if pulsos == 1:
estado10 = not estado10
salida10.value(estado10)
print("Salida 10:", "ON" if estado10 else "OFF")
elif pulsos == 2:
estado11 = not estado11
salida11.value(estado11)
print("Salida 11:", "ON" if estado11 else "OFF")
elif pulsos == 3:
estado12 = not estado12
salida12.value(estado12)
print("Salida 12:", "ON" if estado12 else "OFF")
elif pulsos == 4:
# Reset: apagar todas las salidas
estado10 = False
estado11 = False
estado12 = False
salida10.off()
salida11.off()
salida12.off()
print("Reset: todas las salidas apagadas")
else:
print("Número de pulsos no válido:", pulsos)
def alternar_salida5(pulsos):
global estado13, estado14, estado15
if pulsos == 1:
estado13 = not estado13
salida13.value(estado13)
print("Salida 13:", "ON" if estado13 else "OFF")
elif pulsos == 2:
estado14 = not estado14
salida14.value(estado14)
print("Salida 14:", "ON" if estado14 else "OFF")
elif pulsos == 3:
estado15 = not estado15
salida15.value(estado15)
print("Salida 15:", "ON" if estado15 else "OFF")
elif pulsos == 4:
# Reset: apagar todas las salidas
estado13 = False
estado14 = False
estado15 = False
salida13.off()
salida14.off()
salida15.off()
print("Reset: todas las salidas apagadas")
else:
print("Número de pulsos no válido:", pulsos)
def alternar_salida6(pulsos):
global estado1,estado2,estado3,estado4,estado5,estado6,estado7,estado8,estado9,estado10,estado11,estado12,estado13,estado14,estado15,estado16
'''te olvidaste de declarar los estados como falsos despues de reiniciar todo'''
if pulsos == 1:
estado1 = False
estado2 = False
estado3 = False
estado4 = False
estado5 = False
estado6 = False
estado7 = False
estado8 = False
estado9 = False
estado10 = False
estado11 = False
estado12 = False
estado13 = False
estado14 = False
estado15 = False
estado16 = False
salida1.off()
time.sleep_ms(1000)
salida2.off()
time.sleep_ms(1000)
salida3.off()
time.sleep_ms(1000)
salida4.off()
time.sleep_ms(1000)
salida5.off()
time.sleep_ms(1000)
salida6.off()
time.sleep_ms(1000)
salida7.off()
time.sleep_ms(1000)
salida8.off()
time.sleep_ms(1000)
salida9.off()
time.sleep_ms(1000)
salida10.off()
salida11.off()
salida12.off()
salida13.off()
salida14.off()
salida15.off()
salida16.off()
print("Reset: todas las salidas apagadas")
def alternar_salida8(pulsos):
global estado16
if pulsos >= 1:
estado16 = not estado16
salida16.value(estado16)
print("Salida 16:", "ON" if estado16 else "OFF")
# Bucle principal
while True:
if boton1.value() == 1:
conteo1 += 1
ultimo_pulso1 = time.ticks_ms()
while boton1.value() == 1:
time.sleep_ms(10)
if conteo1 > 0 and time.ticks_diff(time.ticks_ms(), ultimo_pulso1) > tiempo_espera:
alternar_salida1(conteo1)
conteo1 = 0
if boton2.value() == 1:
conteo2 += 1
ultimo_pulso2 = time.ticks_ms()
while boton2.value() == 1:
time.sleep_ms(10)
if conteo2 > 0 and time.ticks_diff(time.ticks_ms(), ultimo_pulso2) > tiempo_espera:
alternar_salida2(conteo2)
conteo2 = 0
if boton3.value() == 1:
conteo3 += 1
ultimo_pulso3 = time.ticks_ms()
while boton3.value() == 1:
time.sleep_ms(10)
if conteo3 > 0 and time.ticks_diff(time.ticks_ms(), ultimo_pulso3) > tiempo_espera:
alternar_salida3(conteo3)
conteo3 = 0
if boton4.value() == 1:
conteo4 += 1
ultimo_pulso4 = time.ticks_ms()
while boton4.value() == 1:
time.sleep_ms(10)
if conteo4 > 0 and time.ticks_diff(time.ticks_ms(), ultimo_pulso4) > tiempo_espera:
alternar_salida4(conteo4)
conteo4 = 0
if boton5.value() == 1:
conteo5 += 1
ultimo_pulso5 = time.ticks_ms()
while boton5.value() == 1:
time.sleep_ms(10)
if conteo5 > 0 and time.ticks_diff(time.ticks_ms(), ultimo_pulso5) > tiempo_espera:
alternar_salida5(conteo5)
conteo5 = 0
if boton6.value() == 1:
conteo6 += 1
ultimo_pulso6 = time.ticks_ms()
while boton6.value() == 1:
time.sleep_ms(10)
if conteo6 > 0 and time.ticks_diff(time.ticks_ms(), ultimo_pulso6) > tiempo_espera:
alternar_salida6(conteo6)
conteo6 = 0
if boton8.value() == 1:
conteo8 += 1
ultimo_pulso8 = time.ticks_ms()
while boton8.value() == 1:
time.sleep_ms(10)
if conteo8 > 0 and time.ticks_diff(time.ticks_ms(), ultimo_pulso7) > tiempo_espera:
alternar_salida8(conteo8)
conteo8 = 0
time.sleep_ms(10)