今天玩了一下跑马灯效果。跑马灯实际上是10段数码管,实物图如下:

10段数码管

其原理很简单,无非就是并行排列起来的10个LED灯,每个灯有两个引脚,总共二十个引脚。我们所要做的也仅仅是把这些灯连接到Arduino上。用一小块面包板就可以做了。

我用的跑马灯型号是SB401010K,有字的这面阵脚是负的,无字那面是正的。

自己编了两小段代码:

第一段代码实现的功能是灯从右到左,再从左到右以此亮起,循环往复。其中用到了数组。代码如下:

int pin[10]={2,3,4,5,6,7,8,9,10,11};
int step=1;

void setup()
{
  for(int i=0;i<10;i++)
  {
    pinMode(pin[i],OUTPUT);
  }
}

void loop()
{
  for(int i=0;i<10;i=i+step)
  {
    digitalWrite(pin[i],HIGH);
    delay(80);
    digitalWrite(pin[i],LOW);
    
    if(i==9)
    {
      step=-1;
    }
    else if(i==0)
    {
      step=1;
    }
  }
}

第二段代码实现的功能是奇数位灯管亮起一段时间后灭掉,同时偶数位灯管亮起一段时间后灭掉,然后循环往复。代码如下:

int pin[10]={2,3,4,5,6,7,8,9,10,11};

void setup()
{
  for(int i=0;i<10;i++)
  {
    pinMode(pin[i],OUTPUT);
  }
}

void loop()
{
  for(int i=0;i<10;i=i+2)
  {
    digitalWrite(pin[i],HIGH);
  }
  delay(200);
  for(int i=0;i<10;i=i+2)
  {
    digitalWrite(pin[i],LOW);
  }
  
  for(int i=1;i<10;i=i+2)
  {
    digitalWrite(pin[i],HIGH);
  }
  delay(200);
  for(int i=1;i<10;i=i+2)
  {
    digitalWrite(pin[i],LOW);
  } 
  
}

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注