Errore codice sketch Matrice led

ciao a tutti ho trovato una guida online di un codice scrolling per due matrici led:

#include <MaxMatrix.h>
#include <avr/pgmspace.h>


PROGMEM prog_uchar CH[] = {
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // space
1, 8, B01011111, B00000000, B00000000, B00000000, B00000000, // !
3, 8, B00000011, B00000000, B00000011, B00000000, B00000000, // "
5, 8, B00010100, B00111110, B00010100, B00111110, B00010100, // #
4, 8, B00100100, B01101010, B00101011, B00010010, B00000000, // $
5, 8, B01100011, B00010011, B00001000, B01100100, B01100011, // %
5, 8, B00110110, B01001001, B01010110, B00100000, B01010000, // &
1, 8, B00000011, B00000000, B00000000, B00000000, B00000000, // '
3, 8, B00011100, B00100010, B01000001, B00000000, B00000000, // (
3, 8, B01000001, B00100010, B00011100, B00000000, B00000000, // )
5, 8, B00101000, B00011000, B00001110, B00011000, B00101000, // *
5, 8, B00001000, B00001000, B00111110, B00001000, B00001000, // +
2, 8, B10110000, B01110000, B00000000, B00000000, B00000000, // ,
4, 8, B00001000, B00001000, B00001000, B00001000, B00000000, // -
2, 8, B01100000, B01100000, B00000000, B00000000, B00000000, // .
4, 8, B01100000, B00011000, B00000110, B00000001, B00000000, // /
4, 8, B00111110, B01000001, B01000001, B00111110, B00000000, // 0
3, 8, B01000010, B01111111, B01000000, B00000000, B00000000, // 1
4, 8, B01100010, B01010001, B01001001, B01000110, B00000000, // 2
4, 8, B00100010, B01000001, B01001001, B00110110, B00000000, // 3
4, 8, B00011000, B00010100, B00010010, B01111111, B00000000, // 4
4, 8, B00100111, B01000101, B01000101, B00111001, B00000000, // 5
4, 8, B00111110, B01001001, B01001001, B00110000, B00000000, // 6
4, 8, B01100001, B00010001, B00001001, B00000111, B00000000, // 7
4, 8, B00110110, B01001001, B01001001, B00110110, B00000000, // 8
4, 8, B00000110, B01001001, B01001001, B00111110, B00000000, // 9
2, 8, B01010000, B00000000, B00000000, B00000000, B00000000, // :
2, 8, B10000000, B01010000, B00000000, B00000000, B00000000, // ;
3, 8, B00010000, B00101000, B01000100, B00000000, B00000000, // <
3, 8, B00010100, B00010100, B00010100, B00000000, B00000000, // =
3, 8, B01000100, B00101000, B00010000, B00000000, B00000000, // >
4, 8, B00000010, B01011001, B00001001, B00000110, B00000000, // ?
5, 8, B00111110, B01001001, B01010101, B01011101, B00001110, // @
4, 8, B01111110, B00010001, B00010001, B01111110, B00000000, // A
4, 8, B01111111, B01001001, B01001001, B00110110, B00000000, // B
4, 8, B00111110, B01000001, B01000001, B00100010, B00000000, // C
4, 8, B01111111, B01000001, B01000001, B00111110, B00000000, // D
4, 8, B01111111, B01001001, B01001001, B01000001, B00000000, // E
4, 8, B01111111, B00001001, B00001001, B00000001, B00000000, // F
4, 8, B00111110, B01000001, B01001001, B01111010, B00000000, // G
4, 8, B01111111, B00001000, B00001000, B01111111, B00000000, // H
3, 8, B01000001, B01111111, B01000001, B00000000, B00000000, // I
4, 8, B00110000, B01000000, B01000001, B00111111, B00000000, // J
4, 8, B01111111, B00001000, B00010100, B01100011, B00000000, // K
4, 8, B01111111, B01000000, B01000000, B01000000, B00000000, // L
5, 8, B01111111, B00000010, B00001100, B00000010, B01111111, // M
5, 8, B01111111, B00000100, B00001000, B00010000, B01111111, // N
4, 8, B00111110, B01000001, B01000001, B00111110, B00000000, // O
4, 8, B01111111, B00001001, B00001001, B00000110, B00000000, // P
4, 8, B00111110, B01000001, B01000001, B10111110, B00000000, // Q
4, 8, B01111111, B00001001, B00001001, B01110110, B00000000, // R
4, 8, B01000110, B01001001, B01001001, B00110010, B00000000, // S
5, 8, B00000001, B00000001, B01111111, B00000001, B00000001, // T
4, 8, B00111111, B01000000, B01000000, B00111111, B00000000, // U
5, 8, B00001111, B00110000, B01000000, B00110000, B00001111, // V
5, 8, B00111111, B01000000, B00111000, B01000000, B00111111, // W
5, 8, B01100011, B00010100, B00001000, B00010100, B01100011, // X
5, 8, B00000111, B00001000, B01110000, B00001000, B00000111, // Y
4, 8, B01100001, B01010001, B01001001, B01000111, B00000000, // Z
2, 8, B01111111, B01000001, B00000000, B00000000, B00000000, // [
4, 8, B00000001, B00000110, B00011000, B01100000, B00000000, // \ backslash
2, 8, B01000001, B01111111, B00000000, B00000000, B00000000, // ]
3, 8, B00000010, B00000001, B00000010, B00000000, B00000000, // hat
4, 8, B01000000, B01000000, B01000000, B01000000, B00000000, // _
2, 8, B00000001, B00000010, B00000000, B00000000, B00000000, // `
4, 8, B00100000, B01010100, B01010100, B01111000, B00000000, // a
4, 8, B01111111, B01000100, B01000100, B00111000, B00000000, // b
4, 8, B00111000, B01000100, B01000100, B00101000, B00000000, // c
4, 8, B00111000, B01000100, B01000100, B01111111, B00000000, // d
4, 8, B00111000, B01010100, B01010100, B00011000, B00000000, // e
3, 8, B00000100, B01111110, B00000101, B00000000, B00000000, // f
4, 8, B10011000, B10100100, B10100100, B01111000, B00000000, // g
4, 8, B01111111, B00000100, B00000100, B01111000, B00000000, // h
3, 8, B01000100, B01111101, B01000000, B00000000, B00000000, // i
4, 8, B01000000, B10000000, B10000100, B01111101, B00000000, // j
4, 8, B01111111, B00010000, B00101000, B01000100, B00000000, // k
3, 8, B01000001, B01111111, B01000000, B00000000, B00000000, // l
5, 8, B01111100, B00000100, B01111100, B00000100, B01111000, // m
4, 8, B01111100, B00000100, B00000100, B01111000, B00000000, // n
4, 8, B00111000, B01000100, B01000100, B00111000, B00000000, // o
4, 8, B11111100, B00100100, B00100100, B00011000, B00000000, // p
4, 8, B00011000, B00100100, B00100100, B11111100, B00000000, // q
4, 8, B01111100, B00001000, B00000100, B00000100, B00000000, // r
4, 8, B01001000, B01010100, B01010100, B00100100, B00000000, // s
3, 8, B00000100, B00111111, B01000100, B00000000, B00000000, // t
4, 8, B00111100, B01000000, B01000000, B01111100, B00000000, // u
5, 8, B00011100, B00100000, B01000000, B00100000, B00011100, // v
5, 8, B00111100, B01000000, B00111100, B01000000, B00111100, // w
5, 8, B01000100, B00101000, B00010000, B00101000, B01000100, // x
4, 8, B10011100, B10100000, B10100000, B01111100, B00000000, // y
3, 8, B01100100, B01010100, B01001100, B00000000, B00000000, // z
3, 8, B00001000, B00110110, B01000001, B00000000, B00000000, // {
1, 8, B01111111, B00000000, B00000000, B00000000, B00000000, // |
3, 8, B01000001, B00110110, B00001000, B00000000, B00000000, // }
4, 8, B00001000, B00000100, B00001000, B00000100, B00000000, // ~
};

