Advertisement
Guest User

Untitled

a guest
Dec 22nd, 2014
172
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.18 KB | None | 0 0
  1. #include <FlexiTimer2.h>
  2.  
  3. //縲€LED繝槭ヨ繝ェ繧ッ繧ケ縺ョ繝斐Φ蜑イ蠖薙※�啌OW蛛エ縺後き繧ス繝シ繝峨€,OLOMN蛛エ縺後い繝弱�繝峨�8x8繝槭ヨ繝ェ繝�け繧ケLED
  4. int ANODEPIN[] = {
  5. 10, 11, 12, 14, 15, 16, 17, 18 };
  6. int CATHODEPIN[] ={
  7. 2, 3, 4, 5, 6, 7, 8, 9 };
  8.  
  9. int testPatternF[8][8] = {
  10. 0,1,1,1, 1,1,1,0,
  11. 0,1,1,1, 1,1,1,0,
  12. 0,1,1,0, 0,0,0,0,
  13. 0,1,1,0, 0,0,0,0,
  14. 0,1,1,1, 1,1,0,0,
  15. 0,1,1,1, 1,1,0,0,
  16. 0,1,1,0, 0,0,0,0,
  17. 0,1,1,0, 0,0,0,0};
  18.  
  19. int testPatternM[8][8] = {
  20. 1,1,0,0, 0,0,1,1,
  21. 1,1,1,0, 0,1,1,1,
  22. 1,1,1,1, 1,1,1,1,
  23. 1,1,1,1, 1,1,1,1,
  24. 1,1,0,1, 1,0,1,1,
  25. 1,1,0,0, 0,0,1,1,
  26. 1,1,0,0, 0,0,1,1,
  27. 1,1,0,0, 0,0,1,1,};
  28.  
  29. int testPatternS[8][8] = {
  30. 0,1,1,1, 1,1,1,0,
  31. 1,1,1,1, 1,1,1,1,
  32. 0,1,1,0, 0,0,1,1,
  33. 0,0,1,1, 1,0,0,0,
  34. 0,0,0,1, 1,1,0,0,
  35. 1,1,0,0, 0,1,1,0,
  36. 1,1,1,1, 1,1,1,1,
  37. 0,1,1,1, 1,1,1,0};
  38.  
  39. int matrix[8][8]; // LED繝槭ヨ繝ェ繧ッ繧ケ縺ョ蜷�せ縺ョ迥カ諷九r菫晄戟縺吶k驟榊��1:ON縲0:OFF�
  40. int displayRow; // 迴セ蝨ィ陦ィ遉コ荳ュ縺ョrow
  41. int pat = 0; // 繝。繧、繝ウ繝励Ο繧ー繝ゥ繝縺ァ謖�ョ壹☆繧九ヱ繧ソ繝シ繝ウ逡ェ蜿キ
  42.  
  43. void setup() {
  44. initMatrix();
  45. }
  46.  
  47. void loop() {
  48. if(pat == 0) {
  49. setPattern(testPatternF);
  50. }
  51. else if(pat == 1) {
  52. setPattern(testPatternM);
  53. }
  54. else {
  55. setPattern(testPatternS);
  56. }
  57.  
  58. pat++;
  59. pat = pat%3;
  60. delay(1000);
  61. }
  62.  
  63. //---------------------------------------------------------
  64. // LED繝槭ヨ繝ェ繧ッ繧ケ繧貞宛蠕。縺吶k髢「謨ー
  65. //---------------------------------------------------------
  66.  
  67. //
  68. // LED繝槭ヨ繝ェ繧ッ繧ケ繧貞�譛溷喧縺吶k
  69. // (1) Arduino 縺ョ蜃コ蜉帙ヴ繝ウ縺ョ蛻晄悄蛹
  70. // (2) 蜷ЛED縺ョ迥カ諷九r菫晄戟縺吶k驟榊�縺ョ蛻晄悄蛹
  71. // (3) LED繧定。ィ遉コ縺吶k繧ソ繧、繝槫牡霎シ縺ソ縺ョ險ュ螳
  72. //
  73. void initMatrix() {
  74. //縲€蜃コ蜉帙r蛻晄悄蛹悶€√い繝弱�繝羽IGH縲√き繧ス繝シ繝鵜OW縺ァ轤ケ轣ッ縲√◎縺ョ騾�↓險ュ螳壹☆繧
  75. // 繧「繝弱�繝峨r縲´OW縺ァ蛻晄悄蛹(coulmn譁ケ蜷托シ
  76. for( int ano = 0; ano < 8; ano++ )
  77. {
  78. pinMode( ANODEPIN[ano], OUTPUT );
  79. digitalWrite( ANODEPIN[ano], LOW );
  80. }
  81. // 繧ォ繧ス繝シ繝峨r縲?IGH縺ァ蛻晄悄蛹厄シ�ow縺ォ蟇セ蠢懶シ
  82. for( int cat = 0; cat < 8; cat++ )
  83. {
  84. pinMode( CATHODEPIN[cat], OUTPUT );
  85. digitalWrite( CATHODEPIN[cat], HIGH );
  86. }
  87.  
  88. clearMatrix(); // 迥カ諷九r菫晄戟縺吶k驟榊�繧丹FF縺ァ蛻晄悄蛹
  89. startMatrix(); // LED繝槭ヨ繝ェ繧ッ繧ケ縺ョ陦ィ遉コ繧帝幕蟋具シ郁。ィ遉コ陦後r0縺ォ險ュ螳壹@縺ヲ縲√ち繧、繝槫牡霎シ縺ソ繧帝幕蟋具シ
  90. }
  91.  
  92. //
  93. // LED繝槭ヨ繝ェ繧ッ繧ケ縺ョ陦ィ遉コ繧呈峩譁ー�郁。ィ遉コ陦 �
  94. // displayRow 縺ァ遉コ縺輔l繧1陦悟�繧定。ィ遉コ
  95. // startMatrix()縺悟他縺ー繧後◆蠕後€√ち繧、繝槫牡霎シ縺ソ縺ォ繧医j1ms豈弱↓蜻シ縺ー繧後k
  96. // 縺、縺セ繧翫€8ms縺ァ蜈ィ縺ヲ縺ョ陦後r陦ィ遉コ縺吶k
  97. //
  98. void updateMatrix() {
  99. if(displayRow >= 0) {
  100. digitalWrite( CATHODEPIN[displayRow], HIGH ); // �代▽蜑阪�ROW繧辿IGH縺ォ螟画峩(豸医☆�
  101. }
  102. displayRow++;
  103. displayRow = displayRow%8;
  104.  
  105. //縲€繧ウ繝ゥ繝譁ケ蜷托シ医い繝弱�繝画婿蜷托シ峨�蜃コ蜉帙r鬆�↓繧サ繝�ヨ
  106. for(int column = 0; column<8; column++) {
  107. if(matrix[displayRow][column] == 1) {
  108. digitalWrite( ANODEPIN[column], HIGH ); // HIGH縺ォ螟画峩
  109. }
  110. else {
  111. digitalWrite( ANODEPIN[column], LOW ); // LOW縺ォ謌サ縺
  112. }
  113. }
  114. // LOW縺ォ謌サ縺呻シ育せ轣ッ�帶ャ。縺ョ繧ソ繧、繝槭�蜑イ霎シ縺ソ縺セ縺ァ縲√◎縺ョ迥カ諷九〒陦ィ遉コ�
  115. digitalWrite( CATHODEPIN[displayRow], LOW );
  116. }
  117.  
  118. //
  119. // LED繝槭ヨ繝ェ繧ッ繧ケ縺ョ陦ィ遉コ繧帝幕蟋具シ郁。ィ遉コ陦慧isplayRow繧0縺ォ險ュ螳壹@縺ヲ縲√ち繧、繝槫牡霎シ縺ソ繧帝幕蟋具シ
  120. //
  121. void startMatrix(){
  122. displayRow = -1;
  123. FlexiTimer2::set(1, updateMatrix);// 1ms豈弱↓蜑イ霎シ縺ソ繧堤匱逕溘&縺 updateMatrix 繧貞他縺ウ蜃コ縺
  124. FlexiTimer2::start();
  125. }
  126.  
  127. //
  128. // LED繝槭ヨ繝ェ繧ッ繧ケ縺ョ迥カ諷九r菫晄戟縺吶k驟榊�繧貞、画峩縺吶k
  129. // void clearMatrix(): 蜈ィ縺ヲ0縺ォ險ュ螳
  130. // void setPoint(int x, int y): (x,y)繧1(ON)縺ォ險ュ螳
  131. // void resetPoint(int x, int y): (x,y)繧0��FF)縺ォ險ュ螳
  132. // void setPattern(int _pattern[8][8]): _pattern縺ォ險ュ螳壹&繧後◆繝代ち繝シ繝ウ繧定ィュ螳
  133.  
  134. void clearMatrix() {
  135. for(int row = 0; row<8; row++) {
  136. for(int column = 0; column<8; column++) {
  137. matrix[row][column] = 0;
  138. }
  139. }
  140. }
  141.  
  142. void setPoint(int _row, int _column) {
  143. matrix[_row][_column] = 1;
  144. }
  145.  
  146. void resetPoint(int _row, int _column) {
  147. matrix[_row][_column] = 0;
  148. }
  149.  
  150. void setPattern(int _pattern[8][8]) {
  151. for(int row = 0; row<8; row++) {
  152. for(int column = 0; column<8; column++) {
  153. matrix[row][column] = _pattern[row][column];
  154. }
  155. }
  156. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement