创客联盟网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

开思网在线3D打印服务
查看: 19859|回复: 0
打印 上一主题 下一主题

Arduino小白自学教程020——数码管

[复制链接]
跳转到指定楼层
楼主
发表于 2013-7-25 21:30:51 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

马上注册(开思网用户可以直接登录),结交更多创客好友,享用更多功能,让你轻松玩转创客社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
其实上节的8led是为这节的而数码管铺垫的,为什么呢,这要说到数码管的构造,其实数码管就是8led围成一个“日”字的形状,只要我们对应点亮LED,那么就会显示出我们想要的数字了!

我用的数码管是共阳的,还记得共阳是什么意思吗,我们上节课说过,共阴就是所有led的负极接在一起了,我对应控制led的正极高电平,led就会亮。这里我们要接一个1K的电阻接在共阳的那个引脚上。(如图所示)。另外我们预定俗称,把数码管上的八个led分别命名为abcdefgh。字母上对应数字,就是该管脚与小熊板子连接的引脚。例如名字叫“a”的led接到数字脚1那里,其他如此类推接好!例如我要显示“数字1”我就把 b”和“cled点亮即可!其他的led保持灭状态。数字就显示出来了!
假设硬件你已经接好了!大家要小心接好,我第一次接也接错了,因为要接7条面包线呢!
看下我们的程序,程序很简单,因为有了上节课的铺垫了。
[mw_shl_code=cpp,true]int a=1;
int b=2;
int c=3;
int d=4;
int e=5;
int f=6;
int g=7;
void setup()
{
  for(inti=1;i<8;i++)
  {
   pinMode(i,OUTPUT);
  }
}
void loop()
{
  Num0();
delay(1000);
  
  Num1();
  delay(1000);
  
  Num2();
delay(1000);
  
  Num3();
delay(1000);
  
  Num4();
delay(1000);
  
  Num5();
delay(1000);
  
  Num6();
delay(1000);
  
  Num7();
delay(1000);
  
  Num8();
delay(1000);
  
  Num9();
delay(1000);
}
void Num0()//数字0 abcdef亮,即让它们LOW
{
digitalWrite(a,LOW);//
digitalWrite(b,LOW);//
digitalWrite(c,LOW);//
digitalWrite(d,LOW);//
digitalWrite(e,LOW);//
digitalWrite(f,LOW);//
digitalWrite(g,HIGH);//
}
void Num1()//数字1 bc亮
{
digitalWrite(a,HIGH);//
  digitalWrite(b,LOW);//
digitalWrite(c,LOW);//
digitalWrite(d,HIGH);//
digitalWrite(e,HIGH);//
digitalWrite(f,HIGH);//
digitalWrite(g,HIGH);//
}
void Num2()//数字2 abge
{
digitalWrite(a,LOW);//
digitalWrite(b,LOW);//
digitalWrite(c,HIGH);//
  digitalWrite(d,LOW);//
digitalWrite(e,LOW);//
digitalWrite(f,HIGH);//
digitalWrite(g,LOW);//
}
void Num3()//数字3 abgcd亮
{
digitalWrite(a,LOW);//
digitalWrite(b,LOW);//
digitalWrite(c,LOW);//
digitalWrite(d,LOW);//
digitalWrite(e,HIGH);//
  digitalWrite(f,HIGH);//
digitalWrite(g,LOW);//
}
void Num4()//数字4 fgbc
{
digitalWrite(a,HIGH);//
digitalWrite(b,LOW);//
digitalWrite(c,LOW);//
digitalWrite(d,HIGH);//
digitalWrite(e,HIGH);//
digitalWrite(f,LOW);//
digitalWrite(g,LOW);//
}
void Num5()//数字5 afgcd
{
digitalWrite(a,LOW);//
digitalWrite(b,HIGH);//
digitalWrite(c,LOW);//
digitalWrite(d,LOW);//
digitalWrite(e,HIGH);//
digitalWrite(f,LOW);//
digitalWrite(g,LOW);//
}
void Num6()//数字6 afedcg
{
digitalWrite(a,LOW);//
  digitalWrite(b,HIGH);//
digitalWrite(c,LOW);//
digitalWrite(d,LOW);//
digitalWrite(e,LOW);//
digitalWrite(f,LOW);//
digitalWrite(g,LOW);//
}
void Num7()//数字7 abc
{
digitalWrite(a,LOW);//
digitalWrite(b,LOW);//
digitalWrite(c,LOW);//
digitalWrite(d,HIGH);//
digitalWrite(e,HIGH);//
digitalWrite(f,HIGH);//
digitalWrite(g,HIGH);//
}
void Num8()//数字8 abcdefg
{
digitalWrite(a,LOW);//
digitalWrite(b,LOW);//
digitalWrite(c,LOW);//
digitalWrite(d,LOW);//
digitalWrite(e,LOW);//
digitalWrite(f,LOW);//
digitalWrite(g,LOW);//
}
void Num9()//数字9
{
digitalWrite(a,LOW);//
digitalWrite(b,LOW);//
digitalWrite(c,LOW);//
digitalWrite(d,LOW);//
digitalWrite(e,HIGH);//
digitalWrite(f,LOW);//
digitalWrite(g,LOW);//
}[/mw_shl_code]

把程序下载到AI小熊板上就可以看到 数字0显示到数字9了,是不是好有趣呢?

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|创客联盟网  

GMT+8, 2024-9-24 17:14 , Processed in 0.013630 second(s), 9 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2024 www.iCAx.org

快速回复 返回顶部 返回列表