Advertisement
tiodocomputador

DISPLAY 8X8

Oct 26th, 2016
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 7.35 KB | None | 0 0
  1.  
  2.   // maxmatrix-disp-scroll-text-7219
  3.   // based on // https://code.google.com/p/arudino-maxmatrix-library/wiki/Example_Di...
  4. #include <MaxMatrix.h> #include <avr/pgmspace.h>
  5. #define maxDisplays 3 // Number of MAX7219's in use.
  6.   byte Buf7219[7]; // "width,height,data[5]" single character buffer.
  7. const int data = 11;
  8. // DIN or MOSI
  9. const int load = 10;
  10. // CS
  11. const int clock = 13;
  12. // SCK
  13. MaxMatrix m(data, load, clock, maxDisplays);
  14. // Data array is stored in program memory (see memcpy_P for access).
  15. // Parameters are width, height, character data... // There is a speed improvement for characters with height 8 bits see lib.
  16. PROGMEM const unsigned char CH[] =
  17. {
  18.   3, 8, B0000000, B0000000, B0000000, B0000000, B0000000, // space
  19.   1, 8, B1011111, B0000000, B0000000, B0000000, B0000000, // !
  20.   3, 8, B0000011, B0000000, B0000011, B0000000, B0000000, // "
  21.   5, 8, B0010100, B0111110, B0010100, B0111110, B0010100, // #
  22.   4, 8, B0100100, B1101010, B0101011, B0010010, B0000000, // $
  23.   5, 8, B1100011, B0010011, B0001000, B1100100, B1100011, // %
  24.   5, 8, B0110110, B1001001, B1010110, B0100000, B1010000, // &
  25.   1, 8, B0000011, B0000000, B0000000, B0000000, B0000000, // '
  26.   3, 8, B0011100, B0100010, B1000001, B0000000, B0000000, // (
  27.   3, 8, B1000001, B0100010, B0011100, B0000000, B0000000, // )
  28.   5, 8, B0101000, B0011000, B0001110, B0011000, B0101000, // *
  29.   5, 8, B0001000, B0001000, B0111110, B0001000, B0001000, // +
  30.   2, 8, B10110000, B1110000, B0000000, B0000000, B0000000, // ,
  31.   4, 8, B0001000, B0001000, B0001000, B0001000, B0000000, // -
  32.   2, 8, B1100000, B1100000, B0000000, B0000000, B0000000, // .
  33.   4, 8, B1100000, B0011000, B0000110, B0000001, B0000000, // /
  34.   4, 8, B0111110, B1000001, B1000001, B0111110, B0000000, // 0
  35.   3, 8, B1000010, B1111111, B1000000, B0000000, B0000000, // 1
  36.   4, 8, B1100010, B1010001, B1001001, B1000110, B0000000, // 2
  37.   4, 8, B0100010, B1000001, B1001001, B0110110, B0000000, // 3
  38.   4, 8, B0011000, B0010100, B0010010, B1111111, B0000000, // 4
  39.   4, 8, B0100111, B1000101, B1000101, B0111001, B0000000, // 5
  40.   4, 8, B0111110, B1001001, B1001001, B0110000, B0000000, // 6
  41.   4, 8, B1100001, B0010001, B0001001, B0000111, B0000000, // 7
  42.   4, 8, B0110110, B1001001, B1001001, B0110110, B0000000, // 8
  43.   4, 8, B0000110, B1001001, B1001001, B0111110, B0000000, // 9
  44.   2, 8, B01010000, B0000000, B0000000, B0000000, B0000000, // :
  45.   2, 8, B10000000, B01010000, B0000000, B0000000, B0000000, // ;
  46.   3, 8, B0010000, B0101000, B1000100, B0000000, B0000000, // /p>
  47.   3, 8, B0010100, B0010100, B0010100, B0000000, B0000000, // =
  48.   3, 8, B1000100, B0101000, B0010000, B0000000, B0000000, // >
  49.   4, 8, B0000010, B1011001, B0001001, B0000110, B0000000, // ?
  50.   5, 8, B0111110, B1001001, B1010101, B1011101, B0001110, // @
  51.   4, 8, B1111110, B0010001, B0010001, B1111110, B0000000, // A
  52.   4, 8, B1111111, B1001001, B1001001, B0110110, B0000000, // B
  53.   4, 8, B0111110, B1000001, B1000001, B0100010, B0000000, // C
  54.   4, 8, B1111111, B1000001, B1000001, B0111110, B0000000, // D
  55.   4, 8, B1111111, B1001001, B1001001, B1000001, B0000000, // E
  56.   4, 8, B1111111, B0001001, B0001001, B0000001, B0000000, // F
  57.   4, 8, B0111110, B1000001, B1001001, B1111010, B0000000, // G
  58.   4, 8, B1111111, B0001000, B0001000, B1111111, B0000000, // H
  59.   3, 8, B1000001, B1111111, B1000001, B0000000, B0000000, // I
  60.   4, 8, B0110000, B1000000, B1000001, B0111111, B0000000, // J
  61.   4, 8, B1111111, B0001000, B0010100, B1100011, B0000000, // K
  62.   4, 8, B1111111, B1000000, B1000000, B1000000, B0000000, // L
  63.   5, 8, B1111111, B0000010, B0001100, B0000010, B1111111, // M
  64.   5, 8, B1111111, B0000100, B0001000, B0010000, B1111111, // N
  65.   4, 8, B0111110, B1000001, B1000001, B0111110, B0000000, // O
  66.   4, 8, B1111111, B0001001, B0001001, B0000110, B0000000, // P
  67.   4, 8, B0111110, B1000001, B1000001, B10111110, B0000000, // Q
  68.   4, 8, B1111111, B0001001, B0001001, B1110110, B0000000, // R
  69.   4, 8, B1000110, B1001001, B1001001, B0110010, B0000000, // S
  70.   5, 8, B0000001, B0000001, B1111111, B0000001, B0000001, // T
  71.   4, 8, B0111111, B1000000, B1000000, B0111111, B0000000, // U
  72.   5, 8, B0001111, B0110000, B1000000, B0110000, B0001111, // V
  73.   5, 8, B0111111, B1000000, B0111000, B1000000, B0111111, // W
  74.   5, 8, B1100011, B0010100, B0001000, B0010100, B1100011, // X
  75.   5, 8, B0000111, B0001000, B1110000, B0001000, B0000111, // Y
  76.   4, 8, B1100001, B1010001, B1001001, B1000111, B0000000, // Z
  77.   2, 8, B1111111, B1000001, B0000000, B0000000, B0000000, // [
  78.   4, 8, B0000001, B0000110, B0011000, B1100000, B0000000, // backslash
  79.   2, 8, B1000001, B1111111, B0000000, B0000000, B0000000, // ]
  80.   3, 8, B0000010, B0000001, B0000010, B0000000, B0000000, // hat
  81.   4, 8, B1000000, B1000000, B1000000, B1000000, B0000000, // _
  82.   2, 8, B0000001, B0000010, B0000000, B0000000, B0000000, // `
  83.   4, 8, B0100000, B1010100, B1010100, B1111000, B0000000, // a
  84.   4, 8, B1111111, B1000100, B1000100, B0111000, B0000000, // b
  85.   4, 8, B0111000, B1000100, B1000100, B0000000, B0000000, // c // JFM MOD.
  86.   4, 8, B0111000, B1000100, B1000100, B1111111, B0000000, // d
  87.   4, 8, B0111000, B1010100, B1010100, B0011000, B0000000, // e
  88.   3, 8, B0000100, B1111110, B0000101, B0000000, B0000000, // f
  89.   4, 8, B10011000, B10100100, B10100100, B01111000, B0000000, // g
  90.   4, 8, B1111111, B0000100, B0000100, B1111000, B0000000, // h
  91.   3, 8, B1000100, B1111101, B1000000, B0000000, B0000000, // i
  92.   4, 8, B1000000, B10000000, B10000100, B1111101, B0000000, // j
  93.   4, 8, B1111111, B0010000, B0101000, B1000100, B0000000, // k
  94.   3, 8, B1000001, B1111111, B1000000, B0000000, B0000000, // l
  95.   5, 8, B1111100, B0000100, B1111100, B0000100, B1111000, // m
  96.   4, 8, B1111100, B0000100, B0000100, B1111000, B0000000, // n
  97.   4, 8, B0111000, B1000100, B1000100, B0111000, B0000000, // o
  98.   4, 8, B11111100, B0100100, B0100100, B0011000, B0000000, // p
  99.   4, 8, B0011000, B0100100, B0100100, B11111100, B0000000, // q
  100.   4, 8, B1111100, B0001000, B0000100, B0000100, B0000000, // r
  101.   4, 8, B1001000, B1010100, B1010100, B0100100, B0000000, // s
  102.   3, 8, B0000100, B0111111, B1000100, B0000000, B0000000, // t
  103.   4, 8, B0111100, B1000000, B1000000, B1111100, B0000000, // u
  104.   5, 8, B0011100, B0100000, B1000000, B0100000, B0011100, // v
  105.   5, 8, B0111100, B1000000, B0111100, B1000000, B0111100, // w
  106.   5, 8, B1000100, B0101000, B0010000, B0101000, B1000100, // x
  107.   4, 8, B10011100, B10100000, B10100000, B1111100, B0000000, // y
  108.   3, 8, B1100100, B1010100, B1001100, B0000000, B0000000, // z
  109.   3, 8, B0001000, B0110110, B1000001, B0000000, B0000000, // {
  110.   1, 8, B1111111, B0000000, B0000000, B0000000, B0000000, // |
  111.   3, 8, B1000001, B0110110, B0001000, B0000000, B0000000, // }
  112.   4, 8, B0001000, B0000100, B0001000, B0000100, B0000000, // ~
  113. };
  114. void setup()
  115. {
  116.   m.init();
  117.   m.setIntensity(3);
  118. } // Scrolling Text
  119. char string[] = "Sua mensagem aqui!!!";
  120. void loop()
  121. {
  122.   delay(100);
  123.   m.shiftLeft(false, true);
  124.   printStringWithShift(string, 200
  125.                       );
  126. }
  127. void printCharWithShift(char c, int shift_speed)
  128. {
  129.   if (c < 32) return;
  130.   c -= 32;
  131.   memcpy_P(Buf7219, CH + 7 * c, 7);
  132.   m.writeSprite(maxDisplays * 8, 0, Buf7219);
  133.   m.setColumn(maxDisplays * 8 + Buf7219[0], 0);
  134.   for (int i = 0; i <= Buf7219[0]; i++)
  135.   {
  136.     delay(shift_speed);
  137.     m.shiftLeft(false, false);
  138.   }
  139. }
  140. void printStringWithShift(char* s, int shift_speed)
  141. {
  142.   while (*s != 0)
  143.   {
  144.     printCharWithShift(*s, shift_speed);
  145.     s++;
  146.   }
  147. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement