(Loading...)

lundi 2 août 2010

Journal lumineux à matrice de LED 8x8

La présente réalisation est l'aboutissement de l'exercice basé sur le chenillard 24 LED, composé d'un PIC 16F876A contrôlant une suite de LED via des registres à décalage 74HC595, ainsi que l'exercice mono-matrice 8x8. La combinaison des deux exercices permet d'obtenir ce que l'on appelle communément un journal lumineux.


Présentement il est composé de trois blocs de 8x8 matrices de LED, cependant il sera aisé d'en rajouter autant que l'on voudra simplement en enchainant des 74HC595 supplémentaires pour chaque module de LED additionné.

Le schéma

Le plus fascinant, lorsque l'on observe le schéma, est de constater que le PIC ne nécessite que 5 sorties avec cette méthode de démultiplication de ports. Un plus petit PIC pourrait convenir pour la gestion de ce type d'afficheur complexe. Dans ce cas-ci le reste des entrées/sorties du PIC peut être utilisé pour d'autres fonctions.

Le schéma présenté fonctionne juste pour les besoin du test, la gestion du courant sur les LED n'est pas optimisée, il faudra lui ajouter un driver de courant correct, soit en circuit intégré type ULN2xxx soit via transistors/résistances.



Un aperçu du test sur platine d'essais


Le code source.

Le fichier Proteus ISIS et son HEX



Spécification technique de la matrice utilisée issue du Datasheet, ici un modèle à anode commune bi-couleur.
J'y ai ajouté la disposition physique des broches de connexion.








 



Un utilitaire est présent dans la section téléchargement permettant de créer ses propres caractères (Merci Kawi).

Edit:

Un projet finalisé basé sur le présent code, dont la gestion du multiplexage a été réadaptée est publiée
sur l'excellent site de  Fabrice Sincère.



201 commentaires :

«Les plus anciens   ‹Précédent   1 – 200 sur 201   Suivant›   Les plus récents»
Lisa a dit…

j'aimerai réaliser un tableau d'affichage comme ce que vous montrez, avez-vous fait le circuit imprimé?

HeartyGFX a dit…

Bonjour,

Je n'ai encore conçu de platine pour ce montage, je dois avant, y apporter quelques améliorations pour le finaliser.
Comme par exemple une liaison via port série, pour charger le message.
Qui plus est, la partie gestion de courant des LEDs, n'est pas du tout optimisé encore.

;)


Anonyme a dit…

Bonjour HeartyGFX,

J'ai essayé de compiler le code source avec MikroC pro, j'ai eu ce message:

159 324 Undeclared identifier 'Spi1_Write'
226 324 Undeclared identifier 'Spi1_Init_Advanced'

Quel est le problème? !:-(

HeartyGFX a dit…

Bonjour,

Quel est le PIC utilisé?

Le code présenté est pourtant un export
en HTML sous MikroC du code utilisé.

Comme entre-temps j'ai retravaillé sur le code,
qui est en cours d'amélioration,

j'ai copier le code du site pour le recompiler,
afin de vérifier.

Hormis la variable i2 qu'il faut mettre
en commentaire, le code se compile normalement,
sans erreur.

;)


Wapaca a dit…

@anonyme : Regarde sur le library manager si tu as les library SPI de cochée ;)

HouSsEmUs a dit…

bonjour,
dab, merci pour le tuto,
le probleme est que je trouve pas le code source, la page s'affiche pas!
merci de la mettre a jour!

HeartyGFX a dit…

Bonjour,

Le code source est pourtant bien affiché,
Voir plutôt les paramètres du navigateur,
qui doivent empêcher l'affichage d'un Iframe,
et eventuellement l'affichage d'un Iframe issue d'un autre domaine, ce qui est le cas présentement.

Ou encore essayer avec un autre navigateur.

;)


Anonyme a dit…

tres bonne realisation
merci
j'ai rencontré 1 probleme bizzar ,tout est a l'inverse,l'affichage ce fait par des led non allumés

et vous disiez quoi d'1 journale ou le mots affiché rebondi ?
morci

HeartyGFX a dit…

Bonjour,

Merci,

Si les composants et le programme sont
les mêmes qu'ici il ne devrait pas y avoir
d'inversion d'affichage.

Cela doit venir des matrices qui ont les
cathodes, ou anodes inversées.

Pour remédier à cela,
il suffit d'inverser les états de sorties
au niveau du code.

En ajoutant un ~ devant la variable ASCII
comme suit:

HC595_0=~ASCII[i+dat]; // données sur le premier 595
HC595_1=~ASCII[(i+8)+dat]; // données sur le second 595
HC595_2=~ASCII[(i+16)+dat]; // données sur le troisième 595

;)


Anonyme a dit…

bonjour;
je travaille sur une application identique seulement j'utilise des matrices 5x7

HeartyGFX a dit…

Bonsoir,
Je ne sais pas s'il y a une question,
dans le commentaire.

Le principe est strictement le même.
Tu as juste à adapter le nombre de variable
du tableau, ainsi que les valeurs qui y font référence.

à bientôt.

;)


Kawi a dit…

Bonsoir,
j'ai essayé de réaliser en ISIS PROTEUS mais j'ai pas réussi je sais pas où est le probléme
Il me semble que le vitesse

Merci

HeartyGFX a dit…

Bonjour,

Je ne comprends pas bien la question,
tu dis que tu n'as pas réussi,
mais quoi?

il faudrait que tu expliques quel est le problème.

Ce que je peux te dire,
c'est que par défaut Proteus ne permet pas
d'afficher correctement le texte,
il faut que tu paramètres la vitesse d'affichage,
dans les options du menu "System"

- Set Display options :

Je suis en OpenGL

et "Highlight Animation":

"Animation Interval" = 10 ms

"Curseur Attack Rate" : curseur au milieu
"Release Rate": curseur vers la gauche
environ 6mm (délicat d'expliquer par écrit la position, désolé)

Puis ensuite l'autre réglage:

option "Animated Circuits Configuration"
"Frame rate per second" : 20
"Timestep per Frame" : 50m
"Single Step Time" : 50m
"Max SPICE Timestep" : 25m
"Step Animation Rate" : 4

Ce sont mes réglages sur un PC QuadCore,
Ces valeurs seront peut-être à modifier
sur un PC moins puissant.

A bientôt,

;)


Anonyme a dit…

Merci pour l'information
J'ai remarqué que vous n'avez pas mis le caractère "X" (X en majuscule) dans le tableau installé en ROM alors est ce que vous pouvez me le donner

encore merci

HeartyGFX a dit…

Bonjour,

Anonyme = Kawi?

Donc le problème était bien une question
de vitesse d'affichage?

Le code pour le "X" majuscule est le suivant:

0x00, 0xC3, 0x24, 0x18, 0x18, 0x24, 0xC3, 0x00, // Code pour char X

A bientôt,

;)


kawi a dit…

Merci

kawi a dit…

Bonjour,
Pouvez vous m'expliquer comment je peux déterminer les autres codes chars parce que je vais introduire des nouveaux codes en ROM
Merci.

HeartyGFX a dit…

Bonjour,

Je veux bien répondre aux questions,
mais il serait sympa de répondre aux miennes.

Ceci étant dit,
pour répondre à la question,
le principe est très simple:

Prenons le X,

en hexa 0x00, 0xC3, 0x24, 0x18, 0x18, 0x24, 0xC3, 0x00,

Traduisons chaque valeur Hexa en binaire.

0x00 = 00000000
0xC3 = 11000011
0x24 = 00100100
0x18 = 00011000
0x18 = 00011000
0x24 = 00100100
0xC3 = 11000011
0x00 = 00000000

Vois-tu se dessiner le X en valeur "1"?

Voilà pour dessiner à la main ses caractères.

Dans la section téléchargement tu as
deux utilitaires qui t'aideront.

pmaBinary, tout petit convertisseur bin/hexa/dec/ etc..
avec plein de petites fonctions utiles.

Ou alors,
carrément un outil visuel pour créer
tes propres caractères "GLCD font".

A bientôt,

;)


Anonyme a dit…

bonjour

je suis debutant en programmation je viens de réaliser votre projet du journal lumineux en MikroC avec 6 matrices 8x8
petit probleme de scintillement des leds non sollicités quelle et la solution
Merci pour votre aide

cordialement
slim

Kawi a dit…

merci beaucoup vraiment c très facile
concernant vos questions tout à fait Anonyme = Kawi (j'ai oublié de mettre le pseudo en premier commentaire) et pour le question de proteuse il était bien problème de vitesse d'affichage

encore merci beaucoup de répondre à mes questions que je les trouve difficile

HeartyGFX a dit…

Bonjour,

Anonyme (Slim),
Il te faut jouer avec la fréquence du timer,
puis jouer avec la variable de rafraichir,

Ce sont, dans mon code les deux paramètres
qui déterminent les temporisations
adéquates à un affichage sans scintillement.

Cependant mon code est optimisé
pour un affichage sur 3 matrices,
Peut-être que mon algorithme atteint ses limites
avec 6 matrices.

Tout dépend de la manière dont scintille l'affichage.

Quoiqu'il en soit avec le présent code,
tel qu'il est présenté, je ne vois que cela
pour régler au mieux les problèmes de scintillement.

Kawi, de rien ;)

A bientôt;

;)


Anonyme a dit…

Bonsoir

bon j'ai fais un test avec la fréquence et la variable toujour le même problème
dans le premier montage j'ai mis un uln2803A à la sortie du 4017
je pense changer et mettre a chaque sortie des 74HC595 à tester

Cordialement
slim

HeartyGFX a dit…

Bonsoir,

Effectivement,
étant donné que sur le présent montage,
la gestion du courant est gérée au plus simple,
il te faut optimiser celle-ci afin de lui donner
des pics de courant plus important permettant de maintenir
la persistance rétinienne au mieux.

Tiens moi au courant.

A bientôt,

;)


Kawi a dit…

Bonsoir,
Voici un programme que j'ai développé aujourd'hui qui génere les codes de caractéres dessiné correspond à votre programme de pic

http://www.4shared.com/file/im6QYUvK/generate_code_char.html

Vous pouvez le publier si vous voulez
Merci

HeartyGFX a dit…

Bonjour,

Voilà qui est excellent Kawi,
Je constate un bug cependant,
le path de l'image blanche semble incorrect,
j'ai une petite croix rouge (image manquante) à la place.

Si tu pouvais corriger ceci,
et ajouter la possibilité de switcher en inverse
un pixel sélectionné, ( un clic blanc, re-clic noir)
cela permettrait en cas d'erreur de tout effacer
et recommencer.

Je serais également curieux de voir le source,
j'en aurais certainement besoin
pour un futur projet de table lumineuse.

Et merci encore pour ce partage.

A bientôt,

;)


Kawi a dit…

Bonjour,
Je suis désolé pour l'erreur , ça y est je l'ai corrigé voici le lien

http://www.4shared.com/file/3yOpYSEe/generate_code_char_V11.html

Contenu : fichier d'installation + code source (en VB8) + exemple

Petite rémarque : Désinstallez l'autre version avant d'installer le nouveau

Encore désolé
merci

HeartyGFX a dit…

Bonjour,

Ne sois pas désolé,
c'est très sympa ce que tu as fait,
tu as en plus apporté les fonctionnalités demandées.

Simple mais fonctionnel.
Et parfaitement adapté à mon code,
ce qui le rend plus interessant.

J'ai jeté un coup d'oeil sur le code,
j'ai vu que tu avais forcé l'installation,
sur un répertoire racine,
ainsi que le path des images,
il suffit en fait simplement,
dans le code de mettre le nom de l'image
sans path et sans "/" ce qui permet de pouvoir
mettre le programme n'importe ou dans son disque.

Pour ma part je prefère un programme portable,
donc sans installation. Ce qui permet
une utilisation directe, et pouvoir l'avoir sur une clef USB.

Donc si cela ne te dérange pas je vais plutôt,
publier ta version mais sans installateur.

Encore merci Kawi ! ;)

A bientôt,

;)


HeartyGFX a dit…

Veux-tu que j'efface le message contenant l'adresse du code source de ton programme?

;)


Kawi a dit…

Bonjour,
aucun problème, Faite ce que vous voulez
et merci pour l'information de path que je trouve très utile et efficace

Cordialement

Kawi a dit…

Pour moi j'ai aucun problème de le laisser mais si vous voulez, mettez le au zone de télechargement à votre site web (programme + code source )

Cordialement

HeartyGFX a dit…

Bonjour,

J'ai mis en section téléchargement le programme sans installateur, et le code source.

Merci à toi Kawi pour ce partage.

A bientôt,

;)


Kawi a dit…

de rien

HeartyGFX a dit…

Bonjour,

Kawi, si tu repasses par là,
Pourrais-tu télécharger la version
que j'ai mis en ligne.

J'ai quelque peu relooké l'interface
et j'ai inclus les images dans l'exe.

Tu me diras si cela te convient.

A bientôt,

;)


Kawi a dit…

Bonsoir,
j'arrive pas à telecharger le fichier
probleme de lien (HTTP 404 File inexist)

merci.

HeartyGFX a dit…

Bonsoir,

Lien corrigé,
une petite erreur d'accent.

;)


Kawi a dit…

Bonjour,
très bien !
les couleurs sont bien choisi et surtout l'integration de les images à l'exe rend l'utilisation plus simple

merci

kawi a dit…

Bonsoir,
Est ce que vous pouvez modifier votre projet pour qu'il soit optimiser en courant car j'ai essayé mais j'ai pas arrivé j'ai utilisé des ULN2803 et j'ai eu la même problème de Slim

Merci pour votre attention .

HeartyGFX a dit…

Bonjour,

Le but des ces exercices étant pour moi,
de tester avant tout la partie programmation,
et comme tu as pu le constater ce montage
était sur plaque d'essais qui entre temps
à été démonté pour d'autres expériences.

Je ne pourrais pas répondre, dans l'immédiat,
à ta demande.

Mais je compte bien faire une version finale,
seulement ce ne sera pas pour de suite,
j'ai d'autres projets sur lesquels je planche actuellement.

En attendant, je pense qu'en fouillant sur le net,
tu trouveras différentes solutions parfaitement
adaptées à ce montage.

Mais juste pour t'aiguiller,

l'optimisation, peut aller de simple transistors,
en passant par des ULN 20xx, ou une combinaison des deux,
tu as également des circuits spécialisés,
que je n'ai pas de suite en tête,
lesquels tu peux obtenir facilement en samples gratuits,
il te suffit de fouiller dans les catalogues
en ligne de stmicroelectronique, ou austriamicrosystems ou encore nationalsemiconductor etc..

A bientôt Kawi,

;)


HeartyGFX a dit…

Évidemment,
si entretemps quelqu'un propose un schéma
adapté à ce code,
Je me ferais un plaisir de le publier.

;)


kawi a dit…

Bonsoir,
merci de me repondre
pouvez vous me donner seulement des conseils

Cordialement.

Anonyme a dit…

slt
je suis un etudiant en "emes année, et le sujet de mon projet fin d'etude est "journal lumineux" et je trouve que votre projet il va m'aider, alors je vous demande si vous pouvez m'aider et me donne le code source de programmme de PIC et les schemas (ISIS), et merci bien, je suis très besoin de votre aide, car la dernière date de mon projet est le 30 mai 2011, et si vous acceptez de m'aider voici mon e-mail pour m'envoyer les fichiers...
et merci une autre fois

HeartyGFX a dit…

Bonjour,

Kawi, navré en ce moment je suis vraiment très pris,
Dès que j'ai un peu de temps devant moi,
Je remonte le projet sur platine d'essais et je tenterais
de le faire évoluer vers une version finalisée.

Anonyme,

Comme tu peux le constater pourtant,
tout ce que tu demandes est sur l'article,

le code source est disponible, un simple copié collé vers MikroC et tu le compiles...

Quant au schéma tu n'as plus qu'à le tracer dans Isis,
l'image servant de modèle, il n'y à rien de compliqué à refaire.

Merci de ton intérêt pour le montage.

A bientôt,

;)


Kawi a dit…

merci

Anonyme a dit…

Bonjour,

serait il possible d'adapter le programme de conversion en hexadécimal pour une matrice de 16*32 ?? je suis actuellement en bts systéme elec, travaillant sur une matrice pour mon projet cette application serait un gain de temps pour moi :)

Merci d'avance

HeartyGFX a dit…

Bonjour,

Si la question concerne le programme EditChar,
réalisé par Kawi, il n'y a que lui qui puisse répondre à la demande.

Je ne doute pas que s'il repasse par ici,
il ne manquera pas de répondre.

PS: 16x32! la résolution d'affichage devient intéressante.

A bientôt,

;)


Anonyme a dit…

En effet la résolution est vraiment intéressante d'autant plus que nous avons a disposition 8 matrices de 16*32 ! donc sa rend vraiment bien.

Je ne manquerais pas de mettre une video une fois le projet terminé :).

en espérant que Kawi repasse par la ^^

A bientôt

Kawi a dit…

Bonsoir,
Je crois qu'il est un peu difficile

si voulez je peux vous donner le code source de programme Editchar

merci

**adora** a dit…

Adora : nice job .. serious and well done .

i wish the succes for u always .

:)

HeartyGFX a dit…

Hi,

I'm glad to read your comment,
it encourages me to publish my projects.

Hope you will back and enjoy.

thank you,

;)


**adora** a dit…

:) sure gonna be bk to enjoy ur motivate projects.

inter_adv a dit…

Bonjour,
Tout d'abord merci beaucoup à cet excellent projet
Je suis debutant en programmation de Pic et j'aimerais tester votre projet avec 18F4550
Est ce que vous pouvez me donner les codes de l'interruption qui fonctionnent avec 18F4550

Merci beaucoup.

HeartyGFX a dit…

Bonjour,

Pour cela il n'y a pas de mystère,
Il faut consulter le DataDheet du PIC correspondant.

Lors de mes touts début je lisais souvent ce genre de commentaires, à savoir, consulter les DataSheets,
je trouvais cela barbant pour être honnête.
et j'essayais de passer outre.
Le problème est que tant que l'on ne s'y plonge pas, on avance pas du tout dans l'apprentissage.

