今天玩了一下跑马灯效果。跑马灯实际上是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); } }

