Bonjour à tous !
Je suis actuellement sur un projet avec des matrices leds de chez Selectronic (32x8, drivers ht1632C).
Mon problème est sur la gestion de plus de 4 matrices.
Je n'arrive à faire fonctionner que 4 matrices en même temps au maximum !
Je modifie la bibliothèque pour que je puisse gérer 6 matrices, une fois fait, je téléverse mon code sur l'arduino et ça fonctionne... Du moins tant que je laisse l'alimentation branchée !
En effet, si je débranche l'arduino et que je rebranche (quand je reset quoi), il n'y plus que 4 matrices qui affichent des choses...
Je ne pense pas que cela soit vraiment utile de montrer le code, mais sait-on jamais.
Donc voilà mon setup :
void setup ()
{
Serial.begin(9600);
HT1632.begin(2, 3, 4, 5, 6, 7, DATA, WR);
string = "Hello World !";
wd = HT1632.getTextWidth(string, FONT_5X4_END, FONT_5X4_HEIGHT) + 1;
}
Voici ma loop :
void loop ()
{
int j = -1;
static int i = 0;
while (++j < 6)
{
HT1632.renderTarget(j);
HT1632.clear(reverse);
HT1632.drawText(string, OUT_SIZE * (j + 1) - i, 1, FONT_5X4, FONT_5X4_END, FONT_5X4_HEIGHT, reverse);
HT1632.render();
}
++i;
if ((i - wd) >= (OUT_SIZE * 6 - 1))
i = 0;
delay(42);
}
J'utilise la librairie ici :
https://github.com/gauravmm/HT1632-for-Arduino/tree/master/Arduino/HT1632
Je l'ai juste modifié un peu pour y ajouter 2 matrices.
La doc de la matrice :
http://www.selectronic.fr/media/pdf/138015.pdf
Voici le code entier :
#include <font_5x4.h>
#include <images.h>
#include <HT1632.h>
#define DATA 9
#define WR 8
bool reverse = false;
int wd = 0;
String string;
void setup ()
{
Serial.begin(9600);
HT1632.begin(2, 3, 4, 5, 6, 7, DATA, WR);
string = "Hello World !";
wd = HT1632.getTextWidth(string, FONT_5X4_END, FONT_5X4_HEIGHT) + 1;
}
void loop ()
{
int j = -1;
static int i = 0;
while (++j < 6)
{
HT1632.renderTarget(j);
HT1632.clear(reverse);
HT1632.drawText(string, OUT_SIZE * (j + 1) - i, 1, FONT_5X4, FONT_5X4_END, FONT_5X4_HEIGHT, reverse);
HT1632.render();
}
++i;
if ((i - wd) >= (OUT_SIZE * 6 - 1))
i = 0;
delay(42);
}
Merci d'avoir tout lu !