Lances toi d'autant que là tout est prémaché,
tu as juste à consulter la doc. uniquement à la section interruption.

A bientôt,

;)


Anonyme a dit…

Bonjour,

Bravo pour le code du journal à leds, tres interressant
est ce possible de le convertir pour le compilateur C18 ?
quels changement dans le code je dois apporter ?
remerciements
Sébastien

HeartyGFX a dit…

Bonjour,

Je n'ai malheureusement pas vraiment de connaissance sur les spécificités des autres compilateurs.

Cependant, je peux avancer avec certitude que le code est relativement standard
qu'il doit être facilement portable sur un autre compilateur,
à l'exception de la bibliothèque utilisée pour la gestion du SPI,
laquelle il te faudra compulser ce que te propose C18.

En cas de portage réussi, je serais heureux de le publier sur cette page,
ce qui sera utile pour d'autres.

Merci pour la visite et le commentaire.

A bientôt,

;)


Anonyme a dit…

Re bonsoir,
Merci pour votre reponse,
Pouvez vous me donner des infos sur ce bout de code :
if (i-1+dat < MAX_DATA) HC595_1=ASCII[i-1+dat];
else HC595_1=TABLE[i-1+dat -MAX_DATA];

Je ne comprend pas tout !

Merci
Sébastien

HeartyGFX a dit…

Bonsoir,

Si je ne m'abuse, ce bout de code est la version modifiée,
qui se trouve sur le site de F. Sincère.

Le but est d'extraire 8 bits (variable i) correspondant à la matrice d'un caractère, sur le total du tableau ASCII.
et de vérifier que l'on n'arrive pas en fin de tableau (Max_Data),
Ceci étant approuvé, alors on envoi le résultat
dans la variable HC595_1 (premier afficheur 8 LEDs) plus l'index "Dat" qui permet le scrolling.

Je n'ai pas véritablement analysé son code,
pour te dire que vient faire le -1.

Si tu jettes un coup d’œil sur les articles :
PIC16F876A 74HC595
ainsi que
1 - Matrice à LED
ici même sur ce blog, tu y verras certainement plus clair,
concernant cette routine mise en place sur mon code,
et par là même tu pourras extrapoler sur la manière dont ce code à été modifié.

Le principe restant strictement le même.

A bientôt.

;)


Anonyme a dit…

comment je peux faire ce program en assembleur

HeartyGFX a dit…

Bonjour,

Je ne pratique pas du tout l'assembleur.
Navré.

A bientôt,

;)


Anonyme a dit…

mer6 bien pour ce programme qui m'a aidé vraiment au cours de mon apprantissage sur les microcontrolleurs.
(nazz)

HeartyGFX a dit…

Bonjour,

Heureux que cela puisse servir.
Merci pour ton commentaire.

A bientôt,

;)


Anonyme a dit…

bonjour
le code donné en va le mettre tous dans le pic16f876A pour le stimule en isis et merci d'avance :)

HeartyGFX a dit…

Bonjour,

Dans Isis, il faut régler quelques paramètres
comme je l'ai expliqué à Kawi plus haut.

Il s'agit des paramètres de configuration d'affichage de Isis.

A bientôt,

;)


robot a dit…

salut,
i2=0; ??? (ligne 222)
merci pour le prog

HeartyGFX a dit…

Bonjour,

Effectivement, le i2 est à effacer,
il s'agit d'un "reste" non nettoyé d'expérimentation de code.

Il ne sert à rien, je l'ai signalé dans le 4 ième commentaire.

Afin d'éviter que cela ne gêne je viens enfin de prendre le temps de l'enlever.
Depuis le temps que je devais le faire, la chose est faite.

A bientôt,

;)


Anonyme a dit…

bonjour ,, je veux savoir comment esqu'on peut defilé un message désiré via le RS232 ainsi que j'ai esseyé votre montageet sa na pa marché

HeartyGFX a dit…

Bonjour,

Je ne puis expliquer en quelques mots le fonctionnement
des fonctions Uart en MikroC.

Cependant, j'ai dans mes tiroirs la suite de ce projet,
que je publierais lorsque j'aurais un peu de temps.

Qui plus est, notre ami Kawi à réalisé un superbe montage basé sur ce code.
C'est très complet, interfaçage via RS232 et le logiciel sous Windows pour commander le tout.

J'ai eu son autorisation il y a quelques mois pour le publier,
mais je n'en ai pas eu le temps.
Mais promis d'ici peu, je tacherais de prendre le temps
de le mettre en ligne.
Je dois juste avant, adapter le look de son interface Windows.

A bientôt et merci pour ton intérêt.

;)


Anonyme a dit…

je suis débutant dans la programmation pic ... j'ai fait le schéma sous ISIS, taper le code .. mais il ne fonctionne pas :(
quelqu'un peut m'aider et merci d'avance
les messages : undefined identifier TRISA
undefined identifier TRISB
undefined identifier TRISC
undefined identifier PORTA
....
y'a vers les 18 erreurs ....

HeartyGFX a dit…

Bonsoir,

Quel PIC avez-vous utilisé sur ce schéma?
Pourriez-vous donner un lien avec une image du schéma en question?

A bientôt,

;)


Anonyme a dit…

bonjour,

http://www.4shared.com/photo/8quaGa11/journal_16F876A.html?

merci pour votre aide :))

HeartyGFX a dit…

Bonsoir,

A priori le schéma semble correct.
Êtes-vous sur d'avoir chargé le bon Hex
dans ISIS?

Si la compilation c'est bien passée
et que vous avez chargé le bon fichier compilé
il ne devrait pas y avoir d'erreur.

Ce message semble indiquer qu'il ne connait pas ces identificateurs TRIS.

Je ne vois pas pourquoi.

Faites moi parvenir le lien du fichier ISIS et l'Hex que vous utilisez.
Je regarderais ce qu'il me dit.

;)


HeartyGFX a dit…

Bonjour,

J'ai finalement bien fait de vérifier.
Sur l'article j'avais affiché le schéma d'un ancien essais
avec le code d'un autre.
Et bizarrement durant ces années personne ne m'a fait la remarque.
On voit sur le code que j'utilise RB1 pour remettre à zéro le 4017,
et sur le schéma il est simplement mis à la masse, cela provenait d'un ancien test.

Le plus étrange est que, le code fonctionne
avec les deux cas de figures....(??)

Cela dit, cela ne répond pas à votre problème
qui est tout autre.
J'ai re-compilé mon code et testé avec votre schéma, il ne fonctionne pas.
Avec mon schéma il fonctionne.

Donc pour faire plus simple,
j'ai mis à jour l'article, et ajouté le fichier Proteus ISIS et l'Hex en téléchargement.

l'Hex est la compilation du code publié, donc pas de surprise.

J'espère que cela vous aidera.

A bientôt,

;)


Anonyme a dit…

bonjour, j'ai essayé de t'envoyé le fichier ISIS et hex mais je ne sais pas pourquoi mes messages ne s'affiche pas ....
bon pour le RB1 je l'est résolu :))
bon juste une dernière truc comment je fait pour la diminuer la vitesse de défilement :(
et si sa vous dérange pas de me donner ton mail pour vous contactez :))
et merci infiniment ^_^

HeartyGFX a dit…

Bonsoir,

Le message envoyé a bien été reçu.
Pas d'inquiétude, je ne l'ai simplement pas publié,
parce-que ce n'était pas utile pour les ceux qui lisent.

Pour changer la vitesse de défilement,
il faut simplement changer la valeur de la variable "vitesse", c'est écrit dans le code pourtant.

Pour le mail, il vous suffit de mettre le votre dans un commentaire, et je vous écrirais.

Rassurez-vous je ne publierais pas le message, cela restera privé.

A bientôt,

;)


Anonyme a dit…

bonjour a tous
je suis un Etudiant j'ai un projet sur les journal limineux j'ai essaié de utuliser le programme de 3 matrice pour mieux comprendre les chose mai mon programme de compilation ma afficher ce message in i not defined etc je travaille avec le PicBasic merci d'avance pour votre aide

HeartyGFX a dit…

Bonjour,

Le code présenté est codé sous MikroC.
Je ne connais pas du tout PICBasic,
peut-être y-a-t il une procédure de déclaration différente.

i est pourtant déclaré normalement en tant que int en début de code.

Je ne saurais vous en dire plus, j'en suis navré.

A bientôt,

;)


Anonyme a dit…

Bonjour,

Vous avez parlé de modification apporté sur ce sujet, l'interface RS232 et interface si c'est possible d'avoir le code MicroC pro
Merci d'avance :))

HeartyGFX a dit…

Bonjour,

Oui en effet notre ami Kawi à fait un superbe travail partant de ce code.
Juste qu'avec son accord je dois améliorer le design de l'interface sous Windows.
Et le temps me manque hélas, mais cela reste en projet.
De plus, Kawi code sous MikroBasic.

Je tacherais d'en parler avec lui,
mais je ne pense pas que les sources seront distribuées.

La raison, hélas est simple.
Le produit peut-être considéré comme un produit abouti et complet, et il y a toujours des gens sans scrupules qui s'octroient le travail des autres.
Et même, qui commercialisent sans autorisation.

J'ai eu le cas de figure avec le présent code.

