Bonjour a tous
Mon projet, une matrice de leds de 16x16 que je vais mettre a l’arrière sur un vélo.
Si je n’appuie pas sur aucun bouton une flèche indique que j'avance, appuie sur bouton gauche flèche gauche de mème pour droite et pour l’arrêt un panneau stop apparait et j'aimerais qu'il clignote.
Le problème c'est que je n'arrive pas a trouver la bonne commande pour le faire, j'ai tester avec matrix.clear, matrix.clr, matrix.off, rien a faire et j'ai vue qu'il y avais fastled.clear, j'ai modifier mon bout de code et je ne trouve pas comment faire.
Voici programme complet;
// Déclencher l'allumage du paneau de LED à l'aide de 4 interrupteurs
#include <Adafruit_GFX.h>
#include <Adafruit_NeoMatrix.h>
#include <Adafruit_NeoPixel.h>
#define PIN 8
// Initialisation des constantes :
const int Gauche = 7; // Numéro de la broche à laquelle est connecté le bouton poussoir 1
const int Droite = 6; // Numéro de la broche à laquelle est connecté le bouton poussoir 2
const int Arret = 5; // Numéro de la broche à laquelle est connecté le bouton poussoir 3
// Déclaration des variables :
int etatGauche = 0; // variable qui sera utilisée pour stocker l'état du bouton 1
int etatDroite = 0; // variable qui sera utilisée pour stocker l'état du bouton 2
int etatArret = 0; // variable qui sera utilisée pour stocker l'état du bouton 3
Adafruit_NeoMatrix matrix = Adafruit_NeoMatrix(16, 16, PIN,
NEO_MATRIX_BOTTOM + NEO_MATRIX_RIGHT +
NEO_MATRIX_COLUMNS + NEO_MATRIX_ZIGZAG,
NEO_GRB + NEO_KHZ800);
const uint16_t colors[] = {
matrix.Color(0, 255, 0)
};
// le code dans cette fonction est exécuté une fois au début
void setup() {
// indique que la broche ledVerte, ledJaune et ledRouge sont des sorties :
// indique que la broche bouton est une entrée :
pinMode(Gauche, INPUT);
pinMode(Droite, INPUT);
pinMode(Arret, INPUT);
matrix.begin();
matrix.setTextWrap(false);
matrix.setBrightness(25);
matrix.setTextColor(colors[0]);
}
int x = matrix.width();
int pass = 0;
// le code dans cette fonction est exécuté en boucle
void loop() {
// lit l'état du bouton et stocke le résultat dans etatBouton
etatGauche = digitalRead(Gauche);
etatDroite = digitalRead(Droite);
etatArret = digitalRead(Arret);
// Si etatBouton1 est à 5V (HIGH) c'est que le bouton est appuyé
if (etatGauche == HIGH) {
Adafruit_NeoMatrix matrix = Adafruit_NeoMatrix(16, 16, PIN,
NEO_MATRIX_BOTTOM + NEO_MATRIX_RIGHT +
NEO_MATRIX_COLUMNS + NEO_MATRIX_ZIGZAG,
NEO_GRB + NEO_KHZ800);
const uint16_t colors[] = {
matrix.Color(0, 255, 0)};
matrix.begin();
matrix.setTextWrap(false);
matrix.setBrightness(25);
matrix.setTextColor(colors[0]);
matrix.fillScreen(0);
matrix.setCursor(x, 4);
matrix.print(F("<<<<<"));
if (--x < -30
) {
x = matrix.width();
matrix.setTextColor(colors[pass]);
}
matrix.show();
delay(20);
}
else if (etatDroite == HIGH) {
Adafruit_NeoMatrix matrix = Adafruit_NeoMatrix(16, 16, PIN,
NEO_MATRIX_BOTTOM + NEO_MATRIX_LEFT +
NEO_MATRIX_COLUMNS + NEO_MATRIX_ZIGZAG,
NEO_GRB + NEO_KHZ800);
const uint16_t colors[] = {
matrix.Color(0, 255, 0) };
matrix.begin();
matrix.setTextWrap(false);
matrix.setBrightness(25);
matrix.setTextColor(colors[0]);
matrix.fillScreen(0);
matrix.setCursor(x, 4);
matrix.print(F("<<<<<"));
if(--x < -30) {
x = matrix.width();
matrix.setTextColor(colors[pass]);
}
matrix.show();
delay(20);
}
else if (etatArret == HIGH) {
Adafruit_NeoMatrix matrix = Adafruit_NeoMatrix(16, 16, PIN,
NEO_MATRIX_BOTTOM + NEO_MATRIX_RIGHT +
NEO_MATRIX_COLUMNS + NEO_MATRIX_ZIGZAG,
NEO_GRB + NEO_KHZ800);
const uint16_t colors[] = {
matrix.Color(255, 0, 0) };
matrix.begin();
matrix.setBrightness(5);
matrix.drawLine(5, 1, 9, 1, matrix.Color(255, 0, 0));
matrix.drawLine(4, 2, 10, 2, matrix.Color(255, 0, 0));
matrix.drawLine(3, 3, 11, 3, matrix.Color(255, 0, 0));
matrix.drawLine(2, 4, 12, 4, matrix.Color(255, 0, 0));
matrix.drawLine(1, 5, 13, 5, matrix.Color(255, 0, 0));
matrix.drawLine(1, 6, 13, 6, matrix.Color(255, 0, 0));
matrix.drawLine(1, 7, 13, 7, matrix.Color(255, 0, 0));
matrix.drawLine(1, 8, 13, 8, matrix.Color(255, 0, 0));
matrix.drawLine(1, 9, 13, 9, matrix.Color(255, 0, 0));
matrix.drawLine(2, 10, 12, 10, matrix.Color(255, 0, 0));
matrix.drawLine(3, 11, 11, 11, matrix.Color(255, 0, 0));
matrix.drawLine(4, 12, 10, 12, matrix.Color(255, 0, 0));
matrix.drawLine(5, 13, 9, 13, matrix.Color(255, 0, 0));
matrix.show();
delay(20);
}
else {
// ***** avance
Adafruit_NeoMatrix matrix = Adafruit_NeoMatrix(16, 16, PIN,
NEO_MATRIX_BOTTOM + NEO_MATRIX_RIGHT +
NEO_MATRIX_ROWS + NEO_MATRIX_ZIGZAG,
NEO_GRB + NEO_KHZ800);
const uint16_t colors[] = {
matrix.Color(0, 255, 0)};
matrix.begin();
matrix.setTextWrap(false);
matrix.setBrightness(25);
matrix.setTextColor(colors[0]);
matrix.fillScreen(0);
matrix.setCursor(x, 4);
matrix.print(F("<<<<<"));
if (--x < -30
) {
x = matrix.width();
matrix.setTextColor(colors[pass]);
}
matrix.show();
delay(20);
}
}
Voici la parti du programme que je veux faire clignoter;
else if (etatArret == HIGH) {
Adafruit_NeoMatrix matrix = Adafruit_NeoMatrix(16, 16, PIN,
NEO_MATRIX_BOTTOM + NEO_MATRIX_RIGHT +
NEO_MATRIX_COLUMNS + NEO_MATRIX_ZIGZAG,
NEO_GRB + NEO_KHZ800);
const uint16_t colors[] = {
matrix.Color(255, 0, 0) };
matrix.begin();
matrix.setBrightness(5);
matrix.drawLine(5, 1, 9, 1, matrix.Color(255, 0, 0));
matrix.drawLine(4, 2, 10, 2, matrix.Color(255, 0, 0));
matrix.drawLine(3, 3, 11, 3, matrix.Color(255, 0, 0));
matrix.drawLine(2, 4, 12, 4, matrix.Color(255, 0, 0));
matrix.drawLine(1, 5, 13, 5, matrix.Color(255, 0, 0));
matrix.drawLine(1, 6, 13, 6, matrix.Color(255, 0, 0));
matrix.drawLine(1, 7, 13, 7, matrix.Color(255, 0, 0));
matrix.drawLine(1, 8, 13, 8, matrix.Color(255, 0, 0));
matrix.drawLine(1, 9, 13, 9, matrix.Color(255, 0, 0));
matrix.drawLine(2, 10, 12, 10, matrix.Color(255, 0, 0));
matrix.drawLine(3, 11, 11, 11, matrix.Color(255, 0, 0));
matrix.drawLine(4, 12, 10, 12, matrix.Color(255, 0, 0));
matrix.drawLine(5, 13, 9, 13, matrix.Color(255, 0, 0));
matrix.show();
delay(20);
}
Quelqu'un aurait-il une idée de la commande ou un site qui pourrais m'aider a comprendre, je vous remercie d'avance de l'aide que vous pourrez m'apporter pour finir mon projet.