程式碼
#define MAX_NUM 12 #define ROWS 7 #define COLS 5 // Define 5x7 LED Row & Column Pin const int row[ROWS] = {7, 6, 5, 4, 3, 2, 1}; const int col[COLS] = {12, 11, 10, 9, 8}; // Matrix LED // C4 C3 C2 C1 C0 // O O O O O R6 // O O O O O R5 // O O O O O R4 // O O O O O R3 // O O O O O R2 // O O O O O R1 // O O O O O R0 const char matrix[MAX_NUM][ROWS] = { {0x1F, 0x11, 0x11, 0x11, 0x11, 0x11, 0x1F}, // Number: 0 {0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04}, // Number: 1 {0x1F, 0x01, 0x01, 0x1F, 0x10, 0x10, 0x1F}, // Number: 2 {0x1F, 0x01, 0x01, 0x1F, 0x01, 0x01, 0x1F}, // Number: 3 {0x11, 0x11, 0x11, 0x1F, 0x01, 0x01, 0x01}, // Number: 4 {0x1F, 0x10, 0x10, 0x1F, 0x01, 0x01, 0x1F}, // Number: 5 {0x1F, 0x10, 0x10, 0x1F, 0x11, 0x11, 0x1F}, // Number: 6 {0x1F, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01}, // Number: 7 {0x1F, 0x11, 0x11, 0x1F, 0x11, 0x11, 0x1F}, // Number: 8 {0x1F, 0x11, 0x11, 0x1F, 0x01, 0x01, 0x1F}, // Number: 9 {0x00, 0x15, 0x0A, 0x1F, 0x0E, 0x15, 0x00}, // Number: * {0x00, 0x0A, 0x1F, 0x0A, 0x1F, 0x0A, 0x00}, // Number: # }; int gNum; void clearLEDs(void) { for (int r = 0; r < ROWS; r++) { digitalWrite(row[r], LOW); } for (int c = 0; c < COLS; c++) { digitalWrite(col[c], HIGH); } } void writeNum(int num) { gNum = num; } void refreshMatrix(void) { int r, c, onOff; char mask; for (r = 0; r < ROWS; r++) { digitalWrite(row[r], HIGH); mask = 0x10; for (c = 0; c < COLS; c++, mask >>= 1) { onOff = matrix[gNum][r] & mask; if (onOff) digitalWrite(col[c], LOW); delayMicroseconds(50); digitalWrite(col[c], HIGH); } digitalWrite(row[r], LOW); } } void setup() { for (int r = 0; r < ROWS; r++) { pinMode(row[r], OUTPUT); } for (int c = 0; c < COLS; c++) { pinMode(col[c], OUTPUT); } clearLEDs(); writeNum(0); } void loop() { // Refresh 5x7 Matrix LEDs for (int i = 0; i < 1000; i++) refreshMatrix(); // Display next number if (++gNum >= MAX_NUM) { gNum = 0; } }
執行結果
參考資料
標準 Fritzing 還沒有點矩陣 LED (Matrix LED) 的料件,可以到這邊搜尋一下(http://code.google.com/p/fritzing/issues/detail?id=875),這裏有很多使用者自建的(User Created) Fritzing 料件。
回覆刪除我剛找到一個 5x7 LED Matrix:
http://fritzing.googlecode.com/issues/attachment?aid=7098017370881413167&name=5x7+LED+matrix.fzpz&token=85e5c6bc3d4e899d623efc4fd7f89c8c
雖然外觀還有待加強,不過應該可以用。
謝謝
回覆刪除剛發現原來 Fritzing 軟體本身就可以編輯已經存在的元件,也可以自己定義新元件。
Fritzing 怎麼定義新元件?寫一篇教一下吧。
回覆刪除說真得,Fritzing 還不是真得很熟,有嘗試做一個元件出來,但仍怪怪的,因我是使用 Word 畫好圖後,匯入擷圖發現 Pin 腳無法對到麵包板的孔,若有需要的話,在http://fritzing.org/learning/tutorials/creating-custom-parts/ 有介紹。等研究出來後,我再寫一篇分享心得(還談不上什麼教學,只是心得分享而已)
回覆刪除作者已經移除這則留言。
回覆刪除