Un individu a apporté juste quelques petites modifications mineures et déclarait que le code était de lui, non content de cela, il vendait en plus en ligne des journaux lumineux basés sur mon code.

J'ai de l'éducation, donc je ne donnerais pas son identité bien qu'il le mériterait.

Donc donner un produit fini serait du pain béni pour ces gens là.


;)


Anonyme a dit…

Bonjour,

Ok c'est pas grave ... si c'est possible de donner quelque détaille voir que je ne suis pas trop fort en programmation PIC :/

Merci d'avance :)

Anonyme a dit…

bonjour je voulais ajoutter des autres matrice au schema precedent e je voullais savoire comment modifier le programme pour que marche .
je voullais avoir un message defillant sur 12 matrices et merci d'avance.
:)

HeartyGFX a dit…

Bonjour,

Le schéma et le code sont très simple.

Sur le schéma il suffira simplement d'ajouter autant de registre à décalage que d'afficheurs désirés.

Coté code:
*********************
{
Spi1_Write(HC595_0); // données premier circuit
Spi1_Write(HC595_1); // données deuxième circuit
Spi1_Write(HC595_2); // données troisième circuit
Latch=1; // impulsion de validation sur LATCH
Latch=0;

}

Ajouter Spi1_Write(HC595_3) puis 4 etc...



et cette partie:
*********************
HC595_0=ASCII[i+dat]; // données sur le premier 595
HC595_1=ASCII[(i+8)+dat]; // données sur le second 595
HC595_2=ASCII[(i+16)+dat]; // données sur le troisième 595
send_data(HC595_0,HC595_1,HC595_2); // envoie les données à afficher


ajouter ceci HC595_3=ASCII[(i+24)+dat]
puis 4 pour 32 etc...


Ce sont les deux partie dans lesquelles il faudra ajouter le nombre d'afficheurs à ajouter.


En lisant plus attentivement le code,
on peut comprendre rapidement comment l'adapter
à ses besoins.
En mettant au point algorithme d'affichage j'ai fait en sorte qu'il soit simple et extensible facilement.

N'hésitez pas à me montrer vos réalisations!

A bientôt,

;)


Anonyme a dit…

xlu svp pouvez vous m explik ses deus parties
//Interruption
void interrupt() {
rafraichir++;
vitesse++;
TMR0 = 240; // Valeur décimale préchargée à soustraire à 256

//Désactive l'interruption TMR0 (0xA0 = active)
INTCON = 0x20; // Met à 1 le bit TMROIE , Efface(0) le Flag TMROIF de débordement d'interruption
} //fin interruption



//******************************************************************************
void send_data(char HC595_0, char HC595_1, char HC595_2)
{
Spi1_Write(HC595_0); // données premier circuit
Spi1_Write(HC595_1); // données deuxième circuit
Spi1_Write(HC595_2); // données troisième circuit
Latch=1; // impulsion de validation sur LATCH
Latch=0;

}

HeartyGFX a dit…

Bonjour,

En règle générale, je ne fais pas de remarque sur l'orthographe.
Mais le pseudo SMS pique franchement les yeux.

Votre question manque de précision, qu'est-ce que vous ne comprenez pas exactement.

Je ne puis expliquer tout le code, et expliquer le fonctionnement des PICs.
D'autres sites le font très bien et mieux que moi certainement.

Je vous invite à consulter les articles suivants:
- Matrice à LED
- 16F876 et 74HC595

Qui sont les deux étapes qui amènent au présent montage.

Peut-être que vous comprendrez mieux le cheminement suivi.

A bientôt,

;)


farido a dit…

salut a tous j'ai un besoin d'aide et urgent svp

en effet je suis en train de faire un schéma électrique sur un petit projet de journal lumineux
j'ai la simulation et le programme de la pic 16F
ici
j'ai besoin que la simulation fonctionne et merci je serait vraiment ravi d'avoir de l'aide

HeartyGFX a dit…

Bonjour,

Je ne comprends pas la demande,
le schéma et la simulation que je fournie fonctionnent.

A bientôt,

;)


NiceMani a dit…

Thank you for ur valuable one nice work keep it up.

Thank u
Manikandan A

NiceMani a dit…

please mail me the exact code for scrolling led with schematic. here nothing display while running the program. please it's urgent. amanikandan.be89@yahoo.com
please help me. i'm trying this for long time.
Thank you

HeartyGFX a dit…

Hi,

When you say, "nothing display" you mean on Proteus simulation or in real board?

If you're talking about the simulation,
read the answer I did, the Mars 28 2011, about the proteus setup display, to show the scrolling.

Otherwise, the code published is exactly the one I used, even the Hex and schematic published.

Thank you for your interest,

cya,


Yonyom a dit…

Bonjour,

Je te remercie pour ce travail il est très intéressant.

Juste il y a un petit problème au niveau d'exécution sur Isis

pourquoi il affiche ce type de messages :

Stack underflow executing RETLW instruction
Stack overflow executing CALL instruction
Stack underflow executing RETURN instruction
Stack overflow pushing return adress of interrupt

est ce que cause un accès agressive/flood dans la ROM ou quelque chose comme sa

Merci de m'expliquer ce type d'erreur et comment le résoudre.

Enfin c'est un bon travail je te félicite encore une fois :)

HeartyGFX a dit…

Bonjour,

Cela ne me dit rien, hélas.

Vérifie que le firmware est bien bien dans le même répertoire que le fichier Isis, éventuellement, double clique sur le symbole du PIC et vérifie que l'hex est bien sélectionné dans les paramètres de celui-ci.

Merci de ton intérêt.

A bientôt,

;)


Anonyme a dit…

bonjour

je ne peut voir ou telecharger le code+isis

svp prover vous me les anvoyer a l'adresse

hafed014@gmail.com

merci

HeartyGFX a dit…

Bonsoir,

Je viens de vérifier pourtant, le fichier est bien accessible...
Néanmoins je vous l'ai expédié via "SendBox".

A bientôt,

;)


Anonyme a dit…

Bonjour,

Je ne parles pas encore des codes sources et de programmation mais d'une réalisation (projet similaire mais texte programmé sur EEPROM, une vraie usine a gaz quoi MDR) faite il y a quelques années avec des leds RVB .
Cette matrice peut facilement être adaptable a ce super projet, cela donnerai un peu de gaieté au montage.

Le principe est simple, un 4060 qui pilote des 4066 qui a leur tour alimentant les différentes couleurs. On peut également forcer une couleur par le biais d'inters dil. j'ai opté pour des 4066 plutôt que des transistors pour des raisons de commodité sur le PCB.

Voici le schéma si cela vous intéresse.

http://img825.imageshack.us/img825/3682/matricervb.jpg


Merci pour ces super montages que vous proposez et pour le temps que vous consacrez aux lecteurs.
A bientot

HeartyGFX a dit…



Bonjour,

Merci pour cette proposition.

Je regarderais à l'occasion l'implémentation qui est proposée (une image plus grande serait la bienvenue).

J'ai en effet l'intention de traiter les couleurs, mais le temps est mon ennemi...
J'ai tellement de centres d'intérêts et suis curieux de tellement de choses que mes journées me paraissent insuffisantes.

Une chose est sûre, c'est que je dois y ajouter la couleur, en cela vous avez raison, la couleur ajoute un plus, certain, à ce projet.

Merci encore,

A bientôt,

;)


Anonyme a dit…

j'ai essayé d'agrandir le format et améliorer la qualité du schéma.

http://img694.imageshack.us/img694/3682/matricervb.jpg

J'éspère que c'est mieux pour vous

A bientôt

HeartyGFX a dit…



Bonsoir,

C'est bien mieux effectivement, merci.

A bientôt,

;)


jmaa bilel a dit…

Bonjour
j'ai réalise le circuit de la carte et j'ai essayé de le tester mai l'afichage ne marche pa y-a-t-il une problem dans le 74hc595 ou la frequence??
et MERCI

HeartyGFX a dit…



Bonjour,

Le schéma présenté fonctionne tel qu'il est, comme vous pouvez le constater sur la video publiée.

Beaucoup ont réalisé ce circuit et n'ont pas rencontré de problème.

Vérifiez le brochage de votre matrice à LED.
Vérifiez également en branchant de simple LED avec résistance de limitation en sortie du 74HC595 et constatez si vos LED clignotent.

Ensuite tout dépend de votre assemblage, mais le schéma et le code sont fonctionnels je le répète.

A bientôt,

;)


ktaib naim a dit…

bjr
sltp tu peux m'aider ..j'ai fais le meme circuit mais j'ai rien vu je sais pas il est ou le probleme tu es sur que ce montage et juste et que je dois mettre des transistor avec des resistances ou nn a l'entre de 4017 et je peux tester ou nn ce programme sur une seul matrice ou nn .ou il faut mettre trois matrice j'attends ta reponse et merci d'avance..

ktaib naim a dit…

aussi il marche bien sur isis tu peux m'aider a trouver le probleme

Anonyme a dit…

