import board
import digitalio
import time
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
counter = 0
for counter in range (256):
update_leds(counter)
time.sleep(0.0390625)
print(counter)
counter=0
update_leds(counter)
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, 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] ]
def display_pattern(sequence):
for i in range (6):
led_pins[i].value=led_patterns[sequence][i]
time.sleep(1.5)
for i in range (1):
for sequence in range (10):
display_pattern(sequence)
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
[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] ]
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 i in range (1):
for digit in range(10):
display_digit(digit)
for segment_pin in segment_pins:
segment_pin.deinit()
common_catode_pin.deinit()
def main():
#definir los pines a utilizar
switch_1= digitalio.DigitalInOut(board.GP16)
switch_1.direction = digitalio.Direction.INPUT
switch_1.switch_to_input(pull = digitalio.Pull.DOWN)
switch_2= digitalio.DigitalInOut(board.GP17)
switch_2.direction = digitalio.Direction.INPUT
switch_2.switch_to_input(pull = digitalio.Pull.DOWN)
while True:
print('Switch 1: ', switch_1.value)
print('Switch 2: ', switch_2.value)
time.sleep(5)
if switch_1.value == False and switch_2.value == True:
contador_binario()
elif switch_1.value == True and switch_2.value == False:
semaforo_doble()
elif switch_1.value == True and switch_2.value == True:
display_7_segmentos()
main()