Probleme defilement texte

Bonjour à tous. Je suis nouveau sur ce site et débutant dans le milieu soit très peu d'expérience (aide des TUTO).je viens de réaliser un journal lumineux avec 8 panneaux de leds adressables, WS2812B, 8x8, sur carte UNO et je rencontre un problème de défilement. La première ligne "matrix.print(F" défile bien mais la seconde ne défile pas du tout ("TEST") . Et J'aurais environ 15 lignes de 15 mots à entrer. alors si quelqu'un peux m'aider si mon projet est réalisable. Merci à vous et bonne soirée.

#include <Adafruit_GFX.h>
#include <Adafruit_NeoMatrix.h>
#include <Adafruit_NeoPixel.h>

#define PIN 9

Adafruit_NeoMatrix matrix = Adafruit_NeoMatrix(64, 8, PIN,
  NEO_MATRIX_TOP    + NEO_MATRIX_LEFT +
  NEO_MATRIX_COLUMNS + NEO_MATRIX_ZIGZAG,
  NEO_GRB            + NEO_KHZ800);

const uint16_t colors[] = {
  matrix.Color(255, 0, 255),   // Rose
  matrix.Color(0, 255, 0),     // Vert
  matrix.Color(0, 0, 255)      // Bleu
};

void setup() {
  matrix.begin();
  matrix.setTextWrap(false);
  matrix.setBrightness(3);
  matrix.setTextColor(colors[0]);  // Commence avec la couleur rose
}

int x = matrix.width();
int colorIndex = 0;

void loop() {
  matrix.clear();    // Effacer l'écran sans effacer le texte précédent
  matrix.setCursor(x, 0);
  
  // Afficher le premier texte
  matrix.print(F("TOTO TUTU TETE TITI"));
  if (--x < -1720) { 
    x = matrix.width();
    // Changer la couleur à chaque nouveau cycle
    colorIndex = (colorIndex + 1) % 3; // Utilisation de 3 couleurs
    matrix.setTextColor(colors[colorIndex]);
    
    // Attendre que le premier texte ait fini de défiler
    delay(3000); // Ajustez ce délai en fonction de la vitesse de défilement de votre texte
    
    // Afficher le texte "Test" après que le premier texte ait fini de défiler
    matrix.setCursor(x, 0); // Remettre le curseur à la bonne position pour le défilement
    matrix.print(F("Test"));
  }
  
  matrix.show(); // Mise à jour de l'affichage
  delay(40);
}

je ne sais pas si c'est le souci que vous rencontrez mais de manière générale il ne faut pas faire cela

➜ affecter matrix.width() hors du setup n'est pas garanti de vous fournir la bonne valeur (même si c'est écrit après la fonction setup, ce n'est pas évalué après que le setup() soit appelé.)

définissez vos variables globales au début du code

#include <Adafruit_GFX.h>
#include <Adafruit_NeoMatrix.h>
#include <Adafruit_NeoPixel.h>

const byte PIN = 9;
int x;
int colorIndex = 0;
...

et initialisez (si elle dépendent d'autres objets) dans le setup (pas besoin pour colorIndex)

void setup() {
  matrix.begin();
  matrix.setTextWrap(false);
  matrix.setBrightness(3);
  matrix.setTextColor(colors[0]);  // Commence avec la couleur rose
  x = matrix.width();
}

essayez aussi de choisir des noms de variables plus parlant (PIN, x) - ça ne coûte rien à l'exécution et ça simplifie la lecture du code, par exemple au lieu de x utilisez largeurMatrice ou au lieu de PIN utilisez brochePiloteMatrice ou un truc comme ça

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.