bonjour HeartyGFX,
fichier isis excellent travail. et le fichier HEX. travailler!
J'ai essayé de compiler le code source du compilateur dans le CCS (PCW) et j'obtiens une erreur:
int i, rafraichir, dat, Vitesse
UN DISPOSITIF # Avant cette ligne requiered.
J'ai essayé de définir le paramètre de pic à utiliser et les ports, mais je reçois plus d'erreurs :-(
Il serait utile si vous pouvez m'envoyer le code source pour conpilarlo, mon nom est adler salutations du Peru, apjjulca@gmail.com

Anonyme a dit…

hello HeartyGFX,
excellent work, the file isis. and HEX file. Work!
I tried to compile the source code in CCS compiler (PCW) and I get an error:
int i, rafraichir, dat, vitesse
A # DEVICE Before This line requiered.
I tried to define the parameter of pic to use and ports, but I get more errors :-(
would be helpful if you can send me the source code to conpilarlo, my name is Adler, greetings from Peru, apjjulca@gmail.com

HeartyGFX a dit…


Bonjour,

Navré pour le retard des réponses,
j'avais la tête dans un autre projet très prenant.

Ktaib, Le projet avec ce type d'afficheur consommant très peu
fonctionne parfaitement tel qu'il est présenté,
seulement avec des LED plus puissante il faut une interface de puissance, ou limiter par résistance pour éviter de bruler les 595.

Et oui, le montage fonctionnera aussi bien avec une seule matrice.

Anonyme, le code source est publié sur l'article.
Le code est compilé sous MikroC,
pour CCS, il faudra y déclarer les fichiers d'en-tête, et adapter le code à CCS notamment pour les SPI1_Write() qui est une fonction de la bibliothèque de Mikroc. (voir la doc de CCS pour le SPI)

;)




Anonyme a dit…

merci infinement pour ce boulot sa marche bien sous isis mais le probleme est que je pas maitriser le mikro C et j'aime bien que vous m'aider de creer un code en PICC car je suis debutant et je cherche a realiser c types de projet car comme sa jaurais la confiance en soit
si vous decide de m'aider voila mon email: killer.901@hotmail.com
cordialement

Anonyme a dit…

Bonsoir kawi
Je vous remerci d'aborder ce sujet car il m'interresse beaucoup et specialement en ma formation mais je vius demande pourquoi vous navez pas utiliser des circuit d'amplification de courant pour balayer un nombre plus elever des matrices et dans le cas ou on veux avoir un grand nombre des pixel en led par exemple on met des matrice l' une au desuus de lautre pour avoir une matrice de 16 ligne 8 colonne .quel modification on doit apporter au circuit et au code dans ce cas la.
Merci d'avance de me repondre a travers mon mail:
Killer.901@hotmail.com
Cordialement

HeartyGFX a dit…


Bonsoir,

Je ne connais pas les spécificités de PICC, ce que je peux dire est que le code que je fournis sous MikroC est en C standard, il faut juste consulter la doc de PICC concernant la gestion du SPI.
Il n'y aura que cette partie à adapter le reste du code ne devrait pas poser de problème sous PICC.

Merci de votre visite.

A bientôt,

;)


Anonyme a dit…

bonsoir
merci de repondre a mes message mais j'espere que je vous ennuie pas avec mes question ce pour cela je vous demander de me repondre a travers mon mail: killer.901@hotmail.com
ce que je vous demande cette foix est ce qu'on px avoir plusieur animation avec ce code ou non?? et si est possible est ce que vous pouvez m'aider d'avoir une idée

HeartyGFX a dit…


Bonsoir,

Il est préférable de répondre ici, cela permettra à d'autres, éventuellement d'en profiter.

Si je ne sais pas répondre à la question, cela évitera également que l'on repose la même question pour rien.

Le nombre de caractère dépend de la taille de la mémoire du PIC, ici avec le 16f876 vous serez limité à 255 caractères.
Ce qui est déjà pas mal.

"Bonjour, Ce journal lumineux réalisé avec un PIC 16F876A vous permet de faire passer le message de votre choix."

Cette phrase ne compte que 110 caractères, je donne cet exemple pour montrer qu'avec 255, nous avons de quoi faire.

Le but du journal lumineux, notamment celui présenté, n'est pas de publier un livre.

Quand vous parlez de PICC vous parlez de quel compilateur?

Comme je l'ai dit je ne programme que sous MikroC, je ne vous serais d'aucune aide sous un autre compilateur.

Vous pouvez cependant poser la/les question(s), peut-être que quelqu'un aura une réponse en vous lisant.

;)




nino a dit…

s'il vous plait j'ai un petit probleme .je realise mon journal lumineux avec ce code avec 5 matrice 8*8 avec une pont a diode comme une pixel dans mon cas chaque matrice contient 256 leds .j'ai mis aussi un uln2803A et des transistor 2n2905 apres l'avoir connecte au cathode de la matrice .lorsque j'ai mis mon journal en marche le defilament de message apres l'affichage de 6 caractere seulement et retourne automatiquement au debut pour refaire le meme chose je sais pas il est ou le probleme .si tu peux m'aider a resoudre ce probleme la et merci d'avance...esque je dois mettre des resistance ou des transistor aussi au anode apres 74hc595 ou je change les transistor par 2n3819 qui sont plus fort en parametre de frequence que le 2n2905

HeartyGFX a dit…



Bonsoir,

Le mieux serais de zipper le schéma et le code source utilisé ainsi que l'hex, et de m'envoyer un lien où je puisse le télécharger.

Si le schéma pouvait être sous ISIS pour une simulation ce serait parfait.
je tacherais de regarder des que j'ai un moment.

A bientôt,

;)


nino a dit…

slt
voila le schéma que j'ai l'utilise sous forme d'un lien .tous marche bien mais lorsque je te dis l'autre fois le problème reste au niveau de defiliment de message ou je vois seulement les 6 premier caractère puis il retourne a l’état initial et refaire la mémé chose... https://rapidshare.com/files/3027103998/CCF07122012_00000%20(1).jpg

HeartyGFX a dit…


Bonjour,

Il aurait été plus sympathique de l'envoyer au format ISIS pour m'éviter de tout redessiner,
et surtout avec votre code que je puisse tester.

;)


Anonyme a dit…

BONJOUR JE VOUDRAIS DES COURS DÉTAILLE SUR LES MATRICE A LED SVP

Abidi Sofien a dit…

Je veut tout d'abord vous remercier pour tous ces projets et pour votre aide.
J'ai juste un tout petit pb dans la simulation du journal avec ISIS.La première colonne droite de chaque panneau reste allumée tout au long du processus et je ne trouve pas dans le code une justification de ce fait.
J’espère bien que vous me répondiez à ce sujet et merci d'avance.

HeartyGFX a dit…


Bonsoir,

Si vous parlez de la simulation que j'ai mis en téléchargement, elle fonctionne parfaitement aussi bien en simulation qu'en montage réel.

Vous devriez regarder vers les paramètres d'affichage d'ISIS.

Il y a un commentaire plus haut dans lequel j'indique les paramètres que j'ai utilisé.

Merci de votre intérêt.

A bientôt,

;)


abd tal a dit…

pourriez vous m'indiquer une site ou je peux comprendre le fonctionnement du registre à décalage 74hc595 et le registre ULN2004A en français Merci d'avance :)

HeartyGFX a dit…


Bonjour,

Je n'ai pas de site en tête car il en existe tellement, qu'il n'est pas difficile d'en trouver.
Tapez par exemple, "fonctionnement du 74hc595" et les résultats apparaitront en Français.

Le site du Zero par exemple:

http://www.siteduzero.com/sciences/tutoriels/arduino-pour-bien-commencer-en-electronique-et-en-programmation/presentation-du-74hc595

Vous avez également, ici même, un article traitant d'un PIC16F876 et d'un 74HC595, qui permet par la pratique d'en comprendre le fonctionnement, le code source est évidemment fourni pour disséquer la méthode.

J'espère que cela vous aidera.

A bientôt,

;)


abd tal a dit…

merci beaucoup pour le lien ça ma été tres utile , je voudrais savoir si on met une resistance en serie avec les leds de 22 ohms sa ne risque pas de les brulé (esque c'est une résistance insufisante pour les protegé) merci une autre fois pour votre précieux aide

HeartyGFX a dit…


Bonsoir,

Il est préférable en effet de mettre une résistance en série, les sorties du 595 étant données pour 24mA max, il faut compter 10/15mA en fonctionnement normal.

Pour les caractéristiques du 595 voir la datasheet en page 3:

http://www.unicornelectronics.com/ftp/Data%20Sheets/74ls595.pdf

La valeur de la résistance dépendra des caractéristiques de la LED.

Ex: Si la LED a un Vf de 2.8v que l'on désire limiter le courant à 10mA On utilisera comme toujours, la loi d'Ohm.

R=(Valim-Vf)/i

Ce qui donne,

(5v - 2.8v) / 10mA = 220 Ohm

Avec la 22 Ohm, le courant sera trop important pour le 595, près 100mA pour le type de LED que j'ai pris en exemple.

A bientôt,

;)


Anonyme a dit…

Bonjour
je veux bien faire un journal lumi,eux a base de 13 matrices 8X8 et j'ai une question un peux banale je veux b1 savoir il faut ajouter combier de pic pour comander tous ces matrice si wi est ce que il ya pas un problem avec le scrooling de message et ùerci
;)

HeartyGFX a dit…


Bonsoir,

