import machine
import time
number_dict = {
0: "11111100",
1: "01100000",
2: "11011010",
3: "11110010",
4: "01100110",
5: "10110110",
6: "10111110",
7: "11100000",
8: "11111110",
9: "11110110",
}
class FourDigitDigitalTube:
def __init__(self,P_led1,P_led2,P_led3,P_led4,P_a,P_b,P_c,P_d,P_e,P_f,P_g,P_h):
self.led1 = machine.Pin(P_led1, machine.Pin.OUT)
self.led2 = machine.Pin(P_led2, machine.Pin.OUT)
self.led3 = machine.Pin(P_led3, machine.Pin.OUT)
self.led4 = machine.Pin(P_led4, machine.Pin.OUT)
self.number_led_list = [self.led1, self.led2, self.led3, self.led4]
for led in self.number_led_list:
led.value(1)
self.a = machine.Pin(P_a, machine.Pin.OUT)
self.b = machine.Pin(P_b, machine.Pin.OUT)
self.c = machine.Pin(P_c, machine.Pin.OUT)
self.d = machine.Pin(P_d, machine.Pin.OUT)
self.e = machine.Pin(P_e, machine.Pin.OUT)
self.f = machine.Pin(P_f, machine.Pin.OUT)
self.g = machine.Pin(P_g, machine.Pin.OUT)
self.h = machine.Pin(P_h, machine.Pin.OUT)
# 将对应的引脚对象存储到列表
self.led_list = [self.a, self.b, self.c, self.d, self.e, self.f, self.g, self.h]
for num in self.led_list:
num.value(0)
def show_number(self,number):
if number_dict.get(number):
i = 0
for num in number_dict.get(number): # 此时就是对应的value,即类似的"01110111"
self.led_list[i].value(int(num))
i += 1
def led_light_on(self,i):
# 全部设置为1
for led in self.number_led_list:
led.value(1)
self.number_led_list[i].value(0)
def show_4_number(self,number):
if 0 <= number <= 9999:
i = 0
for num in "%04d" % number:
print(num)
self.show_number(int(num))
self.led_light_on(i)
time.sleep_ms(3)
i += 1
# if __name__ == "__main__":
# fddt = FourDigitDigitalTube(15,2,4,16,17,5,18,19,21,3,1,2)
# for i in range(0, 10000):
# for j in range(50):
# fddt.show_4_number(i)
esp32+Micorpyhon控制四位数码管显示四位整数(共阴)
于 2023-12-22 22:10:52 首次发布