创客联盟网

标题: Arduino小白自学教程020——数码管 [打印本页]

作者: CCFIVE    时间: 2013-7-25 21:30
标题: Arduino小白自学教程020——数码管
其实上节的8led是为这节的而数码管铺垫的,为什么呢,这要说到数码管的构造,其实数码管就是8led围成一个“日”字的形状,只要我们对应点亮LED,那么就会显示出我们想要的数字了!
(, 下载次数: 39) (, 下载次数: 34)
我用的数码管是共阳的,还记得共阳是什么意思吗,我们上节课说过,共阴就是所有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了,是不是好有趣呢?
(, 下载次数: 30) (, 下载次数: 36)





欢迎光临 创客联盟网 (https://immaker.org/) Powered by Discuz! X3.3