生命河led動畫

 #include <LedControl.h>


// LED Matrix 腳位設定

#define DATA_IN 5   // DIN

#define LOAD_PIN 6  // CS

#define CLK_PIN 7   // CLK


LedControl lc = LedControl(DATA_IN, CLK_PIN, LOAD_PIN, 1);


// 小十字架

byte crossSmall[8] = {

  B00000000,

  B00000000,

  B00011000,

  B00111100,

  B00011000,

  B00000000,

  B00000000,

  B00000000

};


// 中十字架

byte crossMedium[8] = {

  B00000000,

  B00011000,

  B01111110,

  B01111110,

  B00011000,

  B00011000,

  B00011000,

  B00000000

};


// 大十字架

byte crossLarge1[8] = {

  B00011000,

  B00011000,

  B11111111,

  B11111111,

  B00011000,

  B00011000,

  B00011000,

  B00011000

};


// 大十字架

byte crossLarge[8] = {

  B00011000,

  B00011000,

  B11111111,

  B11111111,

  B00011000,

  B01011000,

  B00011000,

  B00011000

};


// 最大十字架(滴下)

byte crossMax[8] = {

  B00011000,

  B00011000,

  B11111111,

  B11111111,

  B00011000,

  B00011000,

  B00011000,

  B01011000

};


// S 型河流出現

byte riverFirst[8] = {

  B00100000,

  B00011000,

  B00001100,

  B00000000,

  B00000000,

  B00000000,

  B00000000,

  B00000000

};


// S 型河流出現一半

byte riverHalf[8] = {

  B00100000,

  B00011000,

  B00001100,

  B00011000,

  B00110000,

  B00011000,

  B00000000,

  B00000000

};


// S 型河流全出現

byte riverFull[8] = {

  B00100000,

  B00011000,

  B00001100,

  B00011000,

  B00110000,

  B00011100,

  B00000111,

  B00000011  // 

};


void setup() {

  lc.shutdown(0, false);     // 啟動 LED 模組

  lc.setIntensity(0, 5);     // 設定亮度(0~15)

  lc.clearDisplay(0);        // 清除顯示

}


void loop() {

  displayPattern(crossSmall);

  delay(300);

  displayPattern(crossMedium);

  delay(300);

  displayPattern(crossLarge1);

  delay(700);

  displayPattern(crossLarge);

  delay(300);

  displayPattern(crossMax);

  delay(300);

  displayPattern(riverFirst);

  delay(300);

  displayPattern(riverHalf);

  delay(300);

   displayPattern(riverFull);

  delay(500);

  lc.clearDisplay(0);

  delay(500);

}


// 顯示圖案函數

void displayPattern(byte pattern[8]) {

  for (int row = 0; row < 8; row++) {

    lc.setRow(0, row, pattern[row]);

  }

}

留言