当前位置: 首页 > article >正文

ESP32控制数码管实现数字叠加案例

经过了几个小时的接线和代码实现终于搞定了代码,贴出来大家参考下

import machine
import time

# 定义4个Led的引脚
led1 = machine.Pin(5,machine.Pin.OUT)
led2 = machine.Pin(18,machine.Pin.OUT)
led3 = machine.Pin(19,machine.Pin.OUT)
led4 = machine.Pin(21,machine.Pin.OUT)

# 型号是5643AS就是共阴 5643BS就是共阳
led_light_list = [led1,led2,led3,led4]

# 先定义组成数字的8个引脚 
a = machine.Pin(13,machine.Pin.OUT) 
b = machine.Pin(12,machine.Pin.OUT)
c = machine.Pin(14,machine.Pin.OUT)
d = machine.Pin(27,machine.Pin.OUT)
e = machine.Pin(26,machine.Pin.OUT)
f = machine.Pin(25,machine.Pin.OUT)
g = machine.Pin(33,machine.Pin.OUT)
h = machine.Pin(32,machine.Pin.OUT)

# 定义一个数组
led_list = [a,b,c,d,e,f,g,h]

# led灯的组成顺序是abcdefg
number_dict = {
    0:"11111100",
    1:"01100000",
    2:"11011010",
    3:"11110010",
    4:"01100110",
    5:"10110110",
    6:"10111110",
    7:"11100000",
    8:"11111110",
    9:"11110110"
    }

def show_number(number):
    if number_dict.get(number):
        # print(f"对应的数字为:{number_dict.get(number)}")
        i = 0
        for num in number_dict.get(number):
            # print(num)
            if num == "1":
                led_list[i].value(1)
            else:
                led_list[i].value(0)
            i += 1
            
def light_on(i):
    for led in led_light_list:
        led.value(1)
        
    led_light_list[i].value(0)

def show_4_number(number):
    if 0 <= number <= 9999:
        i = 0
        for num in "%04d" % number:
            print(num)
            show_number(int(num))
            light_on(i)
            i += 1
            time.sleep_ms(2)

for i in range(1000,10000):
    for j in range(100):
        show_4_number(i)

上效果图


http://www.kler.cn/a/145849.html

相关文章:

  • AI需要的基础数学知识
  • node.js 文件操作
  • 人工智能之深度学习_[3] -PyTorch自动微分模块和构建线性回归模型
  • Android SystemUI——CarSystemBar车载状态栏(九)
  • 什么是报文的大端和小端,有没有什么记忆口诀?
  • STM32 FreeRTOS 任务挂起和恢复---实验
  • 【学习记录】从0开始的Linux学习之旅——驱动模块编译与加载
  • 开源与闭源:大模型未来的发展之争
  • Sass的嵌套CSS 规则详细教程
  • C++面试,const的使用
  • 【LLS-Player】音视频帧的回调过程
  • 基于element自动表格
  • 【数据库】缓冲区管理器结构,几种常用替换策略分析,pin钉住缓冲区块防止错误的替换,以及缓冲区管理带来的代价优化
  • 数据库表结构导出成Excel或Word格式
  • gitee仓库使用教程
  • 【python爬虫】scrapy在pycharm 调试
  • 网络安全等级保护收费标准?
  • Proteus仿真--基于ADC0832的可调频率波形输出
  • Echarts 最简单创建柱状图
  • STM32-SPI3控制MCP3201、MCP3202(Sigma-Delta-ADC芯片)
  • 使用echars实现数据可视化
  • FloodFill
  • 26. Spring源码篇之SpEL表达式的上下文EvaluationContext
  • count=0语句的位置
  • 电力感知边缘计算网关产品设计方案-网关软件设计方案
  • 自定义指令