int data = 8;    // DIN pin of MAX7219 module
int load = 9;    // CS pin of MAX7219 module
int clock = 10;  // CLK pin of MAX7219 module

int maxInUse = 2;  //how many MAX7219 are connected

MaxMatrix m(data, load, clock, maxInUse); // define Library

byte buffer[10];

char string1[] = " Brainy-Bits.com      ";  // Scrolling Text


void setup(){
  m.init(); // module MAX7219
  m.setIntensity(5); // LED Intensity 0-15
}

void loop(){
  
  byte c;
  delay(100);
  m.shiftLeft(false, true);
  printStringWithShift(string1, 100);  // Send scrolling Text

}

// Put extracted character on Display
void printCharWithShift(char c, int shift_speed){
  if (c < 32) return;
  c -= 32;
  memcpy_P(buffer, CH + 7*c, 7);
  m.writeSprite(maxInUse*8, 0, buffer);
  m.setColumn(maxInUse*8 + buffer[0], 0);
  
  for (int i=0; i<buffer[0]+1; i++) 
  {
    delay(shift_speed);
    m.shiftLeft(false, false);
  }
}

// Extract characters from Scrolling text
void printStringWithShift(char* s, int shift_speed){
  while (*s != 0){
    printCharWithShift(*s, shift_speed);
    s++;
  }
}

