#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]);
}
}
留言
張貼留言