dan2003 / Dual Olive Holodeck

Loaded

0

0

Files

Schematic

PCB

Log InSign Up

Revisión de Código de Switches

dan2003

dan2003

puedes revisar la configuracion de mis swicth es que no funcionan a la hora de probarlos o simularlos aqui esta el codigo: import time import digitalio import board
switch_1= digitalio.DigitalInOut(board.GP16) switch_1.switch_to_input(pull = digitalio.Pull.DOWN)
switch_2= digitalio.DigitalInOut(board.GP17) switch_2.switch_to_input(pull = digitalio.Pull.DOWN)
def contador_binario(): led_pins = [ board.GP0, board.GP1, board.GP2, board.GP3, board.GP4, board.GP5, board.GP6, board.GP7 ]
leds = [digitalio.DigitalInOut(pin) for pin in led_pins]
for led in leds:
    led.direction = digitalio.Direction.OUTPUT

def update_leds(counter):
    for i in range(8):
        leds[i].value = (counter >> i) & 0b01

for counter in range(256):
    update_leds(counter)
    time.sleep(0.039)
    print(counter)
update_leds(0)

# Cerrar los pines
for led in leds:
    led.deinit()
def semaforo_doble(): leds = [board.GP0, board.GP1, board.GP2, board.GP3, board.GP4, board.GP5] led_pins = [digitalio.DigitalInOut(pin) for pin in leds] for led_pin in led_pins: led_pin.direction = digitalio.Direction.OUTPUT
led_patterns = [
    [1, 0, 0, 0, 0, 1], [0, 0, 0, 0, 0, 1], [1, 0, 0, 0, 0, 1],
    [0, 0, 0, 0, 0, 1], [0, 1, 0, 0, 0, 1], [0, 0, 1, 1, 0, 0],
    [0, 0, 1, 0, 0, 0], [0, 0, 1, 1, 0, 0], [0, 0, 1, 0, 0, 0], [0, 0, 1, 0, 1, 0]
]

def display_pattern(sequence):
    for i in range(6):
        led_pins[i].value = led_patterns[sequence][i]
    time.sleep(2.0)

for sequence in range(10):
    display_pattern(sequence)

# Cerrar los pines
for led_pin in led_pins:
    led_pin.deinit()
def display_7_segmentos(): segments = [board.GP8, board.GP9, board.GP10, board.GP11, board.GP12, board.GP13, board.GP14] common_catode = board.GP15
segment_pins = [digitalio.DigitalInOut(pin) for pin in segments]
for segment_pin in segment_pins:
    segment_pin.direction = digitalio.Direction.OUTPUT

common_catode_pin = digitalio.DigitalInOut(common_catode)
common_catode_pin.direction = digitalio.Direction.OUTPUT

digit_patterns = [
    [1, 1, 1, 1, 1, 1, 0], [0, 1, 1, 0, 0, 0, 0], [1, 1, 0, 1, 1, 0, 1],
    [1, 1, 1, 1, 0, 0, 1], [0, 1, 1, 0, 0, 1, 1], [1, 0, 1, 1, 0, 1, 1],
    [1, 0, 1, 1, 1, 1, 1], [1, 1, 1, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 0, 1, 1]
]

def display_digit(digit):
    for i in range(7):
        segment_pins[i].value = digit_patterns[digit][i]
    common_catode_pin.value = False
    time.sleep(0.5)
    common_catode_pin.value = True

for digit in range(10):
    display_digit(digit)

# Cerrar los pines
for segment_pin in segment_pins:
    segment_pin.deinit()
common_catode_pin.deinit()
Menú Principal
while True: if switch_1.value==False and switch_2.value==True: display_7_segmentos()
423 days

flux

0:21

El código parece configurar los switches de forma correcta usando el modo de entrada con pull-down. Sin embargo, ten en cuenta lo siguiente:
  • Verifica el hardware y el cableado: Asegúrate de que los pines asignados (GP16 y GP17) estén conectados correctamente a tus botones con la extración apropiada, y que en tu placa los resistores pull-down internos o externos estén funcionando adecuadamente.
  • Simulación vs. Ejecución en hardware: Flux no simula código de microcontroladores; este código se ejecuta en un entorno real de CircuitPython o similar. Si estás "simulando" en un entorno local, verifica que el entorno simulado soporte la librería digitalio y la asignación de pines.
  • Lógica de lectura: Según el condicional if switch_1.value==False and switch_2.value==True:, asegúrate de que al presionar los botones se generen los estados lógicos esperados. Recuerda que con pull-down, un botón sin señal debería leer False, y al presionarlo debería pasar a True si se usa una conexión a VCC.
Revisa estos puntos en tu montaje y prueba de código. Si el problema persiste, puede ser útil que midas los niveles lógicos en los pines con un multímetro o un osciloscopio para confirmar que el comportamiento es el esperado.
Define project purpose
Specify platform details
Begin project with switch
423 days

​
Sign up to send

To get started, talk to Flux or create a New Document.

Reviews

Documents

    Documents are markdown text files which describe project goals, capture details, or even simulation outputs.

    Assets

    No assets added.

    Dual Olive Holodeck

    Dual Olive Holodeck thumbnail
    Welcome to your new project. Imagine what you can build here.

    Properties

    Properties describe core aspects of the project.

    Pricing & Availability

    Distributor

    Qty 1

    Controls

    Welcome 👋

    Flux helps you build PCBs faster with an AI teammate!

    Create your account to collaborate, stay updated, fork your own version, and get instant answers from our AI agent.

        Introducing AI Placement!
        AI Placement Demo

        AI-Powered Component Placement

        Let AI place your components intelligently. AI Placement analyzes your schematic and positions components for optimal routing, signal integrity, and board density.

        From Schematic to Layout in Seconds

        Skip the tedious manual placement. AI Placement generates a starting layout you can refine, saving hours of repetitive work on every new design.

        Works With Auto-Layout

        Pair AI Placement with Auto-Layout for a complete AI-driven PCB design flow — from component placement through trace routing, all with one click.

        Try it