Arduino UNO R3自学笔记15 之 Arduino如何驱动数码管?

注意:学习和写作过程中,部分资料搜集于互联网,如有侵权请联系删除。

前言:学习使用数码管。

1.数码管介绍

        数码管的一种是半导体发光器件,数码管可分为七段数码管和八段数码管,区别在于八段数码管比七段数码管多一个用于显示小数点的发光二极管单元DP(decimal point),其基本单元是发光二极管。

也就是说数码管是有多个二极管封装成的一种器件,有共阴极数码管和共阳级数码管两种,其原理图如下:

2.数码管驱动原理

        数码管有共阴极数码管和共阳级数码管两种,其中区别在于:

        共阴极数码管:封装的二极管的阴极接在一起,接在GND,只要在在对应的二极管的阳极接上高电平即可导通,数码管相应位置亮起。

        共阳级数码管:封装的二极管的阳极接在一起,接到VCC,只要在在对应的二极管的阴极接上低电平即可导通,数码管相应位置亮起。

3.实验内容及实物连接图

        实验内容:采用共阳数码管显示数字0到9。

        实物连接图:

4.驱动代码

int num=0;
void seg(int num_show);
void setup() {
  // put your setup code here, to run once:
  for(int i=4;i<12;i++)pinMode(i,OUTPUT);
  Serial.begin(9600);
}

void loop() 
{
seg(num);
num=num+1;
delay(1000);
Serial.println(num);
if(num==6)
{
  num=0;
  digitalWrite(6, HIGH);delay(800);
  digitalWrite(6, LOW);delay(100);
  digitalWrite(6, HIGH);delay(800);
  digitalWrite(6, LOW);delay(100);
  digitalWrite(6, HIGH);delay(800);
}
}
void seg(int num_show)
{
 switch(num_show)
 {
  case 0 : num_show_0();  break;
  case 1 : num_show_1();  break;
  case 2 : num_show_2();  break;
  case 3 : num_show_3();  break;
  case 4 : num_show_4();  break;
  case 5 : num_show_5();  break;

 }
}
void num_show_0()
{
 digitalWrite(4, LOW);
 digitalWrite(5, LOW);
 digitalWrite(6, LOW);
 digitalWrite(7, LOW);
 digitalWrite(8, LOW);
 digitalWrite(9, LOW);
 digitalWrite(10, HIGH);
 digitalWrite(11, LOW);
}
void num_show_1()
{ 
 digitalWrite(4, HIGH);
 digitalWrite(5, LOW);
 digitalWrite(6, LOW);
 digitalWrite(7, LOW);
 digitalWrite(8, HIGH);
 digitalWrite(9, HIGH);
 digitalWrite(10, HIGH);
 digitalWrite(11, HIGH);
}
void num_show_2()
{
 digitalWrite(4, LOW);
 digitalWrite(5, LOW);
 digitalWrite(6, LOW);
 digitalWrite(7, HIGH);
 digitalWrite(8, LOW);
 digitalWrite(9, LOW);
 digitalWrite(10, LOW);
 digitalWrite(11, HIGH);
}
void num_show_3()
{
 digitalWrite(4, LOW);
 digitalWrite(5, LOW);
 digitalWrite(6, LOW);
 digitalWrite(7, LOW);
 digitalWrite(8, LOW);
 digitalWrite(9, HIGH);
 digitalWrite(10, LOW);
 digitalWrite(11, HIGH);
}
void num_show_4()
{
 digitalWrite(4, HIGH);
 digitalWrite(5, LOW);
 digitalWrite(6, LOW);
 digitalWrite(7, LOW);
 digitalWrite(8, HIGH);
 digitalWrite(9, HIGH);
 digitalWrite(10, LOW);
 digitalWrite(11, LOW);
}
void num_show_5()
{
 digitalWrite(4, LOW);
 digitalWrite(5, HIGH);
 digitalWrite(6, LOW);
 digitalWrite(7, LOW);
 digitalWrite(8, LOW);
 digitalWrite(9, HIGH);
 digitalWrite(10, LOW);
 digitalWrite(11, LOW);
}

5.仿真视频

数码管测试视频

上一篇:Arduino UNO R3自学笔记14 之 Arduino使用HC-SR04模块如何测量距离?

下一篇:Arduino UNO R3自学笔记16 之 Arduino的定时器介绍及应用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ω-QAQ-Ω

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值