돈을 표시하기 위해 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))

 

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기