]> git.piffa.net Git - sketchbook_andrea/blob - hardware/8x8_LED_matrix/demo/demo.ino
Merge branch 'capacitance'
[sketchbook_andrea] / hardware / 8x8_LED_matrix / demo / demo.ino
1 // From http://www.electrodragon.com/w/Dot_Matrix_Display_Kit_w/MAX7219_IC,_PCB
2
3 unsigned char i;
4 unsigned char j; 
5 /*Port Definitions*/
6 int Max7219_pinCLK = 10;
7 int Max7219_pinCS = 9;
8 int Max7219_pinDIN = 8;
9
10 unsigned char disp1[38][8]={
11   {
12     0x3C,0x42,0x42,0x42,0x42,0x42,0x42,0x3C  }
13   ,//0
14   {
15     0x10,0x18,0x14,0x10,0x10,0x10,0x10,0x10  }
16   ,//1
17   {
18     0x7E,0x2,0x2,0x7E,0x40,0x40,0x40,0x7E  }
19   ,//2
20   {
21     0x3E,0x2,0x2,0x3E,0x2,0x2,0x3E,0x0  }
22   ,//3
23   {
24     0x8,0x18,0x28,0x48,0xFE,0x8,0x8,0x8  }
25   ,//4
26   {
27     0x3C,0x20,0x20,0x3C,0x4,0x4,0x3C,0x0  }
28   ,//5
29   {
30     0x3C,0x20,0x20,0x3C,0x24,0x24,0x3C,0x0  }
31   ,//6
32   {
33     0x3E,0x22,0x4,0x8,0x8,0x8,0x8,0x8  }
34   ,//7
35   {
36     0x0,0x3E,0x22,0x22,0x3E,0x22,0x22,0x3E  }
37   ,//8
38   {
39     0x3E,0x22,0x22,0x3E,0x2,0x2,0x2,0x3E  }
40   ,//9
41   {
42     0x8,0x14,0x22,0x3E,0x22,0x22,0x22,0x22  }
43   ,//A
44   {
45     0x3C,0x22,0x22,0x3E,0x22,0x22,0x3C,0x0  }
46   ,//B
47   {
48     0x3C,0x40,0x40,0x40,0x40,0x40,0x3C,0x0  }
49   ,//C
50   {
51     0x7C,0x42,0x42,0x42,0x42,0x42,0x7C,0x0  }
52   ,//D
53   {
54     0x7C,0x40,0x40,0x7C,0x40,0x40,0x40,0x7C  }
55   ,//E
56   {
57     0x7C,0x40,0x40,0x7C,0x40,0x40,0x40,0x40  }
58   ,//F
59   {
60     0x3C,0x40,0x40,0x40,0x40,0x44,0x44,0x3C  }
61   ,//G
62   {
63     0x44,0x44,0x44,0x7C,0x44,0x44,0x44,0x44  }
64   ,//H
65   {
66     0x7C,0x10,0x10,0x10,0x10,0x10,0x10,0x7C  }
67   ,//I
68   {
69     0x3C,0x8,0x8,0x8,0x8,0x8,0x48,0x30  }
70   ,//J
71   {
72     0x0,0x24,0x28,0x30,0x20,0x30,0x28,0x24  }
73   ,//K
74   {
75     0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x7C  }
76   ,//L
77   {
78     0x81,0xC3,0xA5,0x99,0x81,0x81,0x81,0x81  }
79   ,//M
80   {
81     0x0,0x42,0x62,0x52,0x4A,0x46,0x42,0x0  }
82   ,//N
83   {
84     0x3C,0x42,0x42,0x42,0x42,0x42,0x42,0x3C  }
85   ,//O
86   {
87     0x3C,0x22,0x22,0x22,0x3C,0x20,0x20,0x20  }
88   ,//P
89   {
90     0x1C,0x22,0x22,0x22,0x22,0x26,0x22,0x1D  }
91   ,//Q
92   {
93     0x3C,0x22,0x22,0x22,0x3C,0x24,0x22,0x21  }
94   ,//R
95   {
96     0x0,0x1E,0x20,0x20,0x3E,0x2,0x2,0x3C  }
97   ,//S
98   {
99     0x0,0x3E,0x8,0x8,0x8,0x8,0x8,0x8  }
100   ,//T
101   {
102     0x42,0x42,0x42,0x42,0x42,0x42,0x22,0x1C  }
103   ,//U
104   {
105     0x42,0x42,0x42,0x42,0x42,0x42,0x24,0x18  }
106   ,//V
107   {
108     0x0,0x49,0x49,0x49,0x49,0x2A,0x1C,0x0  }
109   ,//W
110   {
111     0x0,0x41,0x22,0x14,0x8,0x14,0x22,0x41  }
112   ,//X
113   {
114     0x41,0x22,0x14,0x8,0x8,0x8,0x8,0x8  }
115   ,//Y
116   {
117     0x0,0x7F,0x2,0x4,0x8,0x10,0x20,0x7F  }
118   ,//Z
119 };
120
121
122
123 void Write_Max7219_byte(unsigned char DATA) 
124 {   
125   unsigned char i;
126   digitalWrite(Max7219_pinCS,LOW);              
127   for(i=8;i>=1;i--)
128   {               
129     digitalWrite(Max7219_pinCLK,LOW);
130     digitalWrite(Max7219_pinDIN,DATA&0x80);// Extracting a bit data
131     DATA = DATA<<1;
132     digitalWrite(Max7219_pinCLK,HIGH);
133   }                                 
134 }
135
136
137 void Write_Max7219(unsigned char address,unsigned char dat)
138 {
139   digitalWrite(Max7219_pinCS,LOW);
140   Write_Max7219_byte(address);           //address,code of LED
141   Write_Max7219_byte(dat);               //data,figure on LED 
142   digitalWrite(Max7219_pinCS,HIGH);
143 }
144
145 void Init_MAX7219(void)
146 {
147   Write_Max7219(0x09, 0x00);       //decoding :BCD
148   Write_Max7219(0x0a, 0x03);       //brightness 
149   Write_Max7219(0x0b, 0x07);       //scanlimit;8 LEDs
150   Write_Max7219(0x0c, 0x01);       //power-down mode:0,normal mode:1
151   Write_Max7219(0x0f, 0x00);       //test display:1;EOT,display:0
152 }
153
154
155
156 void setup()
157 {
158
159   pinMode(Max7219_pinCLK,OUTPUT);
160   pinMode(Max7219_pinCS,OUTPUT);
161   pinMode(Max7219_pinDIN,OUTPUT);
162   delay(50);
163   Init_MAX7219();
164 }
165
166
167 void loop()
168
169   for(j=0;j<38;j++)
170   {
171     for(i=1;i<9;i++)
172       Write_Max7219(i,disp1[j][i-1]);
173     delay(500);
174   }             
175 }
176