Un seul PIC suffira pour piloter les 13 matrices.
Il faut juste un 74HC595 par matrice et s'enchaineront comme pour les trois du modèle en test de l'article.

J'ai mis dans l'article le lien de F. Sincère qui a réalisé un journal avec 12 matrices.
Il s'est basé sur mon schéma et code en y adoptant quelques petites modifications.

A bientôt,

;)


abd tal a dit…

bonsoir heartyGFX je voulais réaliser le même montage que tu a réalise sur isis mais a base d'un ULN2004A j'ai inversé la matrice puis qu’aucun led n'est allumer , après que j'ai inverser la matrice toutes les LED sont allumées en même temps je pense que c'est un problème de temps
j'attend votre réponse avec impatience et merci :)

HeartyGFX a dit…


Bonsoir,
Cela ne fonctionnera pas avec un ULN2004
Utilisez un ULN2803.

A bientôt,

;)


abd tal a dit…

vous pouvez m'expliquer pourquoi svp

HeartyGFX a dit…


Bonjour,

Le ULN2004 a ses sorties en collecteur ouvert, il ne fournit pas de courant.

Voici concrètement un exemple de branchement de circuit correct avec une matrice, un HC595, et un 2803.

http://embedded-lab.com/blog/wp-content/uploads/2011/05/Ckt_ScrollLED.jpg

Je vous invite à consulter les datasheet des circuits, ou éventuellement consulter les sites de vulgarisation de ce type de circuit qui sont relativement courants et très bien expliqué.

A bientôt,

;)



abd tal a dit…

je voulais mettre ULN2004A comme une masse et envoyer la donnée depuis le HC595 esque c est possible et es qu’il faut changer quelque chose en dans le code

abd tal a dit…

bonsoir , voila je t envoi ce que je voulais simulé sur isis avec le programme en hex et en C
http://www.mediafire.com/?75ci5n62d4d4x2n,bn0xbgovna1ruir,3h7p7l55u287lsw
vous pouvez me renvoyer le site sur le dernier commentaire j'ai pas pu l'ouvrir et merci

HeartyGFX a dit…


Bonsoir,

Si vous parlez du lien que j'ai mis précédemment il vous faut retaper le lien à la main, j'ai sur mon blog, bloqué le copier coller.

Je veux bien aider en donnant quelques indications, mais je ne peux faire le travail à votre place.
Je reçois presque tous les jours des demandes de la sorte, et je passerais ma vie à faire cela, j'espère que vous ne m'en voudrez pas et que vous comprendrez.

J'ai regardé votre schéma, vous modifiez la gestion des colonnes mais n'adaptez pas le code.
Forcément cela ne fonctionnera pas.

j'ai choisis pour la gestion du multiplexage des colonnes, un 4017, pour économiser les ports du PIC.
C'est à dire qu'un seul bit est utilisé pour faire défiler la colonne de la matrice, c'est compteur 4017 qui à chaque impulsion passe à la colonne suivante.

Vous avez choisis la solution d'un port complet pour la gestion des colonnes (8 bits / 8 colonnes)
ce qui est un choix, qui bien entendu fonctionne, mais il faut changer le code.

Votre code doit mettre à 1, un bit du port B et le décaler à chaque cycle , ou 0 selon anode ou cathode commune (comme un chenillard).

00000001 ensuite 00000010 ensuite 00000100 etc...

vous pouvez faire ceci avec un opérateur de décalage : " >> " ou " << " en C.

ou le faire "à la main"

portb= 0b00000001; ou 0x01 (indication du bit en binaire ou hexa.)
portb= 0b00000010, ou 0x02
etc...


Je vous avais répondu il y a quelques jours que mon code avait déjà été repris par d'autres personnes et subit quelques adaptations, l'une d'elles utilise votre méthode, donc consultez le code que l'auteur à modifié.

le lien est en fin d'article, il s'agit site de Fabrice Sincère.

Il y a le schéma et le source adapté qui sont similaire au votre.

A bientôt,

;)





abd tal a dit…

bonsoir, je suis vraiment désolé pour le dérangement , le problème que je trouve sur ISIS c'est que l ULN2004A m'envoi une masse (le petit carreau bleu) avant même d'envoyer 5V en entré, c'est pour sa que je peux pas controler les LED si vous avez une idée pour mon problème merci de me laisser un petit message ,
je m'excuse encore du dérangement que je te cause.

HeartyGFX a dit…


Bonjour,

Abd Tal, ne t'excuse pas il n'y a pas lieu, cela ne me dérange pas du tout, si je peux répondre ou aider je le fais à condition que cela ne me prenne pas trop de temps.

Comme je l'ai expliqué précédemment, ton montage ne fonctionnera pas pour la raison simple que le code que tu utilises est fait pour piloter un 4017.

Tu vois bien RB0 clignoter, parce que c'est dans le code, le seul bit de ce port qui envoie normalement des impulsion sur l'entrée clock du 4017.

Ensuite, pourquoi utiliser un ULN2004, qui comporte 7 darlington, alors qu'il en faut 8 pour piloter la matrice 8x8.

Je pense qu'il te faut commencer avec les bons éléments avant d'aller plus loin.

Je te conseille d'aller sur l'article ayant pour titre "pic16F876A 74HC595" afin de comprendre le principe.
En faisant un simple chenillard, puisque le principe d'alimentation des LED est le même.

C'est comme cela que j'ai crée ce journal lumineux en y allant étape par étape en partant de rien.

Il te suffit de partir du schéma que j'ai mis dans l'article cité, puis d'expérimenter ce que tu veux faire avec des ULN.

A bientôt,

;)


abd tal a dit…

bonsoir,
en ce qui concerne le code je l'ai changé mais toujours le même problème, j utilise l'ULN2004A parce que j'ai 6 matrice 8 lignes 7 colonnes donc 7 sorti j'ai utiliser le code de Fabrice sincère et j'ai changer quelque ligne vue qu'il utilise un ULN2804A j'ai donc effacer la case 8 je vous laisse le schema et le code si vous avez un peu de temp pour jeter un coup d’oeil et merci de votre précieux aide :)
http://www.mediafire.com/?rvbnbpg9d1p7n

HeartyGFX a dit…


Bonsoir,

Je regarderais à l'occasion mais je ne garantis rien.
Il serait bien que tu envois également de code source.

A bientôt,

;)


abd tal a dit…

RE, j'ai oublier de metre le code desolé le voici
http://www.mediafire.com/view/?oi9hctnf5u0x5ao
et merci :)

abd tal a dit…

je veux lire la structure interne de la Matrix de ISIS mais je trouve pas sur internet pouvez vous me fournir un lien si vous connaissez un lien
merci encore pour votre aide

HeartyGFX a dit…


Bonsoir,

Encore une fois je ne garantis rien, si je trouve un moment je tacherais d'y jeter un coup d’œil.

Je n'ai pas de document particulier sur la matrice d'ISIS j'ai juste comme tout le monde je pense, fais un test de polarité des LED afin de connecter dans le bon sens.

Elle doit respecter le câblage interne des matrices réelles, que l'on trouve en pdf en faisant une recherche sur un moteur de recherche.

;)


sisi alg a dit…

bonjour, je ne sais pas si ma demande a un sens
mais je ne trouve pas l'emplacement de résistances dans les typons .
je suis sur le point d'imprimer les cartes mais je ne trouve pas la place des 192 résistances de 220 ohms.
merci de me répondre

HeartyGFX a dit…


Bonjour,

Je présume que vous parlez des typons du journal réalisé sur le site de F. Sincère?

Il n'y a pas 192 résistances (?!?)
Consultez de nouveau le schéma et lisez ce qui est noté en bas à gauche.

La gestion des colonnes est réalisée par un seul circuit ULN2804 et ses 8 résistances, quelque soit le nombre de matrice.

A bientôt,

;)


sisi alg a dit…

merci de votre réponse;
dans le typon de la matrice a LEDs il y a écrit 192 résistances c'est pour cela que je me suis un peut embrouillée.
Cela dit, je ne trouve toujours pas la place de ces 8 résistances . Veuillez m’éclairer s'il vous plait car je suis entrain de réaliser ce circuit.

rym kim a dit…

bonjour
Puisque vous dites qu'il ya seulement 8 résistances, quelque soit le nombre de matrice pourquoi il est ecrit ds le pdf :L'afficheur à LED (typon) 192 résistances ?
pouriez vous me dire l’emplacement des risitances qui relie l'ULN et les cathodes, je trouve pas leurs pistes ds les tipon
Merci de votre attention

HeartyGFX a dit…


Bonsoir,

Je viens de consulter le typon, vous avez raison il a mis 192 résistances.
Bien que le montage publié sur le site de F. Sincère soit basé sur mon circuit et code, je ne suis pas l'auteur de cette variante, je n'avais donc pas regardé en détail son typon.

Quoi qu'il en soit, je reconnais qu'il aurait du ajouter l'implantation des composants sur le typon des circuits.

Cependant il indique que ce sont des résistances CMS (Composant Monté en Surface) sur la platine des afficheurs LED, il y a l'empreinte pour les résistances, ce sont les pastilles carrées, au dessus des LED.

;)






rym kim a dit…

