文章目录
- 所需的材料以及电路连接图
- 了解共阴数码管
- 各个引脚的作用
- 实验流程
- 实验代码
- 最终所得结果(如下视频)
所需的材料以及电路连接图
Arduino 板1个
USB下载数据线1根
面包板1个
杜邦线若干
1k 电阻 8 个
共阴极数码管1个
按照如下方式连接
了解共阴数码管
各个引脚的作用
将数码管的正面朝向我们,自上而下从左往右的引脚分别定义成 1~10,其中 3 号引脚和 8 号引脚都是公共端,用于接入电路中的阴极(也叫GND),数码管中共有8个发光二极管,分别表示成 a ~ h(h 为小数点),各个引脚所控制的发光二极管图中也标出来了:1 -> g
2 -> f
4 -> a
5 -> b
6 -> e
7 -> d
9 -> c
10 -> h
实验流程
这里采用 8 号引脚作为 GND连接端(3号引脚功能也是一样的),每个发光二极管的引脚均接入一个1k的电阻,防止电流过大烧毁二极管。
按照发光二极管从 a ~ h 的顺序分别接上arduino主板上的数字口 2 ~ 8和10。
实验代码
// 定义数码管各段对应的引脚(共阳极)// a:2, b:3, c:4, d:5, e:6, f:7, g:8, h(dp):9inta=2;intb=3;intc=4;intd=5;inte=6;intf=7;intg=8;inth=9;// 小数点dp// 新增:通用清零函数,切换数字前先熄灭所有段(电平已互换)voidclearDisplay(){digitalWrite(a,HIGH);digitalWrite(b,HIGH);digitalWrite(c,HIGH);digitalWrite(d,HIGH);digitalWrite(e,HIGH);digitalWrite(f,HIGH);digitalWrite(g,HIGH);digitalWrite(h,HIGH);}voidsetup(){// 设置2~9号引脚为输出模式for(inti=2;i<=9;i++){pinMode(i,OUTPUT);}// 初始化时先清零,避免上电乱码clearDisplay();}voidloop(){// 依次显示0-9,每个数字停留1秒(切换前先清零)clearDisplay();digital_0();delay(1000);clearDisplay();digital_1();delay(1000);clearDisplay();digital_2();delay(1000);clearDisplay();digital_3();delay(1000);clearDisplay();digital_4();delay(1000);clearDisplay();digital_5();delay(1000);clearDisplay();digital_6();delay(1000);clearDisplay();digital_7();delay(1000);clearDisplay();digital_8();delay(1000);clearDisplay();digital_9();delay(1000);}// 显示数字0(共阳极:亮=LOW,灭=HIGH,小数点灭)voiddigital_0(void){digitalWrite(a,LOW);digitalWrite(b,LOW);digitalWrite(c,LOW);digitalWrite(d,LOW);digitalWrite(e,LOW);digitalWrite(f,LOW);digitalWrite(g,HIGH);// g段灭digitalWrite(h,HIGH);// 小数点灭}// 显示数字1voiddigital_1(void){digitalWrite(a,HIGH);digitalWrite(b,LOW);digitalWrite(c,LOW);digitalWrite(d,HIGH);digitalWrite(e,HIGH);digitalWrite(f,HIGH);digitalWrite(g,HIGH);digitalWrite(h,HIGH);}// 显示数字2voiddigital_2(void){digitalWrite(a,LOW);digitalWrite(b,LOW);digitalWrite(c,HIGH);digitalWrite(d,LOW);digitalWrite(e,LOW);digitalWrite(f,HIGH);digitalWrite(g,LOW);digitalWrite(h,HIGH);}// 显示数字3voiddigital_3(void){digitalWrite(a,LOW);digitalWrite(b,LOW);digitalWrite(c,LOW);digitalWrite(d,LOW);digitalWrite(e,HIGH);digitalWrite(f,HIGH);digitalWrite(g,LOW);digitalWrite(h,HIGH);}// 显示数字4voiddigital_4(void){digitalWrite(a,HIGH);digitalWrite(b,LOW);digitalWrite(c,LOW);digitalWrite(d,HIGH);digitalWrite(e,HIGH);digitalWrite(f,LOW);digitalWrite(g,LOW);digitalWrite(h,HIGH);}// 显示数字5voiddigital_5(void){digitalWrite(a,LOW);digitalWrite(b,HIGH);digitalWrite(c,LOW);digitalWrite(d,LOW);digitalWrite(e,HIGH);digitalWrite(f,LOW);digitalWrite(g,LOW);digitalWrite(h,HIGH);}// 显示数字6voiddigital_6(void){digitalWrite(a,LOW);digitalWrite(b,HIGH);digitalWrite(c,LOW);digitalWrite(d,LOW);digitalWrite(e,LOW);digitalWrite(f,LOW);digitalWrite(g,LOW);digitalWrite(h,HIGH);}// 显示数字7voiddigital_7(void){digitalWrite(a,LOW);digitalWrite(b,LOW);digitalWrite(c,LOW);digitalWrite(d,HIGH);digitalWrite(e,HIGH);digitalWrite(f,HIGH);digitalWrite(g,HIGH);digitalWrite(h,HIGH);}// 显示数字8voiddigital_8(void){digitalWrite(a,LOW);digitalWrite(b,LOW);digitalWrite(c,LOW);digitalWrite(d,LOW);digitalWrite(e,LOW);digitalWrite(f,LOW);digitalWrite(g,LOW);digitalWrite(h,HIGH);}// 显示数字9voiddigital_9(void){digitalWrite(a,LOW);digitalWrite(b,LOW);digitalWrite(c,LOW);digitalWrite(d,LOW);digitalWrite(e,HIGH);digitalWrite(f,LOW);digitalWrite(g,LOW);digitalWrite(h,HIGH);}最终所得结果(如下视频)
QQ视频20251210172009
给arduino板通电以后,数码管会按照从 0 ~ 9 的顺序每隔1秒切换显示数字。