돈을 표시하기 위해 6자리 7세그먼트로 만든 TM1637을 라즈베리파이에 연결하고 초시계를 만들어봤다
import RPi.GPIO as GPIO
import tm1637
GPIO.setmode(GPIO.BCM)
GPIO.setup(4,GPIO.OUT)
GPIO.setup(5,GPIO.OUT)
tm = tm1637.TM1637(clk=5,dio=4)
D = [0b00111111, 0b00000110, 0b01011011, 0b01001111, 0b01100110, 0b01101101, 0b01111101, 0b00000111, 0b01111111, 0b01101111]
def ml(num):
num_str = str(num)
AL = len(num_str)
if AL == 6:
D1 = D[int(num_str[2])]
D2 = D[int(num_str[1])]
D3 = D[int(num_str[0])]
D4 = D[int(num_str[5])]
D5 = D[int(num_str[4])]
D6 = D[int(num_str[3])]
else:
num_str = "0"*(6-AL) + num_str
D1 = D[int(num_str[2])]
D2 = D[int(num_str[1])]
D3 = D[int(num_str[0])]
D4 = D[int(num_str[5])]
D5 = D[int(num_str[4])]
D6 = D[int(num_str[3])]
if AL == 5:
D3 = 0
elif AL == 4:
D3 = D2 = 0
elif AL == 3:
D3 = D2 = D1 = 0
elif AL == 2:
D6 = D3 = D2 = D1 = 0
elif AL == 1:
D5 = D6 = D3 = D2 = D1 = 0
else:
pass
if AL > 3:
num_list = [D1+128,D2,D3,D4,D5,D6]
else:
num_list = [D1,D2,D3,D4,D5,D6]
return num_list
#while True:
#tm.write([0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111]) #천만십만일십백
#tm.write([digits[3]+128,digits[2],digits[1],digits[6],digits[5],digits[4]])
for i in range(999999):
tm.write(ml(i))
최근 댓글