有星星閃爍的聖誕樹 + Happy New Year 8X8 LED矩陣 (MAX 7219)

最後編輯:2014-12-25 建立:2014-12-25 歷史紀錄

 

章國俊小程式,可以顯示有星星閃爍的聖誕樹和 Happy New Year... 拿來應景一下了

跟貪食蛇一樣用這個 library

https://code.google.com/p/arudino-maxmatrix-library/

 

*

https://www.youtube.com/watch?v=YhTBy7RoQ9k

 

  • #include <MaxMatrix.h>
  • #include <avr/pgmspace.h>
  • int data = 5;
  • int load = 3;
  • int clock = 4;
  • int maxInUse = 1; //change this variable to set how many MAX7219's you'll use
  • MaxMatrix m(data, load, clock, maxInUse);
  • void setup() {
  • m.init();
  • }
  • void loop() {
  • m.clear();
  • drawStar();
  • drawTree();
  • delay(300);
  • }
  • void drawStar() {
  • m.setIntensity(15);
  • m.setDot(1, 1, HIGH);
  • m.setDot(0, 2, HIGH);
  • m.setDot(4, 0, HIGH);
  • m.setDot(0, 7, HIGH);
  • }
  • void drawTree() {
  • m.setIntensity(1);
  • byte CH_A[] = {
  • 8, 8,
  • B00100000,
  • B01110000,
  • B11111000,
  • B01110000,
  • B11111000,
  • B11111100,
  • B00100000,
  • B00100000,
  • };
  • m.writeSprite(0, 0, CH_A);
  • }

 

 

