程式碼
#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/ 有介紹。等研究出來後,我再寫一篇分享心得(還談不上什麼教學,只是心得分享而已)
回覆刪除作者已經移除這則留言。
回覆刪除