#Ejemplo de control de salidas de un CD74HC4067 por canales
#Carlosys 2023. Tarragona

import machine
from machine import Pin
import utime

# Selección pines multiplexor
S0 = machine.Pin(14, Pin.OUT)
S1 = machine.Pin(15, Pin.OUT)
S2 = machine.Pin(16, Pin.OUT)
S3 = machine.Pin(17, Pin.OUT)

# Pin para habilitar el multiplexor
ActivaMulti = machine.Pin(26, machine.Pin.OUT)
# Activa el multiplexor
ActivaMulti.value(1)

# Función para seleccionar un canal en el multiplexor
def select_channel(channel):
    S0.value(channel & 0x01)
    S1.value((channel >> 1) & 0x01)
    S2.value((channel >> 2) & 0x01)
    S3.value((channel >> 3) & 0x01)
    
# Bucle principal
while True:
    print("*** Recorro todos los canales ***")
    print("=================================")
    for channel in range(16):
        select_channel(channel)
        print(f"Canal {channel} OK")
        utime.sleep(0.5)  # Tiempo encendido led
        
BOOTSELLED1239USBRaspberryPiPico©2020RP2-8020/21P64M15.00TTT