Matrice leds animation

bonjour, je voudrais melanger ces deux codes ci dessous pour que ca fasse défiler le texte "kerbal controller 1.0" et puis après l'animation suivante avec les a
merci de votre réponse

le premier code pour le texte :

#include <MD_Parola.h>
#include <MD_MAX72xx.h>
#include <SPI.h>
 
#define HARDWARE_TYPE MD_MAX72XX::FC16_HW

 
#define MAX_DEVICES 4
#define CS_PIN 10
 
MD_Parola myDisplay = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);


 
void setup() {




 
  myDisplay.begin();
  myDisplay.setIntensity(4);
  myDisplay.displayClear();
  myDisplay.displayScroll("Kerbal Controller 1.0", PA_CENTER, PA_SCROLL_LEFT, 200);
}
 
void loop() {



  if (myDisplay.displayAnimate()) {
     myDisplay.displayReset();
   
  }
}

le second code pour l'animation :

#include <LedControl.h>

// Broches de connexion
const int DIN_PIN = 11;
const int CS_PIN = 10;
const int CLK_PIN = 13;

// Initialisation de la bibliothèque LedControl pour 4 matrices
LedControl lc = LedControl(DIN_PIN, CLK_PIN, CS_PIN, 4);

void setup() {
  // Initialisation des modules MAX7219
  for (int i = 0; i < 4; i++) {
    lc.shutdown(i, false);
    lc.setIntensity(i, 8); // Réglage de la luminosité (0-15)
    lc.clearDisplay(i); // Effacer l'affichage
  }

  // Faire glisser la lettre A d'écran en écran une seule fois
  for (int position = 0; position < 32; position++) {
    afficherLettreA(position);
    delay(200); // Délai pour contrôler la vitesse de défilement
  }

  // Effacer tous les écrans à la fin du défilement
  for (int i = 0; i < 4; i++) {
    lc.clearDisplay(i);
  }
}

void loop() {
  // Rien à faire dans la boucle principale
}

void afficherLettreA(int position) {
  byte lettreA[8] = {
    B00111100,
    B01100110,
    B11000011,
    B11000011,
    B11111111,
    B11000011,
    B11000011,
    B11000011
  };

  // Effacer tous les écrans
  for (int matrix = 0; matrix < 4; matrix++) {
    lc.clearDisplay(matrix);
  }

  // Afficher la lettre A à la position donnée
  for (int i = 0; i < 8; i++) {
    int matrix = (position + i) / 8;
    int column = (position + i) % 8;
    if (matrix < 4 && column < 8) {
      lc.setRow(matrix, column, lettreA[i]);
    }
  }
}

"DOWN"

merci beaucoup ça m'a vraiment aidé

non vraiment pas quelqu'un d'autre svp ?

fait défiler un texte à travers l'écran

Fait défiler un texte à travers l'écran

Tu as essayé de dupliquer la ligne du premier en mettant "A" à la place du texte?

bonjour, ce sont deux codes differents qui ont été generé par ia et j'aimerai les mettre dans le même code à la suite

Ce sont 2 codes différents qui manifestement semblent faire la même chose. A savoir, faire défiler du texte. Donc, je pense que la première chose à essayer c'est de changer le texte pour voir si par hasard ça ne ferait pas l'affaire.

Comme le dit @fdufnews pas besoin d'assembler ces deux codes, tu peux faire ça avec un seul code.
Il y a un exemple de la bibliothèque qui fait un peu ce que tu veux : Parola_Scrolling

Le code est un peu complexe, car il peut utiliser un potentiomètre et un bouton poussoir pour gérer les animations. Mais on peut le simplifier :

#include <MD_Parola.h>
#include <MD_MAX72xx.h>
#include <SPI.h>

// Define the number of devices we have in the chain and the hardware interface
// NOTE: These pin numbers will probably not work with your hardware and may
// need to be adapted
#define MAX_DEVICES 8
#define CS_PIN    10

// HARDWARE SPI
MD_Parola P = MD_Parola(CS_PIN, MAX_DEVICES);

// Scrolling parameters
uint8_t scrollSpeed = 25;    // default frame delay value
textEffect_t scrollEffect = PA_SCROLL_LEFT;
textPosition_t scrollAlign = PA_LEFT;
uint16_t scrollPause = 2000; // in milliseconds

// Global message buffers shared by Serial and Scrolling functions
#define	BUF_SIZE	75
char curMessage[BUF_SIZE] = { "Kerbal Controller 1.0" };
char newMessage[BUF_SIZE] = { "A" };

void setup()
{
  Serial.begin(57600);
  Serial.print("\n[Parola Scrolling Display]\nType a message for the scrolling display\nEnd message line with a newline");

  P.begin();
  P.displayText(curMessage, scrollAlign, scrollSpeed, scrollPause, scrollEffect, scrollEffect);
}

void loop()
{
  if (P.displayAnimate()) P.displayReset();
  if (P.getTextAlignment() == MAX_DEVICES * 8) {
     strcpy(curMessage, newMessage);
     P.setTextAlignment(0);
  }
}

Il faut changer la valeur après MAX_DEVICES par le nombre de matrices que tu utilises.
Ce code fait comme le premier que tu donnes : il scrolle le texte. J'ai ajouté des commandes pour scroller un 'A' :

  if (P.getTextAlignment() == MAX_DEVICES * 8) {
     strcpy(curMessage, newMessage);
     P.setTextAlignment(0);
  }

A tester...

Bonjour 5laurence

Puisque tu as demandé à l'IA de te générer ces 2 codes, pourquoi ne pas lui demander de n'en faire qu'un?

Je n'ai pas essayé le résultat :wink:

Cordialement
jpbbricole