Ma ottengo i seguenti errori:

This report would have more information with
  "Show verbose output during compilation"
  enabled in File > Preferences.
Arduino: 1.0.6 (Windows XP), Board: "Arduino Uno"
sketch_mar29a:109: error: 'MaxMatrix' does not name a type
sketch_mar29a.ino: In function 'void setup()':
sketch_mar29a:117: error: 'm' was not declared in this scope
sketch_mar29a.ino: In function 'void loop()':
sketch_mar29a:125: error: 'm' was not declared in this scope
sketch_mar29a.ino: In function 'void printCharWithShift(char, int)':
sketch_mar29a:135: error: 'm' was not declared in this scope

Cosa sbaglio? Grazie

Direi che NON trova la libreria MaxMatrix ... da dove l'hai scaricata e come l'hai installata ? :roll_eyes:

Guglielmo

P.S. : In conformità al regolamento, punto 7, il codice deve essere racchiuso tra i tag CODE ... cortesemente correggi il tuo post.

Se no trovasse la libreria ci sarebbe anche un "fatal error: MaxMatrix.h: No such file or directory"
probabilmente manca l'istanza

No, un istanza c'è "MaxMatrix m(data, load, clock, maxInUse); // define Library" ... se sia giusta o meno è un'altro conto ... meglio capire dove/come ha preso/installato la lib :wink:

Guglielmo

il primo errore credo sia dovuto a queste righe

#include <MaxMatrix.h>
#include <avr/pgmspace.h>

nel tutorial 'include' è scritto come dire..in arancione mentre sul mio pc è scritto nromalmente come se non fosse un comando

gpb01:
No, un istanza c'è "MaxMatrix m(data, load, clock, maxInUse); // define Library" ... se sia giusta o meno è un'altro conto ... meglio capire dove/come ha preso/installato la lib :wink:

Guglielmo

l'ho presa da questo link: https://brainy-bits.com/tutorials/scroll-text-using-the-max7219-led-dot-matrix/

Ti ho chiesto dove e COME hai installato la libreria perché ... ho appena provato il tuo codice e compila correttamente senza errori, quindi ... :smiling_imp:

Guglielmo

P.S. Ti invito di nuovo a seguire il regolamento, punto 7, ed a modificare il tuo post racchiudendo il codice tra gli appositi tag CODE !

pablos:
Se no trovasse la libreria ci sarebbe anche un "fatal error: MaxMatrix.h: No such file or directory"

