V0 18/12/2016
rev 31/12/2016


TEST Interface Matrices de leds 8x8 avec MAX7219 et PIC18F46K22

Liens utiles :
*
Tuto Texte defilant par Patou149
*
Max7219 par Patou149
*
Autre application : 8 leds seulement pour Texte defilant
*
Discussion sur ce sujet


Presentation hardware
1ere version 2 afficheurs 8x8
2em version 4 afficheurs _x8
3em Version 4 affiheurs 8x8 + RTC DS1307 + BlueTooth



Module d'interface MAX7219

HARDWARE :

Lien pour plus de details sur le MAX7219 : MiniIntheBox Référence



Le Max7219 + Afficheur matricielle 8x8 leds + nappe d'interconnection


Prototype 2x:

images/t_Proto_Max7219_2xMatrice8x8.gif images/t_18F46K22_pinout.gif
Le prototype avec 2 matrice 8x8 Reperages Pins du 18F46K22



En haut : Pickit2 relié aux pins ICSP du PIC18
En haut ,à droite, Liaison UART1
Les 2 modules sont accolées, et reliés entre eux avec une petite nappe de 5 fils
La connection SPI ,n'est que sur le 1er digit.(module)

Les Liaisons :
L'ensemble est alimenté en 5V.
le chargement du programme se fait avec le Pickit2 , via les connections ICSP
Une laison Port COM Virtuel avec UART1 -> cordon Prolix 2303 -> USB -> Terminal PC(ici COM13)
RC6 =TX et RC7 =Rx , permet de "tracer" le programme

Liaison SPI :

Le module d'affichage est relié au PIC18F46K22 via 5 fils
2 fils : alimentation +5V et GND
3 fils SPI :
RC3 ->Clk ouput to -> CLK MAX7219
RC5 -> SDO output to -> DIN MAX7219
RC0 - >output to CS MAX7219
rajout Pull Down de 2,7K pour eviter l'allumage intempestif des matrices à la mise sous tension.
RC4 - SDI non connecté

images/t_18F46K22_SPI_link_MAX7219_8x8.gif


Les registres utiles du Max7219, extrait Datasheet :



SOFTWARE (MikroC)

void SPI_Write_To_7219(unsigned char adr, unsigned char d1, unsigned char d2);
void Clear_Matrices(void) ;
void Affiche_Char(unsigned char c, unsigned int v);
void Init_Module_Max7129_8x8(void);
void Affiche_Text_Matrice(unsigned char *p, unsigned int V);

void floattostr1(float n_decimal,char *texto_); // 2608 bytes


Les possibilités de décodage NE SONT PAS utilisées ici.

Une table de 1024 bytes est utilisée , pour le codage ascii au format 8x8
Affichage des Chiffres 0 à 9
Affichage d'un indice et de la Temperature ambiante, issue du capteur LM35DZ et voie analogique EA0


Projet MikroC zipé:

18F46K22_test_Max71219_2xMatrice8x8_161218.zip
contenu du zip:





2em Version avec 4 afficheurs matrice 8x8
19-12-2016
Prototype :

images/t_Proto_MAX7219_x4_Matice8x8.gif images/t_MAX7219x4_Assemblage_Meca_Front.gif images/t_MAX7219x4_Assemblage_Meca_Rear.gif
Prototype de test 4 matrices 8x8 Montage mecanique juxtaposé face ARRiere


SOFTWARE :

Presentation
Affiche les 16 Msg stockés en EEPROM PIC
Affichage des chiffres 0 à 9
Affichage message par defaut : "°*° Joyeux NOEL °*°"
Affichage "T°.Amb=40.2°C"
puis:
possibilité de Valider la mesure de temperature Ou Texte quelconque
Cde TEMP_ON ou TEMP_OFF
Possibilité de definir le message via le (clavier) Terminal :
Msg=Le message à afficher
Possibilité de modifie rla vitesse de defiement :
Speed=2 ( 2 à 512 maxi)

Evolutions:

Preselection de message en EEPROM
Jusqu'à 16 message de 64 cars ! dans l'EEPROM du PIC18F46K22
Possibilité de Choix du Msg à afficher , via la commande clavier EEPROM=0 ( 0 à 15)
choix modulo 64 definit par programme .. mais adaptable ..


MikroC:
Sources (version Software et Hardware SPI 1):

18F46K22_test_Max71219_4xMatrice8x8_SOFT_SPI_161220.c
18F46K22_test_Max71219_4xMatrice8x8_SPI1_Hardware_161220.c
Eeprom du PIC.

Projet zipé:
18F46K22_test_Max71219_4xMatrice8x8_SOFT_SPI_161220.zip

Used RAM (bytes): 582 (15%) Free RAM (bytes): 3293 (85%)
Used ROM (bytes): 13167 (20%) Free ROM (bytes): 52369 (80%)


Tracage programme sur le terminal



videos :
Max7129_Joyeux_Noel.webm
MAX7219_Temperature.webm





3em Version avec 4 afficheurs + RTC DS1307 + BlueTooth
29-12-2016

HARDWARE :
images/t_18F46K22_Max7219_RTC_UART_interconnections.gif
Rajout Materiel :


Breakboard DS1307 RTC , equipé de sa pile de sauvegarde CR 2032
L'Horloge RTC est connectée sur le bus I2C2



Module Linvor Bluetooth (pastille Verte) :
*Mac Adresse :20:13:01:24:11:22
*apparait comme Linvor1122 dans l'application BlueSoleil.


Le module Bluetooth est relié à l'UART1 :

nota: R=750 sur UART1 TX , because 3,3V level
Nota: on peut garder en paralelle , si besoin est, le terminal PC via UART1 TX -> RX Prolic 2303

SOFTWARE :

Version speciale jour de l'AN 2017
La date et l'heure courante sont affichée en permanence, jusqu'à arriver à 5mn de la date de basculement sur l'an Neuf
On affiche alors le decompte en seconde de 300 -> Zero
Arrivé à moins de 4 secondes de l'echeance
L'Affichage bascule sur "Bonne Annee 2017" et reste pendant 120 secondes ..
puis à nouveau Affiche date et heure .. en 2017 !
On peut afficher en alternance , la date et heure ET un Msg quelconque OU La Temperature ambiante.
La liaison BlueTooth permet de mettre à l'heure la RTC en envoyant la commande
par exemple pour le 29 dec 2016 , jeudi , 17H07
#U;29;12;16;05;17;07#
Le programme BT_Simplex.apk dévelopé en RFO Basic permet de verifier le deroulement du programme et d'envoyer
des commandes via le clavier. (ou tout autre terminal Bluetooth)
De Meme , à partir d'un PC (avec BlueSoleil Application) , testé à 12 Metres, + TeraTerm Terminal (COM4)

images/t_BlueTooth_Linvor_Attachement_COM_termial.gif

Autres Possibilités de cette version :
"Msg=blablabla" Definition en live, d'un message à afficher max 78 cars
"TEMP_ON" affiche la temperature amb (LM335) en alternace avec le Message choisi
"TEMP_OFF" N'affiche PAS la temperature
"Speed=XX" selection de la vitesse d'affichage (translation pixel horizontal) XX 1 à 512
"EEPROM=xx" Selection d'un message numero xx ( 0 à 15) stocké en EEPROM
"DEMO" : Affiche Messages 0 à 15 stockes en EEPROM du PIC18F \r\n" ) ;
U;28;12;16;04;19;59# : RTC MAJ au format 28 dec 2016 Mercredi 19H59

Source :_18F46K2_test_Max71219_4xMatrice8x8_SOFT_SPI_LM335_161230.c
Chargeur :18F46K22_MAX7219_4x_Mat_8x8_SPI1_Softw_LM335_161230.hex
Projet zippé : _18F46K22_test_Max71219_4xMatrice8x8_SOFT_SPI_LM335_161230.c.zip


Tracage programme:




Applicationsur tablette Archos 43 Android.

images/t_Bt_Simplex_Msg_To_Max7219.gif images/t_Bt_Simplex_Etat_Max7219.gif  
Envoi message au PIC Max7219 via BlueTooth Acquis reception message, affiché sur MAX7219  


Videos:
Max7219_Nouvel_AN.webm
Max7219_Bonne_Annee.webm


Suggestions ?



paulfjujo@free.fr