==== Tutoriels MAX7219 avec matrice 8X8 ====
{{:start:module-d-affichage-max7219-en-kit-a-monter-pour-arduino.jpg?200|}}
=== Liens web tuto MAX7219 ===
* [[http://linksprite.com/wiki/index.php5?title=LED_Matrix_Kit|Montage Kit MAX7219 EN]]
* [[start:arduino:max7219:FR|Montage Kstart:arduino:max7219:FRit MAX7219 FR]]
* [[https://openclassrooms.com/courses/perfectionnez-vous-dans-la-programmation-arduino/concevez-des-matrices-de-led|Concevez des matrices de LED]]
* [[http://tiptopboards.free.fr/arduino_forum/viewtopic.php?t=6&p=6|Tuto MAX7219 Arduino]]
* [[http://wiki.labaixbidouille.com/index.phLien externep/Matrice_de_LED|Matrice 8X8]]
* [[http://idehack.com/blog/tutoriel-arduino-max7219-afficheur-8x8-led/|Tutoriel Arduino – MAX7219 Afficheur 8X8 LED]]
*[[http://tronixstuff.com/2013/10/11/tutorial-arduino-max7219-led-display-driver-ic/|MAX 7219]]
* [[http://linksprite.com/wiki/index.php5?title=LED_Matrix_Kit&oldid=9477|LED Matrix Kit]]
* [[http://electroniqueamateur.blogspot.fr/2015/12/matrice-de-64-leds-max7219-et-arduino.html|64 LEDS et MAX7219]]
* [[http://www.instructables.com/id/Multiple-LED-Matrixes-with-Arduino/|MAX7219 avec 4 matrices de LEDS 8X8 en cascade]]
* [[start:arduino:max7219:Matrice LED 4X_8x8-en Francais |]]
* [[http://www.fabriqueurs.com/arduino-et-matrices-de-leds-un-afficheur-pilote-depuis-internet/|LEDS 8X8 par internet]]
* [[https://youtu.be/TOuKnOG8atk|Une Video]]
=== Programmes ===
== Préparation Logiciels ==
{{:start:arduino:arduino.jpg?200|}}Utiliser ou télécharger la dernière version de [[https://www.arduino.cc/en/Main/Software|l'IDE Arduino]]
Le diagramme de synchronisation pour Max7219 et son format de données série sont joints ci-dessous avec ses caractéristiques électroniques.
{{:start:arduino:400px-software1.jpg?600|}}
{{:start:arduino:400px-software2.jpg?600|}}
== Un programme de test sans librairie à inclure ==
unsigned char i;
unsigned char j;
/*Port Definitions*/
int Max7219_pinCLK = 10;
int Max7219_pinCS = 9;
int Max7219_pinDIN = 8;
unsigned char disp1[38][8]={
{0x3C,0x42,0x42,0x42,0x42,0x42,0x42,0x3C},//0
{0x10,0x18,0x14,0x10,0x10,0x10,0x10,0x10},//1
{0x7E,0x2,0x2,0x7E,0x40,0x40,0x40,0x7E},//2
{0x3E,0x2,0x2,0x3E,0x2,0x2,0x3E,0x0},//3
{0x8,0x18,0x28,0x48,0xFE,0x8,0x8,0x8},//4
{0x3C,0x20,0x20,0x3C,0x4,0x4,0x3C,0x0},//5
{0x3C,0x20,0x20,0x3C,0x24,0x24,0x3C,0x0},//6
{0x3E,0x22,0x4,0x8,0x8,0x8,0x8,0x8},//7
{0x0,0x3E,0x22,0x22,0x3E,0x22,0x22,0x3E},//8
{0x3E,0x22,0x22,0x3E,0x2,0x2,0x2,0x3E},//9
{0x8,0x14,0x22,0x3E,0x22,0x22,0x22,0x22},//A
{0x3C,0x22,0x22,0x3E,0x22,0x22,0x3C,0x0},//B
{0x3C,0x40,0x40,0x40,0x40,0x40,0x3C,0x0},//C
{0x7C,0x42,0x42,0x42,0x42,0x42,0x7C,0x0},//D
{0x7C,0x40,0x40,0x7C,0x40,0x40,0x40,0x7C},//E
{0x7C,0x40,0x40,0x7C,0x40,0x40,0x40,0x40},//F
{0x3C,0x40,0x40,0x40,0x40,0x44,0x44,0x3C},//G
{0x44,0x44,0x44,0x7C,0x44,0x44,0x44,0x44},//H
{0x7C,0x10,0x10,0x10,0x10,0x10,0x10,0x7C},//I
{0x3C,0x8,0x8,0x8,0x8,0x8,0x48,0x30},//J
{0x0,0x24,0x28,0x30,0x20,0x30,0x28,0x24},//K
{0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x7C},//L
{0x81,0xC3,0xA5,0x99,0x81,0x81,0x81,0x81},//M
{0x0,0x42,0x62,0x52,0x4A,0x46,0x42,0x0},//N
{0x3C,0x42,0x42,0x42,0x42,0x42,0x42,0x3C},//O
{0x3C,0x22,0x22,0x22,0x3C,0x20,0x20,0x20},//P
{0x1C,0x22,0x22,0x22,0x22,0x26,0x22,0x1D},//Q
{0x3C,0x22,0x22,0x22,0x3C,0x24,0x22,0x21},//R
{0x0,0x1E,0x20,0x20,0x3E,0x2,0x2,0x3C},//S
{0x0,0x3E,0x8,0x8,0x8,0x8,0x8,0x8},//T
{0x42,0x42,0x42,0x42,0x42,0x42,0x22,0x1C},//U
{0x42,0x42,0x42,0x42,0x42,0x42,0x24,0x18},//V
{0x0,0x49,0x49,0x49,0x49,0x2A,0x1C,0x0},//W
{0x0,0x41,0x22,0x14,0x8,0x14,0x22,0x41},//X
{0x41,0x22,0x14,0x8,0x8,0x8,0x8,0x8},//Y
{0x0,0x7F,0x2,0x4,0x8,0x10,0x20,0x7F},//Z
};
void Write_Max7219_byte(unsigned char DATA)
{
unsigned char i;
digitalWrite(Max7219_pinCS,LOW);
for(i=8;i>=1;i--)
{
digitalWrite(Max7219_pinCLK,LOW);
digitalWrite(Max7219_pinDIN,DATA&0x80);// Extracting a bit data
DATA = DATA<<1;
digitalWrite(Max7219_pinCLK,HIGH);
}
}
void Write_Max7219(unsigned char address,unsigned char dat)
{
digitalWrite(Max7219_pinCS,LOW);
Write_Max7219_byte(address); //address,code of LED
Write_Max7219_byte(dat); //data,figure on LED
digitalWrite(Max7219_pinCS,HIGH);
}
void Init_MAX7219(void)
{
Write_Max7219(0x09, 0x00); //decoding :BCD
Write_Max7219(0x0a, 0x03); //brightness
Write_Max7219(0x0b, 0x07); //scanlimit;8 LEDs
Write_Max7219(0x0c, 0x01); //power-down mode:0,normal mode:1
Write_Max7219(0x0f, 0x00); //test display:1;EOT,display:0
}
void setup()
{
pinMode(Max7219_pinCLK,OUTPUT);
pinMode(Max7219_pinCS,OUTPUT);
pinMode(Max7219_pinDIN,OUTPUT);
delay(50);
Init_MAX7219();
}
void loop()
{
for(j=0;j<38;j++)
{
for(i=1;i<9;i++)
Write_Max7219(i,disp1[j][i-1]);
delay(500);
}
}
== Programmes avec librairies à inclure ==
*{{ :start:afficheur8x8.zip |}}
*{{ :start:max7219_dot_matrix_scroll_text.ino.zip |}}
*{{ :start:arduino:web-scroll-matrix-master.zip |}}
*{{ :start:arduino:max7219_100.ino.tar.gz |}}
== Librairies ==
Différentes librairies à tester
*{{ :start:arduino:ledcontrol.zip |}}
*{{ :start:arduino:ledcontrol-master.zip |}}
*{{ :start:arduino:maxmatrix.zip |}}
Une librairie pour les matrices en cascade ( à essayer ...)
*{{ :start:arduino:ledcontrolms_f79uc7xhkcjmpgv.zip |}}
Une autre librairie mais pour le Raspberry ( A voir lors d'une autre soirée ...)
* {{ :start:arduino:luma.led_matrix-master_raspberry.zip |}}
* On peut y voir une demo en image animée...
=== Pour la création de codes pour matrices de LEDS ===
Envoyer par Fernand
[[http://jorydotcom.github.io/matrix-emoji/|8x8 Matrix Character Creator]]
Pour la création de caractères 8X8 sur la matrice de LEDs
*[[http://xantorohara.github.io/led-matrix-editor/|Leds Matrice editor]]
*Le programme qui va avec :
*[[http://xantorohara.blogspot.fr/2015/09/arduino-store-64-bit-integers-in-progmem.html|Programme pour matrice]]
Toujours envoyer par Fernand : un programme de test, ne pas oublier d'inclure les 2 librairies ci-dessous
[[https://www.tokopedia.com/daelectronics/module-led-dot-matrix-32x8-display-with-max7219-for-arduino| Matrix 32x8 Max7219 ]]
*{{:start:arduino:650000_c462b588-77d8-4da2-a90c-8fb744af3f10.jpg?200|}}
*{{ :start:arduino:exemple_002_code_max7219.ino.zip |exemple 002 programme 32X8}}
* {{ :start:arduino:adafruit-gfx-library-master.zip |Librairie Adafruit_gfx}}
* {{ :start:arduino:arduino-max72xxpanel-master.zip |Librairie Max72xx}}
include SPI.h
#include Adafruit_GFX.h
#include Max72xxPanel.h
int pinCS = 10; // Attach CS to this pin, DIN to MOSI and CLK to SCK (cf http://arduino•cc/en/Reference/SPI )
int numberOfHorizontalDisplays = 1;
int numberOfVerticalDisplays = 4;
Max72xxPanel matrix = Max72xxPanel(pinCS, numberOfHorizontalDisplays, numberOfVerticalDisplays);
String tape = "Ayo belajar Arduino bersama DA Electronics";
int wait = 50; // In milliseconds
int spacer = 1;
int width = 5 + spacer; // The font width is 5 pixels
void setup() {
matrix.setIntensity(7); // Use a value between 0 and 15 for brightness
// Adjust to your own needs
matrix.setRotation(matrix.getRotation() + 1 ); // The first display is position upside down
// matrix.setRotation(1, 1); // The first display is position upside down
}
void loop() {
for ( int i = 0 ; i < width * tape.length() + matrix.width() - 1 - spacer; i++ ) {
matrix.fillScreen(LOW);
int letter = i / width;
int x = (matrix.width() - 1) - i % width;
int y = (matrix.height() - 8) / 2; // center the text vertically
while ( x + width - spacer >= 0 && letter >= 0 ) {
if ( letter < tape.length() ) {
matrix.drawChar(x, y, tape[letter], HIGH, LOW, 1);
}
letter--;
x -= width;
}
matrix.write(); // Send bitmap to display
delay(wait);
}
}