[2] 用Arduino實現(xiàn)跑馬燈

只有一個LED燈似乎不是那么有吸引力,所以這期的Arduino教程,我們將在多加幾個LED燈在面包板上。

需要的材料:

  • Arduino 編程軟件
  • Arduino UNO卡
  • 面包板
  • 10 x 不同顏色的連接線
  • 5 x LED燈
  • 5 x 220 - 1000歐的電阻

第一步 連接電路

我們只需要在上一章已經(jīng)連接好的電路稍作修改就能得到一個有更多LED燈的新電路。

注意連接的順序應(yīng)該是UNO卡的輸出口 -> LED長引腳 -> LED短引腳 -> 電阻 -> 面包版負(fù)極豎條。

第二步 編輯程序

讓我們來做一個類似于跑馬燈似的程序,讓LED燈交替點(diǎn)亮。
首先我們要定義出第一個和最后一個LED燈的位置以及每個燈點(diǎn)亮的時間。

int FirstLED = 9; // 第一個輸出口            
int LastLED  = 13; // 最后一個輸出口
int timer    = 300; // 每個燈點(diǎn)亮的時間

然后在loop()函數(shù)里,我們用兩個for循環(huán)來實現(xiàn)跑馬燈的效果。

void loop() {
  // 這里從9號燈到13號燈
  for (int thisPin = FirstLED; thisPin <= LastLED; thisPin++) {
    // 點(diǎn)亮
    digitalWrite(thisPin, HIGH);
    delay(timer);
    // 熄滅
    digitalWrite(thisPin, LOW);
  }

  // 這里從13號燈到9號燈
  for (int thisPin = LastLED; thisPin >= FirstLED; thisPin--) {
    // 點(diǎn)亮
    digitalWrite(thisPin, HIGH);
    delay(timer);
    // 熄滅
    digitalWrite(thisPin, LOW);
  }
}

完整代碼:

int FirstLED = 9; // 第一個輸出口            
int LastLED  = 13; // 最后一個輸出口
int timer    = 300; // 每個燈點(diǎn)亮的時間


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++) {
    // 點(diǎn)亮
    digitalWrite(thisPin, HIGH);
    delay(timer);
    // 熄滅
    digitalWrite(thisPin, LOW);
  }

  // 這里從13號燈到9號燈
  for (int thisPin = LastLED; thisPin >= FirstLED; thisPin--) {
    // 點(diǎn)亮
    digitalWrite(thisPin, HIGH);
    delay(timer);
    // 熄滅
    digitalWrite(thisPin, LOW);
  }
}

第三步 上傳程序

如果你細(xì)心觀察就會發(fā)現(xiàn)其實有兩盞燈的點(diǎn)亮?xí)r間會比其他的燈更長,這是為什么呢?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容