'''
Pins Connections to Display
a = Pin5
b = Pin19
c = Pin2
d = Pin0
e = Pin4
f = Pin18
g = Pin15
dig1 = Pin21
dig2 = Pin33
dig3 = Pin25
dig4 = Pin26
'''
from machine import Pin
import time
def display_number(Display_Pins,number,CC_CA):
# 7-Seg Truth Table
Seg_values = [[1,1,1,1,1,1,0],
[0,1,1,0,0,0,0],
[1,1,0,1,1,0,1],
[1,1,1,1,0,0,1],
[0,1,1,0,0,1,1],
[1,0,1,1,0,1,1],
[1,0,1,1,1,1,1],
[1,1,1,0,0,0,0],
[1,1,1,1,1,1,1],
[1,1,1,1,0,1,1]]
for i,val in enumerate(Seg_values[number]):
Display_Pins[i].value(val ^ CC_CA) # XOR Operation
def reset_display(Display_Pins,CC_CA):
for i in range(0,7):
Display_Pins[i].value(CC_CA)
def display_4_numbers(Display_Pins,Digit_Pins,number,CC_CA):
digit4 = int(number / 1000)
digit3 = int(number / 100) - digit4 * 10
digit2 = int(number / 10) - digit4 * 100 - digit3 * 10
digit1 = int(number / 1) - digit4 * 1000 - digit3 * 100 - digit2 * 10
for i in range(1,10):
Digit_Pins[3].value(not(CC_CA))
Digit_Pins[2].value(not(CC_CA))
Digit_Pins[1].value(not(CC_CA))
Digit_Pins[0].value(CC_CA)
display_number(Display_Pins,digit4,CC_CA)
time.sleep(0.01)
reset_display(Display_Pins,CC_CA)
Digit_Pins[3].value(not(CC_CA))
Digit_Pins[2].value(not(CC_CA))
Digit_Pins[1].value(CC_CA)
Digit_Pins[0].value(not(CC_CA))
display_number(Display_Pins,digit3,CC_CA)
time.sleep(0.01)
reset_display(Display_Pins,CC_CA)
Digit_Pins[3].value(not(CC_CA))
Digit_Pins[2].value(CC_CA)
Digit_Pins[1].value(not(CC_CA))
Digit_Pins[0].value(not(CC_CA))
display_number(Display_Pins,digit2,CC_CA)
time.sleep(0.01)
reset_display(Display_Pins,CC_CA)
Digit_Pins[3].value(CC_CA)
Digit_Pins[2].value(not(CC_CA))
Digit_Pins[1].value(not(CC_CA))
Digit_Pins[0].value(not(CC_CA))
display_number(Display_Pins,digit1,CC_CA)
time.sleep(0.01)
reset_display(Display_Pins,CC_CA)
a = Pin(5,Pin.OUT)
b = Pin(19,Pin.OUT)
c = Pin(2,Pin.OUT)
d = Pin(0,Pin.OUT)
e = Pin(4,Pin.OUT)
f = Pin(18,Pin.OUT)
g = Pin(15,Pin.OUT)
dig1 = Pin(21,Pin.OUT,value=1)
dig2 = Pin(33,Pin.OUT,value=1)
dig3 = Pin(25,Pin.OUT,value=1)
dig4 = Pin(26,Pin.OUT,value=1)
LEDS = [a,b,c,d,e,f,g]
Digits = [dig1,dig2,dig3,dig4]
while True:
for number in range(0,10000):
display_4_numbers(LEDS,Digits,number,1)