import time
import board
import digitalio
def display():
segments = [board.GP14, board.GP22, board.GP21, board.GP20, board.GP19,
board.GP18, board.GP17]
common_catode = board.GP16
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 = [
#a b c d e f g
[1, 1, 1, 1, 1, 1, 0], # 0
[0, 1, 1, 0, 0, 0, 0], # 1
[1, 1, 0, 1, 1, 0, 1], # 2
[1, 1, 1, 1, 0, 0, 1], # 3
[0, 1, 1, 0, 0, 1, 1], # 4
[1, 0, 1, 1, 0, 1, 1], # 5
[1, 0, 1, 1, 1, 1, 1], # 6
[1, 1, 1, 0, 0, 0, 0], # 7
[1, 1, 1, 1, 1, 1, 1], # 8
[1, 1, 1, 1, 0, 1, 1] # 9
]
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
while True:
for digit in range (10):
display_digit(digit)
break
for segment_pin in segment_pins:
segment_pin.deinit() # Release the pin
common_catode_pin.deinit()
def semaforo():
#Programa Semáforo doble import board import digitalio import time
# Define the GPIO pins for the 6-led
leds = [board.GP0, board.GP1, board.GP2, board.GP3, board.GP4, board.GP5]
# Set up the leds as digital outputs
led_pins=[digitalio.DigitalInOut(pin) for pin in leds]
for led_pin in led_pins:
led_pin.direction = digitalio.Direction.OUTPUT
# Define the leds patterns for sequences 0 to 9
led_patterns =[
[1, 0, 0, 0, 0, 1], # 0
[0, 0, 0, 0, 0, 1], # 1
[1, 0, 0, 0, 0, 1], # 2
[0, 0, 0, 0, 0, 1], # 3
[0, 1, 0, 0, 0, 1], # 4
[0, 0, 1, 1, 0, 0], # 5
[0, 0, 1, 0, 0, 0], # 6
[0, 0, 1, 1, 0, 0], #7
[0, 0, 1, 0, 0, 0], # 8
[0, 0, 1, 0, 1, 0] # 9
]
# Function to display a pattern on leds
def display_pattern (sequence):
for i in range (6):
led_pins[i].value = led_patterns[sequence][i]
time.sleep (0.5)
# Main loop
while True:
for sequence in range (10):
display_pattern(sequence)
break
for led_pin in led_pins:
led_pin.deinit()
def contador():
#Se definen los pins de los leds
led_pins=[
board.GP0,board.GP1,board.GP2,board.GP3,board.GP4,
board.GP5,board.GP6,board.GP7
]
#Ajusta los pins como salidas digitales
leds =[digitalio.DigitalInOut(pin) for pin in led_pins]
for led in leds:
led.direction= digitalio.Direction.OUTPUT
#función para actualizar los leds basado en el valor del contador binario de 8 Bits
def update_leds(counter):
for i in range (8):
leds[i].value = (counter >>i)& 0b01
#programa principal
counter=0
#while True:
for counter in range(0,256):
update_leds(counter)
time.sleep(0.0390625)
#counter=(counter+1)% 256
print(counter)
# if counter==255:
# break
for led in leds:
led.deinit()
button1 = digitalio.DigitalInOut(board.GP28)
button1.switch_to_input(pull = digitalio.Pull.DOWN)
button2 = digitalio.DigitalInOut(board.GP27)
button2.switch_to_input(pull = digitalio.Pull.DOWN)
while True:
if not(button1.value) and button2.value:
semaforo()
elif button1.value and not (button2.value):
contador()
elif button1.value and button2.value:
display()
time.sleep(2)