MAX7219 mills à la place de Delay

Message: bonsoir

je suis nouveau avec la communauté arduino, je travaille sur un projet avec Max7219 (8 Matrices 8x8
j’utilise la librairie
#include <MaxMatrix.h>
#include <avr/pgmspace.h>

je sollicite le support pour utiliser le mills à la place de delay
le problème est le temps de défilement du message l’horloge de RTC DS3231 s’arrête
j’ai utiliser le fonction mills à la place de Delay mais le mills n’agit pas sur la vitesse de scolling message le défilement de message se fait rapidement

merci d’avance

Code?
Tu peux mettre le delais que tu veux avec le timer millis, la seule différence c est qu il n est pas bloquant comme delay donc ton code continue a tourner, a toi de faire ton code pour que l affichage ne soit activé qu a la fin du timer quand (currentmillis-startmillis) > durée timer

Je ne connais pas cette bibliothèque. J'utilise MD_MAX72XX et MD_parola qui permet de faire des effets de texte.

Dans cette dernière l'exemple Parola_Scrolling permet de contrôler la vitesse de défilement

bonjour CelticLord

merci pour votre réaction, malheureusement, j'ai placer le delay par unsigned long timer;

timer millis(shift_speed);
m.shiftLeft(false, false);

mais par toujours donne erreur "Exepted ";" before mills

merci comme même si possible vous avez une idée sur ce message d'errer d'habitude il s'agit d'oublie de ";" mais ici ce n'est pas le cas

merci encore d'avance

Je te confirme, tout comme lesept, j'utilise aussi les mêmes librairies. Tu trouveras dans le lien ci-dessous l'échange que j'ai eu avec la communauté pour remplacer des delay par des millis pour mon affichage MAX7219.

bonjour weado
merci pour votre confirmation de mon souci, sans que vous dévoiler le résultat je garde le suspens et je vais jeté coup d’œil sur le lien espérant de bonnes nouvelles.

bonjour

de retour, je juge qu ça avance :slight_smile: j’ai essayé d’adapter mon code à votre conclusion
la question délai est réglée apparemment mais vin l’affichage me donne le ZERO “0” à la place de la phrase entre ""char text= "PROGRAMME HEBDOMADAIRE "; // Scrolling text
si vous pouvez agir encore

unsigned long previousMillisGeneral = 0;

const unsigned long TIME_GENERAL = 300; // 1 minutes

int DIN = 12; // DIN pin of MAX7219 module
int CLK = 10; // CLK pin of MAX7219 module
int CS = 11; // CS pin of MAX7219 module
int maxInUse = 8;
MaxMatrix m(DIN, CS, CLK, maxInUse);
byte buffer[10];
char text= "PROGRAMME HEBDOMADAIRE "; // Scrolling text
void setup() {
m.init(); // module initialize
m.setIntensity(15); // dot matix intensity 0-15
}
void loop() {

printStringWithShift(text, 0); // (text, scrolling speed)

}
// Display=the extracted characters with scrolling
void printCharWithShift(char c, int shift_speed) {

if (c < 32) return;
c -= 32;
memcpy_P(buffer, CH + 7 * c, 7);
m.writeSprite(72, 0, buffer);
m.setColumn(72 + buffer[0], 0);

unsigned long currentMillis = millis();

if (currentMillis - previousMillisGeneral >= TIME_GENERAL) {
previousMillisGeneral = currentMillis;

for (int i = 0; i < buffer[0] + 1; i++)
{

//delay(shift_speed);
m.shiftLeft(false, false);

}
}

bonsoir

juste pour infos,le problème persiste toujours pas de remède pour que le programme déroule normalement et affichage de scrolling texte sur le Max7219 de même espérant un support technique des experts;
bien à vous

Tu aurais pu mettre ton code entre balises.

Explications ICI : Faire un Nouveau Sujet ou le corriger avec les Balises... - Français - Arduino Forum

Tu définis une fonction printCharWithShift et tu appelles printStringWithShift ...

  memcpy_P(buffer, CH + 7 * c, 7);

C'est quoi CH ?

Tu es sûr que tu n'as pas plutôt un problème de compilation ?

bonjour

merci pour votre support je n’ai pas pu copier la totalité du code par ce que ça dépasse le nb de caractère autorisé
par contre je n’ai pas compris ajouter un fonction…
ci-dessous la partie du code non publiée:

[#include “Wire.h”
#include “TM1637.h”

#include “MaxMatrix.h”
#include “avr/pgmspace.h”

PROGMEM const char 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, B00000000, B00000000, B11111010, B11111010, B00001010, // 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, // ~
4, 8, B00100110, B00100011, B00110001, B00110101, B00111000, B00110111, 00111011, //?
};

Ce que dit hbachetti c'est qu'ici

void loop() {
 

 printStringWithShift(text, 0); // (text, scrolling speed)

 
 }
// Display=the extracted characters with scrolling
void printCharWithShift(char c, int shift_speed) {

La loop appelle une fonction mais c'est une autre fonction qu'on voit plus bas. Où se trouve la fonction printStringWithShift ?

bonjour
ci-dessous le le void:

void printStringWithShift(char* s, int shift_speed){
  while (*s != 0){
    printCharWithShift(*s, shift_speed);
    s++;
  }
}

pour infos, les deu partie de ode ça marhe très bien:

  • l’affichage Max7219 (le srolling impicable)
  • l'hologe et l'affaihage TM1637 très bien
    mais quant je les combine , l’horloge se bloque
    merci d'avance

:slight_smile: :slight_smile: :slight_smile: :slight_smile:

bonsoir,
merci pour tous les participants ainsi que tous le monde du forum
finalement, j'ai réussi à contourner le problème de blocage de l'horloge
La solution que j'ai adapté peut être la plus optimum mais pour moi ça règle le problème.
J'ai opté de rajouter une carte Arduino esclave pour gérer l'affichage max 7219
ci dessous le lien pour s’inspirer:

à la prochaine