import board
import digitalio
import time
# --- Szegmens lábak (A-G) ---
seg_pins = [board.GP0, board.GP1, board.GP2, board.GP3, board.GP4, board.GP5, board.GP6]
segments = []
for p in seg_pins:
s = digitalio.DigitalInOut(p)
s.direction = digitalio.Direction.OUTPUT
s.value = False
segments.append(s)
# --- Digit lábak (D1-D4) ---
dig_pins = [board.GP9, board.GP10, board.GP11, board.GP12]
digits = []
for p in dig_pins:
d = digitalio.DigitalInOut(p)
d.direction = digitalio.Direction.OUTPUT
d.value = False
digits.append(d)
# --- 0-9 szegmens minták (A,B,C,D,E,F,G) ---
# 1 = világít (közös katód)
"""
NUM = {
0: (1,1,1,1,1,1,0),
1: (0,1,1,0,0,0,0),
2: (1,1,0,1,1,0,1),
3: (1,1,1,1,0,0,1),
4: (0,1,1,0,0,1,1),
5: (1,0,1,1,0,1,1),
6: (1,0,1,1,1,1,1),
7: (1,1,1,0,0,0,0),
8: (1,1,1,1,1,1,1),
9: (1,1,1,1,0,1,1),
}
"""
NUM = [
[0,0,0,0,0,0,1], # 0
[1,0,0,1,1,1,1], # 1
[0,0,1,0,0,1,0], # 2
[0,0,0,0,1,1,0], # 3
[1,0,0,1,1,0,0], # 4
[0,1,0,0,1,0,0], # 5
[0,1,0,0,0,0,0], # 6
[0,0,0,1,1,1,1], # 7
[0,0,0,0,0,0,0], # 8
[0,0,0,0,1,0,0], # 9
]
# Kiírandó szám: D1..D4
display_digits = [1, 2, 3, 4]
def all_digits_off():
for d in digits:
d.value = False
def set_segments(number):
pattern = NUM[number]
for i in range(7):
segments[i].value = bool(pattern[i])
while True:
# multiplex: gyorsan végigmegyünk a 4 digiten
for di in range(4):
all_digits_off()
set_segments(display_digits[di])
digits[di].value = False # digit ON (közös katód)
time.sleep(0.003) # 3 ms / digit (fényerő + villogás ellen)