新年快樂

 

  • #include <MaxMatrix.h>
  • #include <avr/pgmspace.h>
  • PROGMEM prog_uchar CH[] = {
  • 8, 8, B0000000, B0000000, B0000000, B0000000, B0000000, // space
  • 1, 8, B1011111, B0000000, B0000000, B0000000, B0000000, // !
  • 3, 8, B0000011, B0000000, B0000011, B0000000, B0000000, // "
  • 5, 8, B0010100, B0111110, B0010100, B0111110, B0010100, // #
  • 4, 8, B0100100, B1101010, B0101011, B0010010, B0000000, // $
  • 5, 8, B1100011, B0010011, B0001000, B1100100, B1100011, // %
  • 5, 8, B0110110, B1001001, B1010110, B0100000, B1010000, // &
  • 1, 8, B0000011, B0000000, B0000000, B0000000, B0000000, // '
  • 3, 8, B0011100, B0100010, B1000001, B0000000, B0000000, // (
  • 3, 8, B1000001, B0100010, B0011100, B0000000, B0000000, // )
  • 5, 8, B0101000, B0011000, B0001110, B0011000, B0101000, // *
  • 5, 8, B0001000, B0001000, B0111110, B0001000, B0001000, // +
  • 2, 8, B10110000, B1110000, B0000000, B0000000, B0000000, // ,
  • 4, 8, B0001000, B0001000, B0001000, B0001000, B0000000, // -
  • 2, 8, B1100000, B1100000, B0000000, B0000000, B0000000, // .
  • 4, 8, B1100000, B0011000, B0000110, B0000001, B0000000, // /
  • 4, 8, B0111110, B1000001, B1000001, B0111110, B0000000, // 0
  • 3, 8, B1000010, B1111111, B1000000, B0000000, B0000000, // 1
  • 4, 8, B1100010, B1010001, B1001001, B1000110, B0000000, // 2
  • 4, 8, B0100010, B1000001, B1001001, B0110110, B0000000, // 3
  • 4, 8, B0011000, B0010100, B0010010, B1111111, B0000000, // 4
  • 4, 8, B0100111, B1000101, B1000101, B0111001, B0000000, // 5
  • 4, 8, B0111110, B1001001, B1001001, B0110000, B0000000, // 6
  • 4, 8, B1100001, B0010001, B0001001, B0000111, B0000000, // 7
  • 4, 8, B0110110, B1001001, B1001001, B0110110, B0000000, // 8
  • 4, 8, B0000110, B1001001, B1001001, B0111110, B0000000, // 9
  • 2, 8, B01010000, B0000000, B0000000, B0000000, B0000000, // :
  • 2, 8, B10000000, B01010000, B0000000, B0000000, B0000000, // ;
  • 3, 8, B0010000, B0101000, B1000100, B0000000, B0000000, // <
  • 3, 8, B0010100, B0010100, B0010100, B0000000, B0000000, // =
  • 3, 8, B1000100, B0101000, B0010000, B0000000, B0000000, // >
  • 4, 8, B0000010, B1011001, B0001001, B0000110, B0000000, // ?
  • 5, 8, B0111110, B1001001, B1010101, B1011101, B0001110, // @
  • 8, 8, B1111110, B0010001, B0010001, B1111110, B0000000, // A
  • 4, 8, B1111111, B1001001, B1001001, B0110110, B0000000, // B
  • 4, 8, B0111110, B1000001, B1000001, B0100010, B0000000, // C
  • 4, 8, B1111111, B1000001, B1000001, B0111110, B0000000, // D
  • 8, 8, B1111111, B1001001, B1001001, B1000001, B0000000, // E
  • 4, 8, B1111111, B0001001, B0001001, B0000001, B0000000, // F
  • 4, 8, B0111110, B1000001, B1001001, B1111010, B0000000, // G
  • 8, 8, B1111111, B0001000, B0001000, B1111111, B0000000, // H
  • 3, 8, B1000001, B1111111, B1000001, B0000000, B0000000, // I
  • 4, 8, B0110000, B1000000, B1000001, B0111111, B0000000, // J
  • 4, 8, B1111111, B0001000, B0010100, B1100011, B0000000, // K
  • 4, 8, B1111111, B1000000, B1000000, B1000000, B0000000, // L
  • 5, 8, B1111111, B0000010, B0001100, B0000010, B1111111, // M
  • 8, 8, B1111111, B0000100, B0001000, B0010000, B1111111, // N
  • 4, 8, B0111110, B1000001, B1000001, B0111110, B0000000, // O
  • 8, 8, B1111111, B0001001, B0001001, B0000110, B0000000, // P
  • 4, 8, B0111110, B1000001, B1000001, B10111110, B0000000, // Q
  • 4, 8, B1111111, B0001001, B0001001, B1110110, B0000000, // R
  • 8, 8, B1000110, B1001001, B1001001, B0110010, B0000000, // S
  • 5, 8, B0000001, B0000001, B1111111, B0000001, B0000001, // T
  • 4, 8, B0111111, B1000000, B1000000, B0111111, B0000000, // U
  • 5, 8, B0001111, B0110000, B1000000, B0110000, B0001111, // V
  • 5, 8, B0111111, B1000000, B0111000, B1000000, B0111111, // W
  • 5, 8, B1100011, B0010100, B0001000, B0010100, B1100011, // X
  • 8, 8, B0000111, B0001000, B1110000, B0001000, B0000111, // Y
  • 4, 8, B1100001, B1010001, B1001001, B1000111, B0000000, // Z
  • 2, 8, B1111111, B1000001, B0000000, B0000000, B0000000, // [
  • 4, 8, B0000001, B0000110, B0011000, B1100000, B0000000, // backslash
  • 2, 8, B1000001, B1111111, B0000000, B0000000, B0000000, // ]
  • 3, 8, B0000010, B0000001, B0000010, B0000000, B0000000, // hat
  • 4, 8, B1000000, B1000000, B1000000, B1000000, B0000000, // _
  • 2, 8, B0000001, B0000010, B0000000, B0000000, B0000000, // `
  • 4, 8, B0100000, B1010100, B1010100, B1111000, B0000000, // a
  • 4, 8, B1111111, B1000100, B1000100, B0111000, B0000000, // b
  • 4, 8, B0111000, B1000100, B1000100, B0101000, B0000000, // c
  • 4, 8, B0111000, B1000100, B1000100, B1111111, B0000000, // d
  • 4, 8, B0111000, B1010100, B1010100, B0011000, B0000000, // e
  • 3, 8, B0000100, B1111110, B0000101, B0000000, B0000000, // f
  • 4, 8, B10011000, B10100100, B10100100, B01111000, B0000000, // g
  • 4, 8, B1111111, B0000100, B0000100, B1111000, B0000000, // h
  • 3, 8, B1000100, B1111101, B1000000, B0000000, B0000000, // i
  • 4, 8, B1000000, B10000000, B10000100, B1111101, B0000000, // j
  • 4, 8, B1111111, B0010000, B0101000, B1000100, B0000000, // k
  • 3, 8, B1000001, B1111111, B1000000, B0000000, B0000000, // l
  • 5, 8, B1111100, B0000100, B1111100, B0000100, B1111000, // m
  • 4, 8, B1111100, B0000100, B0000100, B1111000, B0000000, // n
  • 4, 8, B0111000, B1000100, B1000100, B0111000, B0000000, // o
  • 4, 8, B11111100, B0100100, B0100100, B0011000, B0000000, // p
  • 4, 8, B0011000, B0100100, B0100100, B11111100, B0000000, // q
  • 4, 8, B1111100, B0001000, B0000100, B0000100, B0000000, // r
  • 4, 8, B1001000, B1010100, B1010100, B0100100, B0000000, // s
  • 3, 8, B0000100, B0111111, B1000100, B0000000, B0000000, // t
  • 4, 8, B0111100, B1000000, B1000000, B1111100, B0000000, // u
  • 5, 8, B0011100, B0100000, B1000000, B0100000, B0011100, // v
  • 5, 8, B0111100, B1000000, B0111100, B1000000, B0111100, // w
  • 5, 8, B1000100, B0101000, B0010000, B0101000, B1000100, // x
  • 4, 8, B10011100, B10100000, B10100000, B1111100, B0000000, // y
  • 3, 8, B1100100, B1010100, B1001100, B0000000, B0000000, // z
  • 3, 8, B0001000, B0110110, B1000001, B0000000, B0000000, // {
  • 1, 8, B1111111, B0000000, B0000000, B0000000, B0000000, // |
  • 3, 8, B1000001, B0110110, B0001000, B0000000, B0000000, // }
  • 4, 8, B0001000, B0000100, B0001000, B0000100, B0000000, // ~
  • };
  • int data = 5;
  • int load = 3;
  • int clock = 4;
  • int maxInUse = 1;
  • MaxMatrix m(data, load, clock, maxInUse);
  • byte buffer[10];
  • void setup()
  • {
  • delay(3000);
  • m.init();
  • fadeInMessage("HAPPYNEWYEAR ");
  • }
  • void loop()
  • {
  • drawArrow();
  • printStringWithShift("2015 ", 150);
  • delay(200);
  • }
  • void drawArrow() {
  • m.setIntensity(1);
  • byte CH_A[] = {
  • 16, 8,
  • B00000000,
  • B00000000,
  • B00000000,
  • B00000000,
  • B00001000,
  • B00011100,
  • B00111110,
  • B01111111,
  • B00011100,
  • B00011100,
  • B00011100,
  • B00011100,
  • B00011100,
  • B00011100,
  • B00011100
  • };
  • m.writeSprite(0, 0, CH_A);
  • }
  • void fadeInMessage(char* s) {
  • for (int i = 0; i < strlen(s); i++) {
  • printString(&s[i]);
  • for (int i = 1; i <= 15 ; i++) {
  • m.setIntensity(i);
  • delay(40 - i * 2);
  • }
  • }
  • }
  • void printString(char* s)
  • {
  • int col = 0;
  • while (*s != 0)
  • {
  • if (*s < 32) continue;
  • char c = *s - 32;
  • memcpy_P(buffer, CH + 7 * c, 7);
  • m.writeSprite(col + 2, 0, buffer);
  • m.setColumn(col + 2 + buffer[0], 0);
  • col += buffer[0] + 1;
  • s++;
  • }
  • }
  • void printCharWithShift(char c, int shift_speed)
  • {
  • if (c < 32) return;
  • c -= 32;
  • memcpy_P(buffer, CH + 7 * c, 7);
  • m.writeSprite(32, 0, buffer);
  • m.setColumn(32 + buffer[0], 0);
  • for (int i = 0; i < buffer[0] + 1; i++)
  • {
  • delay(shift_speed);
  • m.shiftLeft(false, false);
  • }
  • }
  • void printStringWithShift(char * s, int shift_speed)
  • {
  • while (*s != 0)
  • {
  • printCharWithShift(*s, shift_speed);
  • s++;
  • }
  • }