Bonjour à tous,
Je suis sur un nouveau projet où je voudrai faire plusieurs choses sur un ensemble de 7 matrices ws2812. Je voudrai pouvoir, suivant la commande envoyé sur la carte arduino uno, soit afficher un texte, soit mettre en rouge 5 matrices qui vont s'allumer l'une après l'autre et tout effacer après la 5ème (la 1, puis 1-2, 1-2-3, 1-2-3-4, 1-2-3-4-5) et afficher un nouveau texte après avoir tout effacé.
Au niveau du programme, je pense avoir sortir quelque chose, même s'il n'est pas fini, il n'y a pas les déclenchements ça tourne en boucle dans le loop.
J'ai regardé pas de vidéos et tutos, et ce qui me paraissait compliqué fonctionne (l'affichage des textes, même avec défilement) par contre là où je bloque c'est sur l'allumage d'une matrice entière (les 64 leds). Sans doute que je ne met pas ce qu'il faut (enfin c'est sur).
Je mettrai le code complet à la fin.
Ce qui ce passe c'est qu'au lieu d'avoir les 8x8 leds qui s'allument je n'ai que 5 colonnes et 7 lignes (en partant du "matrix.setCursor(32, 0);" que je définit et cela quelque soit la valeur max du pixel. Jusqu'à 10 j'ai ce rectangle de 5x7 et au dessus j'ai un 2ème rectangle qui se forme décalé d'une colonne sur la droite.
Est-ce que vous pourriez m'aider et me dire quel serait les bonnes lignes de code pour que cela fonctionne.
Merci par avance de votre aide,
Amitiés.
#include <Adafruit_GFX.h>
#include <Adafruit_NeoMatrix.h>
#include <Adafruit_NeoPixel.h>
//Adafruit_NeoMatrix matrix = Adafruit_NeoMatrix(32,8,2,
// NEO_MATRIX_BOTTOM + NEO_MATRIX_RIGHT+
// NEO_MATRIX_COLUMNS + NEO_MATRIX_ZIGZAG,
// NEO_GRB + NEO_KHZ800);
Adafruit_NeoMatrix matrix = Adafruit_NeoMatrix(56,8,4, NEO_MATRIX_BOTTOM + NEO_MATRIX_LEFT +
NEO_MATRIX_COLUMNS + NEO_MATRIX_PROGRESSIVE, NEO_GRB + NEO_KHZ800 );
void setup(){
matrix.begin();
matrix.setTextWrap(false);
matrix.setBrightness(10);
}
void loop() {
//afficherTexte();
decompte();
}
void afficherTexte(){
matrix.fillScreen(0);
matrix.setTextColor(matrix.Color(0, 200, 0));
for(int x=56; x>=-255; x-=1) {
matrix.setCursor(x, 1);
matrix.print("Bienvenue au circuit Paul Ricard de l AMR33"); //lasdi
matrix.show();
delay(20);
matrix.fillScreen(0);
}
}
//allumage de 5 matrices successivement puis donner départ
void decompte(){
matrix.fillScreen(0);
matrix.setTextColor( matrix.Color(200, 0, 0));
for(int pixel = 0; pixel <10; pixel ++){
//matrix.setPixelColor(pixel, matrix.Color(200, 0, 0));
matrix.setCursor(40, 0);
matrix.print(pixel);
matrix.show();
}
delay(1000);
for(int pixel = 0; pixel < 10; pixel ++){
//matrix.setPixelColor(pixel, matrix.Color(200, 0, 0));
matrix.setCursor(32, 0);
matrix.print(pixel);
matrix.show();
}
delay(1000);
for(int pixel = 0; pixel < 10; pixel ++){
//matrix.setPixelColor(pixel, matrix.Color(200, 0, 0));
matrix.setCursor(24, 0);
matrix.print(pixel);
matrix.show();
}
delay(1000);
for(int pixel = 0; pixel < 10; pixel ++){
//matrix.setPixelColor(pixel, matrix.Color(200, 0, 0));
matrix.setCursor(16, 0);
matrix.print(pixel);
matrix.show();
}
delay(1000);
for(int pixel = 0; pixel < 10; pixel ++){
//matrix.setPixelColor(pixel, matrix.Color(200, 0, 0));
matrix.setCursor(8, 0);
matrix.print(pixel);
matrix.show();
}
delay(1000);
matrix.fillScreen(0);
matrix.setTextColor(matrix.Color(200, 0, 00));
matrix.setCursor(22, 1);
matrix.print("GO");
matrix.show();
delay(5000);
}