2013年4月3日 星期三

Arduino : digital output 8 LED


Arduino的數位I/O被分成兩個部分,其中每個部分都包含有6個可用的I/O管腳,即pin2到pin7 和 pin8到pin13除了pin13上接了一個1K的電阻之外,其他各個管腳都直接連接到ATmega上。

我們可以利用一個6(8)位的digital跑馬燈,來對Arduino數字I/O的輸出功能進行驗證,以下是相應的原理圖:

電路中在每個I/O PIN上加的那個1K限流電阻阻,由於LED在電路中沒有等效電阻值,使用限流電阻可以使元件上通過的電流不至於過大,能夠起保護作用。
程式如下:




int BASE = 2;
int NUM = 8;
int index = 0;

void setup()
{
  for (int i = BASE; i < BASE + NUM; i ++) {
    pinMode(i, OUTPUT);
  }
}

void loop()
{
  for (int i = BASE; i < BASE + NUM; i ++) {
    digitalWrite(i, LOW);
  }
  digitalWrite(BASE + index, HIGH);
  index = (index + 1) % NUM;
  delay(100);
}



沒有留言:

張貼留言

Telegram +ESP32自動發報機

  Telegram   +ESP32自動發報機 這套系統是一個典型的 IoT(物聯網)架構 ,結合了遠端配置(Python)、通訊中介(MQTT)與硬體執行(ESP32)。 以下我為您拆解這兩支程式的核心運作原理: 一、 系統架構流程 Python 端 (控制台) :使用者輸入...