目录
1.数码管的科普
一位数码管是一种简单的显示器件,由多个发光二极管以特定形
状组合而成,主要用于显示单个数字或简单符号。以下是详细介
绍:

上面标的数字是Arduino板上引角对应的接口。
内部结构:
一位数码管通常由 8 个发光二极管组成,其中 7 个用于构成数字 0-9 的字形,分别标记为 A、B、C、D、E、F、G,另一个为小数点 DP。
分类及工作原理:
按发光二极管单元连接方式可分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极 (COM) 的数码管,共阳数码管在应用时应将公共极 COM 接+ 5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮,当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极 (COM) 数码管,共阴数码管在应用时应将公共极 COM 接到地线 GND 上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮,当某一字段的阳极为低电平时,相应字段就不亮。接下来我就用具体的实验带大家更具体地了解数码管
2.实验需要的材料
除了一个数码管外我们还需要,Arduino 板1个,USB下载数据线1根,面包板1个,杜邦线若干
1k 电阻 8 个

3.实验的电子连接图

4.实验代码
// 共阳极数码管引脚定义
int a = 2;
int b = 3;
int c = 4;
int d = 5;
int e = 6;
int f = 7;
int g = 8;
int h = 9; // dp小数点
// 数码管段码表(共阳极:LOW亮,HIGH灭)
// 索引0-9对应数字0-9,元素为{a,b,c,d,e,f,g,h}的电平状态
int segCodes[10][8] = {
{LOW, LOW, LOW, LOW, LOW, LOW, HIGH, LOW}, // 0
{HIGH, LOW, LOW, HIGH, HIGH, HIGH, HIGH, LOW}, // 1
{LOW, LOW, HIGH, LOW, LOW, HIGH, LOW, LOW}, // 2
{LOW, LOW, LOW, LOW, HIGH, HIGH, LOW, LOW}, // 3
{HIGH, LOW, LOW, HIGH, HIGH, LOW, LOW, LOW}, // 4
{LOW, HIGH, LOW, LOW, HIGH, LOW, LOW, LOW}, // 5
{LOW, HIGH, LOW, LOW, LOW, LOW, LOW, LOW}, // 6
{LOW, LOW, LOW, HIGH, HIGH, HIGH, HIGH, LOW}, // 7
{LOW, LOW, LOW, LOW, LOW, LOW, LOW, LOW}, // 8
{LOW, LOW, LOW, LOW, HIGH, LOW, LOW, LOW} // 9
};
void setup() {
// 初始化2-9号引脚为输出
for (int i = 2; i <= 9; i++) {
pinMode(i, OUTPUT);
}
}
void loop() {
// 循环显示0-9
for (int num = 0; num <= 9; num++) {
showDigit(num);
delay(1000); // 延时1秒
}
}
// 显示指定数字的函数
void showDigit(int num) {
digitalWrite(a, segCodes[num][0]);
digitalWrite(b, segCodes[num][1]);
digitalWrite(c, segCodes[num][2]);
digitalWrite(d, segCodes[num][3]);
digitalWrite(e, segCodes[num][4]);
digitalWrite(f, segCodes[num][5]);
digitalWrite(g, segCodes[num][6]);
digitalWrite(h, segCodes[num][7]);
}
这份代码是基于Arduino实现的共阳极数码管0-9循环显示程序,核心功能是让数码管每隔1秒依次显示0到9的数字:
5.实验结果
给arduino板通电以后,数码管会按照从 0 ~ 9 的顺序每隔1秒切换显示数字。给大家看一下实验视频
数码管的科普视频
6.注意事项
1. 引脚接线要精准
- 数码管的 a-g 引脚需对应连接 Arduino 的 2-8 引脚,小数点 h 接 9 引脚,不要接错引脚顺序,否则数字显示会错乱。
- 共阳极数码管的公共端必须接 Arduino 的 5V 引脚,若误接 GND 会变成共阴极逻辑,导致所有段码不亮或显示异常。
2. 必须串联限流电阻
每个数码管的段引脚(a-h)与 Arduino 引脚之间,要串联一个 220Ω 左右的限流电阻。若直接连接不加电阻,过大的电流会烧毁数码管段芯或 Arduino 的引脚。
3. 程序上传与硬件供电注意
上传程序时,先断开数码管的供电连接,避免上传过程中硬件的电流波动干扰程序烧录。实验时优先用 USB 线为 Arduino 供电,保证电压稳定,避免外接电源电压过高损坏元件。
4. 调试与故障排查要点
若数码管某一段不亮,先检查对应引脚的接线是否松动、电阻是否损坏,再核对程序里的段码表电平是否正确。若所有段都不亮,先确认公共端是否接对 5V,再检查 Arduino 引脚的输出模式是否为 OUTPUT 。
1686

被折叠的 条评论
为什么被折叠?