bonjour
je vais refaire le typon des LEDs ou je vais mettre la place des résistances pour chaque colonnes de matrice (simple résistance, pas comme celles que vous avez utiliser"CMS" c'est parsque leur soudure va me demander beaucoup de temps.
que pouriez vous me conseiller ? Et quelle logiciel avez vous utilisé pour la conception des circuits imprimé ?
merci de votre atention

HeartyGFX a dit…


Bonjour,

J'utilise Eagle de chez CadSoft pour réaliser mes typons.

NB: comme je l'ai dit juste avant, ce typon n'est pas de moi, c'est un visiteur qui s'est inspiré de mon schéma et code.

J'espère que vous montrerez des images et/ou vidéo de votre montage lorsqu'il sera fini.

;)



Anonyme a dit…

bon jour
s'il vous plais HeartyGFX peut tu m'expliquer le choix des valeurs pour timer0 et rafraichir et vitesse comment tu a fait le calcul
merci

HeartyGFX a dit…

Bonjour,

je n'ai pas effectué de calcul pour déterminer la fréquence de rafraichissement, c'est simplement par étapes et essais.

La méthode la plus adéquate fut d'allumer toutes les LEDs de la matrice sans avoir de scintillement tout en ayant une luminosité suffisante.

Trop rapide réduit la luminosité, trop lent provoque un scintillement visible. Il faut donc trouver le juste milieu.

A bientôt,

;)


Diabel Seck a dit…

Bonjour j'ai besoin d'un programme qui permette de faire défiler MERCI sur une matrice de 8*8LEd avec le PIC 16F84a C'est urgent svp
Diabelseck@yahoo.fr

HeartyGFX a dit…


Bonsoir,

Vous pouvez le faire vous même sans trop de difficulté.
Le code étant disponible, il faudra simplement le recompiler pour un 16F84.
Je pense qu'il vaudrait mieux utiliser une version cadencée à 10Mhz pour éviter les scintillements.

Vu la longueur du code, vous pouvez utiliser la version gratuite de Mikroc téléchargeable sur le site mikroElektronica.

A bientôt,

;)


asma habbechi a dit…

bonsoir; je suis intéressée par votre projet et je serai très heureux que tu m'aider à mes questions. j'ai suivit votre conseil mais j'ai quelque difficulté au niveau de l'affichage la première colonne du trois matrices est toujours allumées et est ce que il n'y a pas aucune solution pour diminuer la vitesse de défilement et si je vais ajouter des résistances ou sera le branchement au niveau du 4017 ou 595 et merci d'avance.

HeartyGFX a dit…



Bonsoir,

Asma, lorsque je regarde ta photo, je trouve que tu es encore trop jeune pour faire de l'électronique... :-D

Plus sérieusement, je ne sais plus quel conseil je t'ai donné, comme je réponds un peu partout à différentes personnes, j'oublie,
il aurait été bon de me le rappeler.

Les résistances de limitations sont normalement disposées en sortie des 595.

Si tu as suivi le schéma que je propose tu ne devrais pas avoir de soucis d'affichage.

Le circuit tu l'as réalisé physiquement ou tu me parles de simulation sous ISIS?
Parce que la simulation sous ISIS est approximative, il faut réaliser le circuit sur une LABDEC pour le code final, car les valeurs sont légèrement différentes entre la simulation et le circuit réel.

Et enfin, pour la vitesse de défilement c'est la variable vitesse qu'il faut changer, ici:

" if (vitesse>=3000){ // vitesse de défilement "
C'est la valeur 3000 qu'il faut adapter à ce que tu désires.

N'oublies pas un autre point important dans le code,

" if(dat>=972) // Lorsqu'on arrive au dernier caractère "

Ici j'indique que si l'on dépasse 972 la variable dat repasse à zéro.

972 c'est le nombre d'octets que comporte mon tableau "ASCII"

Donc si tu changes le nombre de caractère dans le tableau, il te faut changer cette valeur.

Une lettre prend 8 octets, donc si ton tableau comporte un message de 30 lettres, 30x8=240 tu changeras dat à 240.

J'espère que cela t'aidera à avancer.

A Bientôt,

;)


Anonyme a dit…

si je utilise 12 matrices comment je peut les relier

HeartyGFX a dit…


Bonjour,

Le schéma:
Comme pour les 3 présentes sur le schéma.
Il suffit de continuer la cascade des 595 (U2, U3, U4) les uns à la suite des autres (U5, U6 etc...).
Et la partie basse des matrices (basse sur le schéma) connectées au 4017.

Le code:
Ajouter au code le nombre de variable " HC595_ " correspondant au nombre de matrice,

Ainsi que:

HC595_0=ASCII[i+dat]; // données sur le premier 595
HC595_1=ASCII[(i+8)+dat]; // données sur le second 595
HC595_2=ASCII[(i+16)+dat]; // données sur le troisième 595
send_data(HC595_0,HC595_1,HC595_2); // envoie les données à afficher

En théorie nous pouvons en chainer autant que l'on désire.

A bientôt,

;)



asma habbechi a dit…

bonjour; merci pour votre attention; je suis débutante est je suis entrain de réaliser une journal lumineux pour mon projet fin d'étude je bien compris le code mais le problème si je fais des petits changements l'affichage du caractère sur ISIS sera perturbé comme étant ne reçoit aucune changement.

HeartyGFX a dit…


Bonjour,

Je n'ai pas bien saisi le problème.

Lorsque vous parlez de petit changements, de quoi s'agit-il? changement à quel niveau, code ? circuit?

;)



asma habbechi a dit…

changement au niveau de code dans le codage ASCII et le longueur du tableau noté bien que je change la variable dat comme vous avez indiqué si je l’implémenter au niveau d’Isis sa ne fonctionne pas.

HeartyGFX a dit…


Postez votre code source modifié quelque part sur le net, et faites moi parvenir le lien que je regarde.

;)


Sami a dit…

bonjour HeartyGFX, merci pour le partage de ce travail que je trouve interessant, svp, en excutant votre programme en microc, il me donne l'erreur suivante:" undeclared identifier "spi1_write"in expression. pouvez vous m'aidez? merci

HeartyGFX a dit…


Bonjour,

Je présume que vous devez utiliser une ancienne version de MikroC dans la version non "pro"

En effet la syntaxe d'appel de la fonction SPI a changé sur la version "Pro" de SPI elle passe à SPI1.

Dans l'article "PIC16F876A 74HC595 ", qui à l'origine était écrit avec une version non pro de MikroC, la déclaration de SPI est indiquée à l'ancienne sur le code publié.

J'ai il y a peu, ajouté en fin d'article une archive contenant le code source avec une version mise à jour de l'appel à la fonction SPI, pour la version MikroC Pro plus récente.

Faites la comparaison vous comprendrez.

Ou tout simplement consultez la documentation de Mikroc qui est très bien réalisée.

A bientôt,

;)




gas baz a dit…

bonsoir HeartyGFX
pourriez vous m'aider a faire des modification a ce projet car je vx que je change ce message en utilisant une communication serie (UART)avec mon PC
cordialement

Mechergui Hatem a dit…

SAL

HeartyGFX a dit…


@Gaz baz,

Je suis navré mais je n'ai déjà pas assez de temps pour avancer sur mes propres projets.

Le plus gros du travail étant fourni avec ce code, à vous d'apporter les améliorations nécessaires.

Je suis heureux et fier de voir des lecteurs du blog m'envoyer leur projets finalisés utilisant comme base mon code.

;)


assas mehdi a dit…

merci bc pour ce code vraiment extra ordinaire
je ne sais pas pour quoi je ne peux pas le simuler avec proteus
j ai pas compris il m affiche
"simulation is not running in real time due to excessive cpu load"
"stack underflow executing retlew instruction"
je suis étudiant en Electronique et mon mini_projet tourne au toure de application
merci d avance

HeartyGFX a dit…


Bonsoir,

Apparemment votre ordinateur n'est pas suffisamment puissant pour afficher en temps réel la simulation.

Essayez de fermer tout ce qui consomme de la ressource sur votre ordinateur, ou éventuellement de modifier les options de ISIS.

Dans une des réponses que j'ai posté plus haut, j'ai indiqué les options que j'avais sur mon PC, essayez donc de les utiliser puis de varier en fonction de votre processeur et carte graphique.

;)



dali ayari a dit…

salut HeartyGFX

il y'a un collone de chaque matrice est allumer

qu'elle est la solution :)

merci d'avence pour ce projet :)

HeartyGFX a dit…


Bonsoir,

Si vous parlez de la simulation, sur certains ordinateurs peu puissant, il peu y avoir des défauts d'affichages.

Si vous parlez d'un montage réel, il vous faut revoir votre câblage, ou vérifier qu vous n'avez pas inversé les afficheurs à matrice de LED.

;)


dali ayari a dit…
Ce commentaire a été supprimé par l'auteur.
dali ayari a dit…

quand je prend ce code C et je l'ai compilé puis je met le fichier .HEX dans le pic on voit un colonne dans tous les 3 matrices .

mais quand je met le fichier journal_lumineux.HEX de votre projet
la simulation est PARFAIT



si tu peut fait un experiance

merci

HeartyGFX a dit…


Bonsoir,

