2.七段显示器
一、功能以及原理


原理:七段显示器是由七个 LED 灯所组成,控制不同的 LED 灯亮灭以显示不同的数字
二、引脚介绍以及对应开发板可用引脚

七段显示器引脚:
com1 与 com2:LED 灯的共阴极,通过电阻连接到 Arduino 板的 GND
G、F、A、B、E、D、C、DP:LED 灯的正极,连接 Arduino 板的数字引脚(0~13)
三、代码控制
- 定义每个 LED 灯正极连接的数字引脚
- 初始化每个 LED 灯为熄灭状态
- 根据用户输入的数字,让对应的 LED 灯亮灭以显示数字
- 电路连接图可参照相关案例演示
3.1 文本代码
const int a = 7, b = 6, c = 5, d = 10, e = 11, f = 8, g = 9, dp = 4;
void turnOffAllSegments(){
digitalWrite(a, LOW);
digitalWrite(b, LOW);
digitalWrite(c, LOW);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, LOW);
digitalWrite(dp, LOW);
}
//录入值
void setNumber(String val){
val.toLowerCase();
turnOffAllSegments();
if(val=="1"){
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
}
if(val=="2"){
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(g, HIGH);
digitalWrite(e, HIGH);
digitalWrite(d, HIGH);
}
if(val=="3"){
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(g, HIGH);
}
if(val=="4"){
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
}
if(val=="5"){
digitalWrite(a, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
}
if(val=="6"){
digitalWrite(a, HIGH);
digitalWrite(f, HIGH);
digitalWrite(e, HIGH);
digitalWrite(d, HIGH);
digitalWrite(c, HIGH);
digitalWrite(g, HIGH);
}
if(val=="7"){
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
}
if(val=="8"){
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
}
if(val=="9"){
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
}
if(val=="a"){
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
}
if(val=="b"){
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
}
if(val=="c"){
digitalWrite(a, HIGH);
digitalWrite(f, HIGH);
digitalWrite(e, HIGH);
digitalWrite(d, HIGH);
}
if(val=="d"){
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(g, HIGH);
}
if(val=="e"){
digitalWrite(a, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
}
if(val=="f"){
digitalWrite(a, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
}
if(val=="fdp"){
digitalWrite(a, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
digitalWrite(dp, HIGH);
}
}
void setup() {
pinMode(a, OUTPUT);
pinMode(b, OUTPUT);
pinMode(c, OUTPUT);
pinMode(d, OUTPUT);
pinMode(e, OUTPUT);
pinMode(f, OUTPUT);
pinMode(g, OUTPUT);
pinMode(dp, OUTPUT);
turnOffAllSegments();
}
void loop() {
setNumber("1");
delay(1 * 1000);
setNumber("2");
delay(1 * 1000);
setNumber("3");
delay(1 * 1000);
setNumber("4");
delay(1 * 1000);
setNumber("5");
delay(1 * 1000);
setNumber("6");
delay(1 * 1000);
setNumber("7");
delay(1 * 1000);
setNumber("8");
delay(1 * 1000);
setNumber("9");
delay(1 * 1000);
}
3.2 图形化代码
在“显示器”当中的“七段显示器”,找到相关图形化代码块。


四、相关案例演示
七段显示器的共阴极连接时要与电阻相连以避免因电流过大被烧坏
1、电路连接图
2、程序运行图
五、相关课程链接
- 【Arduino 精选项目——七段数码管显示 1 到 10】 https://www.bilibili.com/video/BV1qDtKe3EKp/?share_source=copy_web&vd_source=7eafc622b20fbde30ea1853f07bc5a80