Une (petite) vidéo pour montrer le déroulement d'un texte horizontal voir programme en dessous
Vidéo 5 Matrices LEDS 8x8 Vertical avec MAX7219.mp4
Le programme pour arduino UNO modifier pour 5 matrices
max7219_dot_matrix_scroll_text.ino
Le but c'est de faire fonctionner la matrice 4 fois 8×8 en un bloc , si l'on prend le même programme avec les 4 matrices 8×8 , on obtient ceci :
Vidéo 4 Matrices LEDS 8x8 horizontal avec MAX7219.mp4
J'ai modifié un peu me programme original comme ceci : J'ai affiché : le caractere 0 sur l'afficheur 4 (ch3) le caractére 1 sur l'afficheur 3 (ch2) etc…
void loop(){
lc.displayChar(0, lc.getCharArrayPosition(ch3)); lc.displayChar(1, lc.getCharArrayPosition(ch2)); lc.displayChar(2, lc.getCharArrayPosition(ch1)); lc.displayChar(3, lc.getCharArrayPosition(ch0));
…..
}
Maintenant il s'agit de tourner les lettres de 90° à l'inverse des aiguilles d'une montre , pour avoir les lettres dans le bon sens. Mais je pense qu'il faut directement modifier la bibliothèque “LedControlMS.h” dans la partie “const static byte alphabetBitmap[41][6]={”
const static byte alphabetBitmap[41][6]={
{0x0,0x10,0x10,0x10,0x10,0x0},// - {0x0,0x0,0x80,0x0,0x0,0x0},// . {0xFC,0x9,0x11,0x21,0xFC,0x0},//Ñ {0xFE,0x11,0x11,0x11,0xFE,0x0},//A {0xFF,0x89,0x89,0x89,0x76,0x0},//B
Si l'on prend la lettre “B” {0xFF,0x89,0x89,0x89,0x76,0x0},/B et que l'on modifie les valeurs Hexa comme exemple de Test ( programme du début) {0x3C,0x22,0x22,0x3E,0x22,0x22,0x3C,0x0},/B et que l'on remplace la ligne directement dans la bibliothèque . On fait un test.
Cela ne pourra pas fonctionner car la première lettre B et codée sur 5 colonnes et la deuxième lettre B et codée sur 8 colonnes. Il faut créer de toutes pièces la lettre B vertical sur 5 colonnes. Ou alors modifier la valeur de la const static byte alphabetBitmap[41][6] en [38][8]. A tester
Cela ne fonctionne pas , il faut ( pour l'instant) rester sur [41] mais on peut modifier la deuxième valeur en [8] ce nous donne :
const static byte alphabetBitmap[41][8]={
{0xf8, 0x88, 0x88, 0x88, 0x88, 0xf8, 0x00, 0x00}, //0 {0x18, 0x28, 0x48, 0x08, 0x08, 0x08, 0x00, 0x00}, //1 {0xf0, 0x10, 0x20, 0x40, 0x80, 0x78, 0x00, 0x00},//2 {0xf8, 0x08, 0x38, 0x38, 0x08, 0xf8, 0x00, 0x00},//3 {0x80, 0x80, 0x80, 0xf8, 0x08, 0x08, 0x00, 0x00},//4 {0xf8, 0x80, 0xf0, 0x08, 0x08, 0xf0, 0x00, 0x00},//5 {0x40, 0x80, 0x80, 0xf8, 0x88, 0xf8, 0x00, 0x00},//6 {0xf8, 0x08, 0x10, 0x20, 0x40, 0x80, 0x00, 0x00},//7 {0xf8, 0x88, 0xf8, 0x88, 0x88, 0xf8, 0x00, 0x00},//8 {0xf8, 0x88, 0xf8, 0x08, 0x08, 0xf8, 0x00, 0x00},//9 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},// blank space {0x20, 0x20, 0x00, 0x00, 0x20, 0x20, 0x00, 0x00}, //: {0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00},// - {0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0x00, 0x00},// . {0xFC,0x9,0x11,0x21,0xFC,0x0},//Ñ {0x70, 0x88, 0xf8, 0x88, 0x88, 0x88, 0x00, 0x00},//A {0xf0, 0x88, 0xf0, 0x88, 0x88, 0xf0, 0x00, 0x00},//B
……………………….
Utilisation du site : Creation de matrice 8x8
Fichier LedControlMS.h modifie pour avoir les lettres verticales
ledcontrolms_lettres_verticale.h.zip
A renommer en LedControlMS.h et à insérer dans le dossier Arduino/libraries/LedControlMS pour remplacer l'ancien. Ou alors créer un autre librairie.
Il reste à voir comment rendre l'affichage plus fluide et en utilisant toutes les LEDs pour afficher les caractères
Un programme qui affiche un texte déroulant avec la date et l'heure ( à 5s ). il faut utiliser un shield RTC pour garder l'heure en mémoire
max7219_horloge_08032017-2243.ino.zip
la date, l'heure, les secondes et … le début d'un poème connu … de qui est le poème …
max7219_horloge_12032017-1847.ino.zip
les variables ( le poème) prennent beaucoup de place en mémoire vive. Un arduino mega pourrait convenir pour afficher toutes les strophes du poème. Ou alors mettre les données sur une carte SD et lire au fur et a mesure. Cela reste à faire…