Sbagliato ... da SOLO un warning (... appena fatta la prova) ... :stuck_out_tongue_closed_eyes:

Guglielmo

gpb01:
Ti ho chiesto dove e COME hai installato la libreria :smiling_imp:

Ho preso la cartella 'MAX7219_Scroll_Text_Tutorial' e l'ho messa in 'C:\Programmi\Arduino\examples'

anch'io ho appena fatto la prova

sketch_mar29a.ino:1:23: fatal error: MaxMatrix.h: No such file or directory
compilation terminated.
Errore durante la compilazione

@Pablos : Con che versione dell'IDE ? ? ? :o Perché con la 1.0.6 da solo il warning ...

sketch_mar29a.ino:1:23: warning: MaxMatrix.h: No such file or directory
sketch_mar29a.ino:5: warning: only initialized variables can be placed into program memory area
sketch_mar29a:109: error: 'MaxMatrix' does not name a type
sketch_mar29a.ino: In function 'void setup()':
sketch_mar29a:117: error: 'm' was not declared in this scope
sketch_mar29a.ino: In function 'void loop()':

@mrpasquale970 : NO, non si fa così, devi scaricare la LIBRERIA non il tutorial e metterla nella tua "Sketchbook location" dentro la cartella "libraries". Quale è la tua "Sketchbook location" lo vedi nelle "preferenze" del IDE !

Guglielmo

P.S. Per la terza ed ultima volta ti invito a seguire il regolamento, punto 7, ed a modificare il tuo post racchiudendo il codice tra gli appositi tag CODE ! Dopo di che provvederò a segnalare la cosa ad un Mod.

1.6.1 :slight_smile: :slight_smile:

pablos:
1.6.1 :slight_smile: :slight_smile:

Aha ... OK

Guglielmo

gpb01:
@mrpasquale970 : NO, non si fa così, devi scaricare la LIBRERIA non il tutorial e metterla nella tua "Sketchbook location" dentro la cartella "libraries". Quale è la tua "Sketchbook location" lo vedi nelle "preferenze" del IDE !

Guglielmo

P.S. Per la terza ed ultima volta ti invito a seguire il regolamento, punto 7, ed a modificare il tuo post racchiudendo il codice tra gli appositi tag CODE ! Dopo di che provvederò a segnalare la cosa ad un Mod.

Si scusami credevo avessi rispettato il punto 7 del regolamento e non mi ero accorto dei tuoi post scripta. Comunque ora il codice viene accettato. Dovrò soltanto provarlo.
In questo esempio si usano 2 matrici. Nel caso ne volessi usare 3 o 4 devo mettere il numero di quante ne sono semplicemente in questa riga? int maxInUse = 2
Nel caso in cui volessi aggiungere tipo un tastino o una matrice di tasti dove ad ognuno corrisponde una frase è molto complicato?

mrpasquale970:
...
In questo esempio si usano 2 matrici. Nel caso ne volessi usare 3 o 4 devo mettere il numero di quante ne sono semplicemente in questa riga?

int maxInUse = 2

La riga completa dice :

int maxInUse = 2;  //how many MAX7219 are connected

quindi sembrerebbe di SI ... ma NON conosco la libreria, bisognerebbe verificare cosa fa esattamente il codice e quali sono i limiti.

mrpasquale970:
Nel caso in cui volessi aggiungere tipo un tastino o una matrice di tasti dove ad ognuno corrisponde una frase è molto complicato?

NON esistono cose facili e cose complicate ...
... semplicemente esistono cose che si sanno fare e cose che non si sanno fare ... quindi ... :grin: :smiley: :grin:

Guglielmo

Ma gli errori "warning" sono misteriosamente scomparsi?

Ragazzi ho comprato delle nuove matrici da aggiungere ma cambiando il parametro di questo comando:

 int maxInUse = 2;  //how many MAX7219 are connected

Mi continuano a funzionare sempre e comunque solo due matrici. Sbaglio o manco qualcosa?