Go Down

Topic: [Non réglé] Nombre de matrices leds (Read 458 times) previous topic - next topic

Elesan

Feb 15, 2016, 05:17 pm Last Edit: Feb 15, 2016, 05:35 pm by Elesan
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 :
Code: [Select]
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 :
Code: [Select]
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 :
Code: [Select]
#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 !

Go Up