Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- *
- * test_matrix_7219
- * permet de tester des matrices 8x8 de leds
- * pilotées par un MAX7219/MAX7221
- * Mises en série ou pas
- *
- * Si mise en série, un condensateur de 10-50uF entre + et - de chaque matrice est conseillé pour l'appel de courant
- * sinon le comportement peut être erratique.
- *
- */
- #include "mxctrl.class.h"
- //#define ESPx // decommenter si c'est un ESP, sinon commenter
- #define AVR // decommenter si c'est un AVR (UNO, Nano, etc.), sinon commenter
- // LedControl Pins
- #ifdef ESPx
- int MAX72XX_DIN = D6; // DIN
- int MAX72XX_CLK = D7; // CLK
- int MAX72XX_CS = D8; // CS ou LOAD
- #endif
- #ifdef AVR
- int MAX72XX_DIN = 10; // DIN
- int MAX72XX_CLK = 11; // CLK
- int MAX72XX_CS = 12; // CS ou LOAD
- #endif
- int MaxDevice = 1; // nombre de max7219/7221 mis en série
- MxCtrl MaxMatrix (MAX72XX_DIN, MAX72XX_CLK, MAX72XX_CS, MaxDevice);
- int timer = 20;
- byte intens = 0;
- void setup(){
- Serial.begin (115200);
- Serial.println("Setup");
- }
- void loop(){
- // on fait chaque test avec une intensité croissante
- intens = intens >= 15 ? 1 : intens+1;
- MaxTest(intens);
- }
- void MaxTest(byte intensity) {
- Serial.print("Intensity: ");
- Serial.println(intensity);
- for(byte i = 0; i < MaxDevice; i++){
- MaxMatrix.shutdown(i, false); // Bring the Max out of Shutdown Mode and into Normal Operation Mode
- MaxMatrix.setIntensity(i, intensity);
- }
- // diagonale 1
- for (int i = 0; i < MaxDevice; i++){
- for (int t = 0; t < 8; t++){
- for (int dec = 0; dec < 8; dec++){
- MaxMatrix.setColumn(i, t, 1<<dec);
- delay(timer);
- }
- MaxMatrix.setColumn(i, t, 1<<t);
- }
- }
- // diagonale 2
- for (int i = 0; i < MaxDevice; i++){
- for (int t = 0; t < 8; t++){
- for (int dec = 0; dec < 8; dec++){
- MaxMatrix.setRow(i, t, 1<<dec);
- delay(timer);
- }
- MaxMatrix.setRow(i, t, 128>>t);
- }
- }
- // triangle 1
- for (int i = 0; i < MaxDevice; i++){
- for (int t = 0; t < 8; t++){
- for (int dec = 0; dec < 8; dec++){
- MaxMatrix.setColumn(i, t, 255<<(7-dec));
- delay(timer);
- }
- MaxMatrix.setColumn(i, t, 255<<t);
- }
- }
- // triangle 2
- for (int i = 0; i < MaxDevice; i++){
- for (int t = 0; t < 8; t++){
- for (int dec = 0; dec < 8; dec++){
- MaxMatrix.setRow(i, t, 255<<(dec));
- delay(timer);
- }
- MaxMatrix.setRow(i, t, 255<<(7-t));
- }
- }
- // carré
- for (int i = 0; i < MaxDevice; i++){
- for (int t = 0; t < 8; t++){
- for (int dec = 0; dec < 8; dec++){
- MaxMatrix.setRow(i, t, 255);
- delay(timer);
- }
- }
- }
- delay(500);
- // variation intensité ++
- for (byte in=1; in<=15; in++) {
- for(byte i=0;i<MaxDevice;i++){
- MaxMatrix.setIntensity(i, in);
- delay(50);
- }
- }
- // variation intensité --
- for (byte in=14; in>=1; in--) {
- for(byte i=0;i<MaxDevice;i++){
- MaxMatrix.setIntensity(i, in);
- delay(50);
- }
- }
- // variation intensité --
- for(byte i=0; i<MaxDevice; i++){
- MaxMatrix.clearDisplay(i);
- delay(250);
- }
- delay(500);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement