matrice a led

alainav1

Senior Member
Bonjour,
je souhaite realiser une matrice a led (avec un 20m2) suivant le principe détaillé sur ce site
http://www.sonelec-musique.com/electronique_bases_affichage_multiplexage.html

une ligne de 8 leds sur le port B et 3 transistors sur le port C
le multiplexage permet d'actionner les LED une par une et la persistance retinienne fait le reste
ça ça marche !
je souhaite commander les led a allumer (ou a eteindre ) par la reception d'un code infra rouge (ça aussi je sais faire )
cependant l 'attente d'un signal inrarouge (irin ralenti le programme et je crains que la persistance rétinienne ne marche plus
j'envisage de separer les 2 programme pour les faire travailer en // (Le pseudo multitâches)
le programme reception infarouge(prog2) serait uniquement cette ligne
prog1:
do
'programme de multiplexage )
loop

prog2:
do
irin c.6,code
loop


(le code serait analyser dans le programme principale pour commander la led qui correspond au code reçu)
pensez vous que cela puisse marcher ?
la reception du code ( dans la commande irin ) ne se sera elle pas pertubée par le programme principale (prog1 )qui est une boucle sans fin qui commande la matrice de led
cordialement
Alain
 

BESQUEUT

Senior Member
Utilisez-vous setfreq ?
Si oui, le multitâche va annuler cette commande...
Devez-vous maîtriser chaque segment, ou seulement afficher des chiffres ?

Je ne suis vraiment pas un spécialiste de l'infra-rouge, mais a priori c'est plutôt le prog principal qui risque d'être légèrement perturbé (léger clignotement) lors de la réception d'une commande IR.

Si les traitements nécessaires conduisent à un clignotement de l'affichage, il faut utiliser un circuit spécialisé à la place du transistor. Ce n'est pas plus cher qu'un transistor et ça économise des pattes sur le Picaxe. Le choix se fait en fonction de la réponse à la question précédente.
 
Last edited:

alainav1

Senior Member
je n'utilise pas setfreq
je souhaite commander des led individuellement (le site proposé c'etait pour vous presenter le principe utilise )
un leger clignotement ne pose pas de probleme
quand au max 7219 c'est 12 euros le circuit et je sais programmer la matrice (j'ai realise un programme de ce type avec un pic 16F ).

cordialement
Alain
 

PieM

Senior Member
Bonjour,

Irin est une commande bloquante, même si on utilise le multitâche.
Donc il faut au minimum mettre le timeout de irin.
Inconvénient ce timeout induit systématiquement une pause.
Une astuce est de considérer l'entrée irin (C.6 ici) comme une entrée ordinaire par un test :
Les premiers rayon IR mettent C.6 à 0 et le code est lu à la seconde salve.

If pinC.6 = 0 then
irin C.6, code
endif
 

MGU

Senior Member
je n'utilise pas setfreq
je souhaite commander des led individuellement (le site proposé c'etait pour vous presenter le principe utilise )
un leger clignotement ne pose pas de probleme
quand au max 7219 c'est 12 euros le circuit et je sais programmer la matrice (j'ai realise un programme de ce type avec un pic 16F ).

cordialement
Alain
12 euros!
http://www.ebay.fr/itm/1pcs-Dot-LED-Matrix-Module-MCU-Control-LED-Display-Module-MAX7219-for-Arduino-/171275011752?pt=LH_DefaultDomain_0&hash=item27e0c946a8

ou 2 pour 1 euro:
http://www.ebay.fr/itm/2pcs-IC-MAXIM-MAX7219CNG-IC-Driver-LED-Display-8DGT-24-DIP-/171275011807?pt=LH_DefaultDomain_0&hash=item27e0c946df

Le MAX7219 permet de commander chacune des 64 leds (ou moins) individuellement, aucun scintillement, luminosité programmable, avec trois fils seulement
Sous l'afficheur, il y a deux connecteurs, c'est très pratique.
Pour l'infrarouge, c'est comme rfin/rfout, je pense qu'il vaut mieux utiliser un picaxe dédié à cela.

MM
 
Last edited:

BESQUEUT

Senior Member
Le MAX7219 permet de commander chacune des 64 leds (ou moins) individuellement, aucun scintillement, luminosité programmable, avec trois fils seulement
J'utilise le 74hc595
C'est beaucoup moins moderne, ça ne pilote que 8 lignes, mais c'est plus facile à trouver (en particulier au fond de mon tiroir...)
Aucun scintillement non plus puisqu'il y a un tampon.

Sinon, quand c'est juste pour afficher des chiffres, le plus simple c'est d'utiliser un module tout prêt :
afficheur-4-digits-grove-led 05291p
C'est basé sur un TM1637.
 
Last edited:

BESQUEUT

Senior Member
je n'utilise pas setfreq
je souhaite commander des led individuellement (le site proposé c'etait pour vous presenter le principe utilise )
un leger clignotement ne pose pas de probleme
Avec l'astuce donnée par PieM, ça devrait aller, mais ça dépends du temps que prends le traitement à chaque réception de code.
Personnellement, je n'utiliserais pas le multitâche, mais j'augmenterais la fréquence, et (bien sur) j'utiliserais la technique du lapin blanc...
 

PieM

Senior Member
MGU said:
Pour l'infrarouge, c'est comme rfin/rfout, je pense qu'il vaut mieux utiliser un picaxe dédié à cela.
Non, c'est différent ! le protocole SIRC infrarouge génère une séquence toutes les 45ms. Cela permet de détecter une émission d'IR et 45ms après de décoder la trame.
 

alainav1

Senior Member
Bonjour,
la solution suivant me plait bien
If pinC.6 = 0 then
irin C.6, code
endif
cependant si le code commence a etre emis pendant la sequence d'affichage des led l'interuption pinc.6 risque de lire un code en cour d'emission et de ne pas le reconnaitre
je vais donc essayer de lire 2 fois le code la premiere reception permet d'entrer dans le if then la deuxieme emission sdecodera a( a l'emission je vais programmer plusieurs emission de code )

If pinC.6 = 0 then
irin C.6, code
pause 100
irin C.6, code
endif
qu'en pensez vous ?

qu'en au 74hc595 c'est une solution que j'ai deja adopté (avec le 74hc164 pour faire la même chose avec les entrées )avec des pic 16f mais c'est bien sur applicable avec des picaxes)

