前面几节课,我们学会了控制LED灯、连接WiFi、远程控制。这些都是基础输入输出,今天我们要玩点新花样——让数码管显示数字。
你肯定见过数码管:微波炉上的时间、电梯里的楼层、电子钟的数字……这些都是数码管在干活。它看起来比单颗LED复杂,但本质其实很简单——它就是8颗LED灯拼在一起,控制哪颗亮,就显示哪个数字。
今天就带大家从零开始,用ESP32驱动数码管,让数字从0到9依次显示出来。
第一步:找到课程,看看成品效果
打开逗脑IDE,点击顶部 “教程”,在 “硬件” → “ESP32 + MicroPython” 分类下,找到第六节课——数码管显示数字。
打开课件,首先看到的是本节课的最终效果——数码管从0到9依次循环显示。
第二步:了解数码管的原理
课件中会详细介绍数码管的原理,这里给大家快速总结一下:
数码管里面就是8颗LED灯:
这8颗LED分别叫做a、b、c、d、e、f、g、dp(小数点)。通过控制哪几颗亮,就能组合出不同的数字。
比如显示数字 1,就让 b 和 c 亮;显示数字 8,就让 a、b、c、d、e、f、g 全亮。
数码管有两种类型:
- 共阴极: 公共端接GND,给某段高电平(1)它就亮
- 共阳极: 公共端接VCC,给某段低电平(0)它就亮
这两者的代码正好相反。课件里两种都提供了,大家可以根据自己手里的数码管类型选择。
第三步:看电路图——逗脑IDE内置交互式电路
这是逗脑IDE特别方便的一个功能——内置了电路图。
在课件的顶部的 “电路” 菜单下,可以找到本节课的电路图。
打开电路图后,你会看到ESP32开发板和数码管之间的完整连线图:
- 鼠标移动到引脚上,会显示该引脚的名称
- 鼠标点击连线,会清晰的看到开发板和数码管相连的两个引脚
这个交互式电路图非常直观,对照着去接线,不用担心连错引脚。课件里还列出了需要用到的配件清单,每一步怎么连接都配有实拍图,新手照着做完全没问题。
第四步:一键打开代码,直接运行
接线完成了,接下来就是代码环节。
课件提供了两种代码——共阴极和共阳极,你可以根据自己手里数码管的类型选择。
我们以共阴极代码为例,找到对应的代码块,点击 “打开” 按钮,代码自动加载到编辑器中。
import machine
import time
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)
dot = machine.Pin(32, machine.Pin.OUT)
number_led = [a, b, c, d, e, f, g, dot]
number_dict = {
0: "11111100",
1: "01100000",
2: "11011010",
3: "11110010",
4: "01100110",
5: "10110110",
6: "10111110",
7: "11100000",
8: "11111110",
9: "11110110",
"open": "11111111",
"close": "00000000"
}
def show_number(number):
if number_dict.get(number):
i = 0
for bit in number_dict.get(number):
if bit == "1":
number_led[i].value(1)
else:
number_led[i].value(0)
i += 1
def main():
# show_number("open") # 全亮
# show_number("close") # 全灭
for i in range(10):
show_number(i)
time.sleep(0.3)
if __name__ == "__main__":
main()
整个代码不需要修改任何内容——引脚已经根据电路图配好了,数字字典已经定义好了,直接保存就能用。
第五步:保存到开发板,看效果!
按 Ctrl + S 保存,选择你的ESP32开发板设备,给文件命名(比如led_display.py),点击保存。
保存成功后,点击运行按钮。
数码管开始依次显示:0、1、2、3、4、5、6、7、8、9,然后循环。
从点灯到显示数字,你的技能在升级
回顾一下这一路走来的路径:
| 课程 | 核心知识点 | 成果 |
|---|---|---|
| 第一课 | GPIO输出 | 点亮LED |
| 第二课 | 延时控制 | LED闪烁 |
| 第三课 | PWM模拟 | 呼吸灯 |
| 第四课 | WiFi连接 | 联网通信 |
| 第五课 | UDP控制 | 远程遥控LED |
| 第六课 | 多引脚协同控制 | 数码管显示0-9 |
这节课最大的突破是: 从控制一颗LED,升级到了同时控制8颗LED协同工作。这个思维转变很重要——以后控制RGB彩灯、点阵屏、LCD屏幕,原理都是一样的。
数码管的应用场景也非常广:
- 电子钟、计时器
- 温度湿度显示
- 计数器、跑马灯
- 智能家居面板
学会了这节课,你就掌握了多引脚协同输出的核心技能。
去官网(**www.dounao.cn**)下载逗脑IDE,准备好ESP32开发板和数码管,跟着第六节课走一遍。从接线到运行,一站式搞定。
有任何问题或建议,欢迎在评论区留言告诉我们。