Arduino第二次实验—倒计时牌

作者 :alajl

日期: 2011-4-4

标题: Arduino第二次实验倒计时牌

原文链接: http://blog.csdn.net/alajl

 

准备工作:

1.Arduino 328控制板 1

2.Prototype shield 扩展板 1

3.面包板 1

4.LED-8段共阳数码管,图示如下

 
5.电阻 220 -若干
6.多彩面包线 -若干条

 

LED数码管分为共阳和共阴 2种,解释如下:

共阳数码管在应用时应将公共极 COM 接到 +5V ,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极 (COM) 的数码管。共阴数码管在应用时应将公共极 COM 接到地线 GND 上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。

 


那么 LED的数码管电路图如下:


如果你要显示 1 ,那么 bc 灯点亮;

如果你要显示 2 ,那么 abged 灯点亮;

以此类推

dp, 表示的是小数点

 

电路图连接:

我们需要 8 根连接线,分别连接 a-g dp

                 1 根线连接 , 5V LED 灯的共阳级

 

 

代码如下:

// 设置控制各段的数字 IO

int a=6;

int b=5;

int c=9;

int d=10;

int e=11;

int f=7;

int g=8;

int dp=4;

int waitTimer=1000;

 

void init_wire(){

   int j;

   for(j=4;j<=11;j++)

    digitalWrite(j,HIGH);

}

 

// 显示数字 0

void digital_0(void)

{

  init_wire();

  digitalWrite(a,LOW);

  digitalWrite(b,LOW);

  digitalWrite(c,LOW);

  digitalWrite(d,LOW);

  digitalWrite(e,LOW);

  digitalWrite(f,LOW);

}

 

// 显示数字 1

void digital_1(void)

{

  init_wire();

  digitalWrite(c,LOW);// 给数字 5 引脚低电平 点亮 c

  digitalWrite(b,LOW);// 点亮 b

}

// 显示数字 2

void digital_2(void)

{

  init_wire();

  digitalWrite(b,LOW);

  digitalWrite(a,LOW);

  digitalWrite(g,LOW);

  digitalWrite(e,LOW);

  digitalWrite(d,LOW);

}

// 显示数字 3

void digital_3(void)

{

  init_wire();

  digitalWrite(b,LOW);

  digitalWrite(a,LOW);

  digitalWrite(g,LOW);

  digitalWrite(c,LOW);

  digitalWrite(d,LOW);

}

// 显示数字 4

void digital_4(void)

{

  init_wire();

  digitalWrite(f,LOW);

  digitalWrite(g,LOW);

  digitalWrite(b,LOW);

  digitalWrite(c,LOW);

}

// 显示数字 5

void digital_5(void)

{

  init_wire();

  digitalWrite(a,LOW);

  digitalWrite(f,LOW);

  digitalWrite(g,LOW);

  digitalWrite(c,LOW);

  digitalWrite(d,LOW);

}

// 显示数字 6

void digital_6(void)

{

  init_wire();

  digitalWrite(a,LOW);  

  digitalWrite(f,LOW);

  digitalWrite(e,LOW);

  digitalWrite(g,LOW);

  digitalWrite(c,LOW);

  digitalWrite(d,LOW);

}

// 显示数字 7

void digital_7(void)

{

  init_wire();

  digitalWrite(a,LOW);

  digitalWrite(b,LOW);

  digitalWrite(c,LOW);

}

 

// 显示数字 8

void digital_8(void)

{

  init_wire();

  int i;

  for(i=5;i<=11;i++)

    digitalWrite(i,LOW);

}

 

// 显示数字 9

void digital_9(void)

{

  init_wire();

  digitalWrite(a,LOW);

  digitalWrite(b,LOW);

  digitalWrite(f,LOW);

  digitalWrite(g,LOW);

  digitalWrite(c,LOW);

  digitalWrite(d,LOW);

}

 

// 显示数字 p

void digital_p(void)

{

  init_wire();

  digitalWrite(dp,LOW);

}

 

void setup()

{

  int i;// 定义变量

  for(i=4;i<=11;i++)

    pinMode(i,OUTPUT);// 设置 4 11 引脚为输出模式

}

void loop()

{ 

  setup();

  while(1)

  {

    digital_1();// 数字 1

    delay(waitTimer);// 延时 2s

    digital_2();

    delay(waitTimer);

    digital_3();

    delay(waitTimer);

    digital_4();

    delay(waitTimer);

    digital_5();

    delay(waitTimer);

    digital_6();

    delay(waitTimer);

    digital_7();

    delay(waitTimer);

    digital_8();

    delay(waitTimer);

    digital_9();

    delay(waitTimer);

    digital_0();

    delay(waitTimer);

    digital_p();

    delay(waitTimer);

  }

}

 

 

 

 

 

 

 

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值