Advertisement
WolfLarsen33

matrix test main

Mar 15th, 2021
172
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2.  *
  3.  * test_matrix_7219
  4.  * permet de tester des matrices 8x8 de leds
  5.  * pilotées par un MAX7219/MAX7221
  6.  * Mises en série ou pas
  7.  *
  8.  * Si mise en série, un condensateur de 10-50uF entre + et - de chaque matrice est conseillé pour l'appel de courant
  9.  * sinon le comportement peut être erratique.
  10.  *
  11.  */
  12. #include "mxctrl.class.h"
  13.  
  14. //#define ESPx    // decommenter si c'est un ESP, sinon commenter
  15. #define AVR   // decommenter si c'est un AVR (UNO, Nano, etc.), sinon commenter
  16.  
  17. // LedControl Pins
  18. #ifdef ESPx
  19. int MAX72XX_DIN   = D6;   // DIN    
  20. int MAX72XX_CLK   = D7;   // CLK
  21. int MAX72XX_CS    = D8;   // CS ou LOAD
  22. #endif
  23. #ifdef AVR
  24. int MAX72XX_DIN   = 10;   // DIN  
  25. int MAX72XX_CLK   = 11;   // CLK
  26. int MAX72XX_CS    = 12;   // CS ou LOAD
  27. #endif
  28.  
  29. int MaxDevice     = 1;       // nombre de max7219/7221 mis en série
  30.  
  31. MxCtrl MaxMatrix (MAX72XX_DIN, MAX72XX_CLK, MAX72XX_CS, MaxDevice);
  32.  
  33. int timer = 20;
  34. byte intens = 0;
  35.  
  36. void setup(){
  37.  
  38.   Serial.begin (115200);
  39.   Serial.println("Setup");
  40.      
  41. }
  42.  
  43. void loop(){
  44.   // on fait chaque test avec une intensité croissante
  45.   intens = intens >= 15 ? 1 : intens+1;
  46.   MaxTest(intens);
  47. }
  48.  
  49.  
  50. void MaxTest(byte intensity) {
  51.  
  52.   Serial.print("Intensity: ");
  53.   Serial.println(intensity);
  54.  
  55.   for(byte i = 0; i < MaxDevice; i++){    
  56.     MaxMatrix.shutdown(i, false);    // Bring the Max out of Shutdown Mode and into Normal Operation Mode
  57.     MaxMatrix.setIntensity(i, intensity);
  58.   }
  59.  
  60.   // diagonale 1
  61.   for (int i = 0; i < MaxDevice; i++){
  62.     for (int t = 0; t < 8; t++){
  63.       for (int dec = 0; dec < 8; dec++){
  64.          MaxMatrix.setColumn(i, t, 1<<dec);
  65.          delay(timer);
  66.       }
  67.       MaxMatrix.setColumn(i, t, 1<<t);
  68.     }
  69.   }
  70.  
  71.   // diagonale 2
  72.   for (int i = 0; i < MaxDevice; i++){
  73.     for (int t = 0; t < 8; t++){
  74.       for (int dec = 0; dec < 8; dec++){
  75.          MaxMatrix.setRow(i, t, 1<<dec);
  76.          delay(timer);
  77.       }
  78.       MaxMatrix.setRow(i, t, 128>>t);
  79.     }
  80.   }
  81.  
  82.   // triangle 1
  83.   for (int i = 0; i < MaxDevice; i++){
  84.     for (int t = 0; t < 8; t++){
  85.       for (int dec = 0; dec < 8; dec++){
  86.          MaxMatrix.setColumn(i, t, 255<<(7-dec));
  87.          delay(timer);
  88.       }
  89.       MaxMatrix.setColumn(i, t, 255<<t);
  90.     }
  91.   }
  92.  
  93.   // triangle 2
  94.   for (int i = 0; i < MaxDevice; i++){
  95.     for (int t = 0; t < 8; t++){
  96.       for (int dec = 0; dec < 8; dec++){
  97.          MaxMatrix.setRow(i, t, 255<<(dec));
  98.          delay(timer);
  99.       }
  100.       MaxMatrix.setRow(i, t, 255<<(7-t));
  101.     }
  102.   }
  103.  
  104.   // carré
  105.   for (int i = 0; i < MaxDevice; i++){
  106.     for (int t = 0; t < 8; t++){
  107.       for (int dec = 0; dec < 8; dec++){
  108.          MaxMatrix.setRow(i, t, 255);
  109.          delay(timer);
  110.       }
  111.     }
  112.   }
  113.   delay(500);
  114.  
  115.   // variation intensité ++
  116.   for (byte in=1; in<=15; in++) {
  117.     for(byte i=0;i<MaxDevice;i++){    
  118.       MaxMatrix.setIntensity(i, in);
  119.       delay(50);
  120.     }
  121.   }
  122.   // variation intensité --
  123.   for (byte in=14; in>=1; in--) {
  124.     for(byte i=0;i<MaxDevice;i++){    
  125.       MaxMatrix.setIntensity(i, in);
  126.       delay(50);
  127.     }
  128.   }
  129.    
  130.  
  131.   // variation intensité --
  132.   for(byte i=0; i<MaxDevice; i++){    
  133.     MaxMatrix.clearDisplay(i);
  134.     delay(250);
  135.   }
  136.   delay(500);
  137.  
  138. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement