[2] 用Arduino实现跑马灯

只有一个LED灯似乎不是那么有吸引力,所以这期的Arduino教程,我们将在多加几个LED灯在面包板上。

需要的材料:

  • Arduino 编程软件
  • Arduino UNO卡
  • 面包板
  • 10 x 不同颜色的连接线
  • 5 x LED灯
  • 5 x 220 - 1000欧的电阻
[2] 用Arduino实现跑马灯_第1张图片

第一步 连接电路

我们只需要在上一章已经连接好的电路稍作修改就能得到一个有更多LED灯的新电路。

[2] 用Arduino实现跑马灯_第2张图片

注意连接的顺序应该是UNO卡的输出口 -> LED长引脚 -> LED短引脚 -> 电阻 -> 面包版负极竖条

[2] 用Arduino实现跑马灯_第3张图片

第二步 编辑程序

让我们来做一个类似于跑马灯似的程序,让LED灯交替点亮。
首先我们要定义出第一个和最后一个LED灯的位置以及每个灯点亮的时间。

int FirstLED = 9; // 第一个输出口            
int LastLED  = 13; // 最后一个输出口
int timer    = 300; // 每个灯点亮的时间

然后在loop()函数里,我们用两个for循环来实现跑马灯的效果。

void loop() {
  // 这里从9号灯到13号灯
  for (int thisPin = FirstLED; thisPin <= LastLED; thisPin++) {
    // 点亮
    digitalWrite(thisPin, HIGH);
    delay(timer);
    // 熄灭
    digitalWrite(thisPin, LOW);
  }

  // 这里从13号灯到9号灯
  for (int thisPin = LastLED; thisPin >= FirstLED; thisPin--) {
    // 点亮
    digitalWrite(thisPin, HIGH);
    delay(timer);
    // 熄灭
    digitalWrite(thisPin, LOW);
  }
}

完整代码:

int FirstLED = 9; // 第一个输出口            
int LastLED  = 13; // 最后一个输出口
int timer    = 300; // 每个灯点亮的时间


void setup() {
  // use a for loop to initialize each pin as an output:
  for (int thisPin = FirstLED; thisPin <= LastLED; thisPin++) {
    pinMode(thisPin, OUTPUT);
  }
}

void loop() {
  // 这里从9号灯到13号灯
  for (int thisPin = FirstLED; thisPin <= LastLED; thisPin++) {
    // 点亮
    digitalWrite(thisPin, HIGH);
    delay(timer);
    // 熄灭
    digitalWrite(thisPin, LOW);
  }

  // 这里从13号灯到9号灯
  for (int thisPin = LastLED; thisPin >= FirstLED; thisPin--) {
    // 点亮
    digitalWrite(thisPin, HIGH);
    delay(timer);
    // 熄灭
    digitalWrite(thisPin, LOW);
  }
}

第三步 上传程序

如果你细心观察就会发现其实有两盏灯的点亮时间会比其他的灯更长,这是为什么呢?

你可能感兴趣的:([2] 用Arduino实现跑马灯)