#include <LedControl.h>
LedControl lc = LedControl(5, 7, 6, 1);
// 小綠人走路動畫(每 8 個 byte 是一個動作)
byte gMan[] = {
// 動作1
B00000000,B11010001,B11110111,B00111100,B00011000,B00000101,B00000011,B00000000,
// 動作2
B00000000,B11011011,B11110110,B00111100,B00011000,B00010100,B00001011,B00000000,
// 動作3
B00001000,B11010010,B11111010,B00111100,B00010100,B00010010,B00001011,B00000000,
// 動作4
B11001010,B11110010,B00111100,B00101000,B00100100,B00010010,B00000011,B00000000,
// 動作5
B11001001,B11110001,B00111111,B00011100,B00010100,B00001010,B00000111,B00000000,
// 動作6
B11001001,B11110011,B00111100,B00011100,B00010010,B00001011,B00000100,B00000000,
// 動作7
B11000000,B11111010,B00111101,B00011110,B00010011,B00001000,B00000000,B00000000,
// 動作8
B00000000,B11000000,B11110000,B00111110,B00011010,B00000111,B00000000,B00000000,
// 停止
B00000000,B00011001,B00100011,B11111110,B11111110,B00100011,B00011001,B00000000
};
void setup() {
lc.shutdown(0, false); // 啟動顯示
lc.setIntensity(0, 8); // 設定亮度
lc.clearDisplay(0); // 清除顯示
}
void loop() {
// 播放走路動畫
for (int frame = 0; frame < 9; frame++) { // 共有 9 個動作
showFrame(frame);
delay(400); // 每個動作停留 400ms
}
}
// 顯示某一個動作(frame)
void showFrame(int frame) {
for (int row = 0; row < 8; row++) {
lc.setRow(0, row, gMan[frame * 8 + row]);
}
}
留言
張貼留言