# Code for common Anode
from machine import Pin
import time
# DIP switch input pins (8-bit)
dip_pins = [
Pin(16, Pin.IN, Pin.PULL_DOWN),
Pin(17, Pin.IN, Pin.PULL_DOWN),
Pin(18, Pin.IN, Pin.PULL_DOWN),
Pin(19, Pin.IN, Pin.PULL_DOWN),
Pin(20, Pin.IN, Pin.PULL_DOWN),
Pin(21, Pin.IN, Pin.PULL_DOWN),
Pin(22, Pin.IN, Pin.PULL_DOWN),
Pin(23, Pin.IN, Pin.PULL_DOWN),
]
# 7-segment pins (a, b, c, d, e, f, g)
segments = [
Pin(0, Pin.OUT),
Pin(1, Pin.OUT),
Pin(2, Pin.OUT),
Pin(3, Pin.OUT),
Pin(4, Pin.OUT),
Pin(5, Pin.OUT),
Pin(6, Pin.OUT),
]
# 7-segment encoding for 0–9 and A–F (hex)
digit_map = {
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],
}
def read_dip():
value = 0
bits_weights = [1,2,4,8,16,32,64,128,256]
for i in range(8):
if dip_pins[i].value() == 1:
value += bits_weights[i]
return value
def display_digit(num):
pattern = digit_map[num]
for i in range(7):
# segments[i].value(pattern[i])
if pattern[i] == 0:
segments[i].value(False)
else:
segments[i].value(True)
while True:
dip_value = read_dip() # Read 8-bit DIP switch
display_digit(dip_value)
time.sleep(0.2)
# Code for common Cathode
from machine import Pin
import time
# DIP switch input pins (8-bit)
dip_pins = [
Pin(16, Pin.IN, Pin.PULL_DOWN),
Pin(17, Pin.IN, Pin.PULL_DOWN),
Pin(18, Pin.IN, Pin.PULL_DOWN),
Pin(19, Pin.IN, Pin.PULL_DOWN),
Pin(20, Pin.IN, Pin.PULL_DOWN),
Pin(21, Pin.IN, Pin.PULL_DOWN),
Pin(22, Pin.IN, Pin.PULL_DOWN),
Pin(23, Pin.IN, Pin.PULL_DOWN),
]
# 7-segment pins (a, b, c, d, e, f, g)
segments = [
Pin(0, Pin.OUT),
Pin(1, Pin.OUT),
Pin(2, Pin.OUT),
Pin(3, Pin.OUT),
Pin(4, Pin.OUT),
Pin(5, Pin.OUT),
Pin(6, Pin.OUT),
]
# 7-segment encoding for 0–9
digit_map = {
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],
}
def read_dip():
value = 0
bits_weights = [1,2,4,8,16,32,64,128,256]
for i in range(8):
if dip_pins[i].value() == 1:
value += bits_weights[i]
return value
def display_digit(num):
pattern = digit_map[num]
for i in range(7):
if pattern[i] == 1:
segments[i].value(True)
else:
segments[i].value(False)
while True:
dip_value = read_dip() # Read 8-bit DIP switch
display_digit(dip_value)
time.sleep(0.2)
Loading
pi-pico-w
pi-pico-w