je ne souhaite pas commander des afficheurs mais des led donc les decodeurs pour 7 segments ne conviennent pas
quand au MAX7219 ill me semble bien que c'est utilisé pour des 7 segments ? je vais regarder plus attentivement la datasheet .
merci pour l'interet que vous portez a ce post.
apres mes essais je vous tiendrai au courant
quand a la technique du lapin blanc ???
cordialement
Alain
 

PieM

Senior Member
If pinC.6 = 0 then
irin C.6, code
pause 100
irin C.6, code
endif
qu'en pensez vous ?
Non ça ne sert à rien:
Quand on appuie sur un BP de la télécommande, celle ci envoie plusieurs fois la trame en rafale, toutes les 45 ms.
Si c'est une télécommande faite maison, il est important de respecter cette procédure.

Si le programme est occupé à autre chose, le Picaxe sera aveugle aux IR dans tous les cas.
Si le picaxe perçoit des IR, il ne peut décoder une trame incomplète, et attend la trame complète suivante.

En résumé, si l'instruction IRIN est activée c'est qu'on a reçu de l'IR. Et IRIN attends de recevoir une trame complète.
 

alainav1

Senior Member
si je fais un emeteur avec irout
la fonction irout envoie t elle plusieurs code ou faut il les envoyer toutes les 45 ms ?
 

PieM

Senior Member
si je fais un emeteur avec irout
la fonction irout envoie t elle plusieurs code ou faut il les envoyer toutes les 45 ms ?
Non Irout n'envoie qu'une trame.
Voir la doc:

Therefore when using the PICAXE system higher reliability may be
gained by repeating the transmission (e.g. 10 times) within a for..next loop.

for b1 = 1 to 10
irout 1,1,5
pause 45
next b1
 
Top