Bonjour,
je cherche à faire un journal défilant sur un shield avec 40 leds WS2812 réparties en 8 colonnes de 5 leds de haut.
Le shield:
La numérotation des leds est:
0 1 2 3 4 5 6 7
8 9 10 11 12 13 14 15
…
J’ai créé un alphabet de 3 (largeur) *5 (hauteur) leds pour chaque lettres.
J’arrive à afficher une phrase mais avec un seul caratère à la fois (que ce soit en défilant (ce que j’ai fait: YouTube ou non).
J’ai mis un point en remplacement des espaces pour les essais. Le texte est: “HELLO.WORLD.I.AM.NONO!”
Ma routine d’affichage:
affiche_lettre(pos_led, lettre, R,G,B), où pos_led (byte) est le numéro de la led et lettre (String) est la lettre à afficher.
Mon problème c’est que j’aimerais faire défiler ce texte de droite à gauche…
Dans la loop, j’ai:
text = "HELLO.WORLD.I.AM.NONO!";
text = text + " "; //On met 2 espace à la fin pour effacer l'affichage
longueur = text.length();
byte caracteres_restant = longueur;
byte caracteres_affiches;
while(caracteres_restant != 0) {
for(i = 0; i < 11; i++) {
affiche_lettre(7 - i, text.substring(caracteres_affiches, caracteres_affiches + 1), 10,0,0);
// affiche_lettre(7 - i - 7, text.substring(caracteres_affiches, caracteres_affiches + 1), 10,0,0); //H
// affiche_lettre(7 - i - 3, text.substring(caracteres_affiches + 1, caracteres_affiches + 2), 10,0,0); //E
// affiche_lettre(7 - i + 1, text.substring(caracteres_affiches + 2, caracteres_affiches + 3), 10,0,0); //L
delay(500);
strip.clear(); //Efface la lettre de son emplacement
if(7 - i == -3) { //La lettre est complètement effacée
caracteres_restant -= 1;
caracteres_affiches += 1;
}
}
}//fin while
L’un d’entre vous aurait-il un petit bout de code déjà tout fait?
Ou quelques trucs pour m’aider SVP?