import board
import digitalio
import time
# 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
def contador_binario():
for counter in range(256):
update_leds(counter)
print(counter)
time.sleep(0.0390625)
apagar_todo()
# SEMAFORO DOBLE
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):
leds[i].value = led_patterns[sequence][i]
time.sleep(1.5)
def semaforo_doble():
for sequence in range(10):
display_pattern(sequence)
apagar_todo()
# DISPLAY DE 7 SEGMENTOS
segments = [
board.GP8, board.GP9, board.GP10, board.GP11,
board.GP12, board.GP13, board.GP14
]
segment_pins = [
digitalio.DigitalInOut(pin) for pin in segments
]
for segment_pin in segment_pins:
segment_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, 0, 0, 1, 1]
]
def display_digit(digit):
for i in range(7):
segment_pins[i].value = digit_patterns[digit][i]
time.sleep(0.5)
def display_7_segmentos():
for digit in range(10):
display_digit(digit)
apagar_todo()
# APAGAR TODO
def apagar_todo():
for led in leds:
led.value = False
for segment in segment_pins:
segment.value = False
# MENU PRINCIPAL
while True:
apagar_todo()
print()
print("PRACTICA 3")
print("1. Contador binario")
print("2. Semaforo doble")
print("3. Display de 7 segmentos")
print("4. Salir")
valor = int(input("Opcion a elegir: "))
if valor == 1:
contador_binario()
elif valor == 2:
semaforo_doble()
elif valor == 3:
display_7_segmentos()
elif valor == 4:
print("Saliendo del programa...")
break
else:
print("Opción no válida. Intenta de nuevo.")