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、程序运行图

五、相关课程链接

  1. 【Arduino 精选项目——七段数码管显示 1 到 10】 https://www.bilibili.com/video/BV1qDtKe3EKp/?share_source=copy_web&vd_source=7eafc622b20fbde30ea1853f07bc5a80

results matching ""

    No results matching ""