dès que j'ai un moment je recompile, mais il me semble que j'ai du le faire plus d'une fois à la demande d'internautes.

Juste par acquis de conscience je le referais et vous tiendrais au courant.

A bientôt,

;)


Anonyme a dit…

Bonjour,
j'aimerai bien faire un affichage d'un journal lumineux comme celui la mais avec des led RGB , ya quelqu’un qui peut m'aider? et merci d'avance.

Marc P. a dit…

Salut HeartGFX! Beau projet, merci. Bien instructif. Mais je n'arrive pas à bien lire le schéma, peux-tu mettre une version plus claire svp?

merci beaucoup!
A+!
marC:)

HeartyGFX a dit…



Bonjour,

Si tu cliques droit sur l'image de cette page tu sélectionnes "afficher l'image" (sous Firefox, pour les autres navigateurs tu dois avoir une option similaire) tu auras l'image en pleine résolution.
Autrement tu as le fichier original de Proteus ISIS en lien dans l'article.

A bientôt,

;)


kb a dit…

;) merci de nous répondre a ce problème

Marc P. a dit…

Bonjour! Pensez-vous que mettre 100 matrices 8x8 ça serait possible?

Bonne journée :)

A+!
marC:)

HeartyGFX a dit…


Bonsoir,

Wow! 100 c'est ambitieux...

A priori, rien n'empêche d'en mettre autant.
Si vous réalisez ce projet, je serais curieux de voir le résultat.

A bientôt,

;)


menanga tsala paulio a dit…

bonjour, jaimerais apprendre l'utilisation de la librairie HID

Anonyme a dit…

slt c 'est trop grand ce que tu a fait et cool. stp tu a simuler ce montage avec quel version de proteus?

Anonyme a dit…

bjr stp hearty j'aimerais savoir quel est la version de proteus qui t'a permi de simuler ton journal lumineux

HeartyGFX a dit…


Bonjour,

Menanga, je réponds avec beaucoup de retard j'en suis désolé,
j'ai complètement oublié ton message.
Je crois que ma réponse ne t'aurait rien apporté de toute façon, puisque je te conseil de lire la doc du logiciel je n'ai jamais utilisé encore la lib HID.

Anonyme, je pense que n'importe quelle version récente de Proteus permet de lancer la simulation.

Actuellement je suis avec la version 7.8 SP1, mais j'ai du la réaliser avec la 6.xx

A bientôt,

;)


moez bounouh a dit…

bonsoir; je suis intéressée par votre projet et je serai très heureux que tu m'aider à mes questions.es que en peut changer le pic 16f876a par le pic 18f4550 sans aucune modefication meci :)

HeartyGFX a dit…


Bonjour,

Vous pouvez utiliser un PIC18F4550 sans aucun problème,
à condition, bien sur, de recompiler le programme pour le 4550.

A bientôt,

;)


Erramza æ a dit…

Bonjour,

Je me permet de vous remercier très chaleureusement de votre projet, je souhaite que vous m'envoyer le circuit imprimé de ce circuit simple face si c'est possible à hamza15000@gmail.com merci d'avance,

Cordialement,

HeartyGFX a dit…


Bonsoir,

Merci pour ce chaleureux commentaire.
Comme vous pouvez le constater dans l'article, je n'ai pas réalisé de circuit imprimé pour ce projet, tout était fait en platine d'essais.

Vous pourrez néanmoins trouver un circuit imprimé avec typon, basé sur mon projet sur le site de Fabrice sincère, le lien est dans l'article.

A bientôt et merci pour votre intérêt,

;)


Erramza æ a dit…

Bonsoir,

Merci à vous également, j'ai déjà vu le document pdf sur le site Fabrice sincère, mais j'ai trouvé un petit soucis au niveau du typon, on à pas une double face, je me suis dit de vous questionner si vous avez par hasard un typon simple face (uni face) ou pourquoi pas me donner un astuce pour passer d'un circuit électrique à un circuit imprimé ou autrement dit comment fabriquer un circuit imprimé,

Merci d'avance ;),

Cordialement,

HeartyGFX a dit…


Bonsoir,

Votre seule voie est de réaliser par vous même ce typon. Pour cela vous avez un grand choix de logiciel destinés à la conception de circuit imprimé à partir d'un schéma.

Voici une liste de logiciel, du gratuit au payant.

;)




elkosovi a dit…

Comment ramlacer la matrice par des leds ?
Mercie de m'aider

HeartyGFX a dit…

Bonjour,

Mes premiers essais sur matrice de LED se sont effectués sur une matrice fait-maison.
Il suffit de relier les LED de la façon suivante:

Schéma

Vous ajouter le nombre de ligne et de colonne désirés, 8 en général.

;)


elkosovi a dit…

Merci bcp,
Celon le schema est ce que les pins A B C ... lie au 74hc595 ?

HeartyGFX a dit…


Bonsoir,

Si vous placez les anodes coté ABC, en effet il vous faut connecter coté 75HC595, autrement vous inversez soit la matrice, soit dans le code -voir mon commentaire du 28 dec 2010-

;)


Abdelouinisse Marwa a dit…

je recopié le programma et j’essaye de le compiler avec MikroC mais je trouvé plusieurs problèmes qui sont les suivantes:
undeclared identifier [SPI1-write] in expression
undeclared identifier [RB0-bit] in expression
undeclared identifier [RB1-bit] in expression
Internal error

HeartyGFX a dit…


Bonjour,

Comme cela fut déjà spécifié, quelque part dans les commentaires, pour un problème similaire, vous devez très certainement utiliser une vieille version de MikroC -version normale-,
il vous faut la version "pro" qui change le nom de la fonction SPI en SPI1, et la déclaration des ports en RBx-bit.

Bonne continuation pour votre projet.

A bientôt,

;)


Marc P. a dit…

Salut! :)

Pourriez-vous me donner les specs des matrices de points?
colonne = anode, ligne = cathode ???

Merci beaucoup!
A+!
marC:)

HeartyGFX a dit…


Bonjour,

J'ai mieux, un visuel correspondant à la matrice a été ajouté.
Je ne sais pas pourquoi je ne l'ai jamais mis en ligne bien que la demande des specs techniques de l'afficheur est une demande récurrente.
C'est chose faite.
Mieux vaut tard que jamais dit-on.

Cela dit, peut importe que l'on utilise un modèle à anode commune -comme dans mon cas-, ou un cathode commune, il suffit de modifier le code, comme je l'ai décrit à plusieurs reprises dans les commentaires.

Merci de l'intérêt porté à mes petites expérimentations.

A bientôt,

;)


Marc P. a dit…

Merci beaucoup! :-))

C'est les mêmes pour les mono-matrices?

A+!
marC:)

Marc P. a dit…

Je ne comprends pas trop... les 74HC595 sont pour les colonnes et le 4017 pour les lignes? c'est bien ça ?

A+!
marC:)

HeartyGFX a dit…


Bonjour,

Un modèle à une couleur présentera moins de broches je présume.
De toute façon en achetant un afficheur à matrice de LED, les specs sont fournis par le revendeur, ou alors il faut les lui réclamer.

Le but de ces publications est de tenter, pendant que l'exercice est relativement simple, d'en comprendre le fonctionnement.
Aussi je t'invite à étudier le code et tu y trouveras la réponse.

Pour aider je dirais qu'il faut:

Comprendre comment est composé un caractère,
la réponse est fournie dans un commentaire en réponse à une question de Kawi.

Une fois que l'on sait ce que l'on envoi et où on l'envoi, on comprend alors quels composants représentent les lignes, et lequel représente les colonnes.

Un petit indice supplémentaire, dans ma réponse, il y a la réponse, si l'on prête attention au pluriel et singulier de la dernière phrase.

;)


khemiri wael a dit…

la liaison via port USB, pour charger le message,svp .

khemiri wael a dit…

bonjour je voulais ajoutter des autres matrice au schema precedent e je voullais savoire comment modifier le programme pour que marche .
je voullais avoir un message defillant sur 8 matrices et merci d'avance.

HeartyGFX a dit…



Bonsoir,

Une question similaire a déjà une réponse,
il suffit de consulter la réponse donnée le 13 Mai 2013 dans les commentaires.

Quant à l'USB de la question précédente, je n'ai pas encore travaillé sur l'USB.
Un jour peut-être.

A bientôt,

;)


khemiri wael a dit…

j'ai fait comme il est écrit dans la réponse donnée le 13 Mai 2013 mais lors de la simulation les matrices restent atteintes

HeartyGFX a dit…


Bonsoir,

Faites moi parvenir votre fichier de simulation ainsi que votre code source, je tacherais de regarder ce que vous avez fait.

;)


khemiri wael a dit…

passe moi ton e-mail pour t'envoyer le travail
et merci

HeartyGFX a dit…


Nous allons faire l'inverse,
laisse ton mail ici, je ne publierais pas le message.

;)


Anonyme a dit…

Bonjour HeratyGFX et merci pour cet excellent projet qui m'aide beaucoup car actuellement j'ai un projet de réalisation d'un journal lumineux stp je pourrais avoir un schéma de proteus non pas avec les matrices mais avec les leds elle-même, merci d'avance et bien de choses.

«Les plus anciens ‹Précédent   1 – 200 sur 201   Suivant› Les plus récents»