Aide pour projet (Multiplexage 320 LEDs)

Je peux pas plutôt utiliser le bouton reset en tant que contact quelconque ?

Ça fonctionne, j'ai juste un décalage horizontal, je sais d’où cela provient, et une colonne qui merde mais c'est lié à un faux contact sur une matrice.
J'aimerais si possible que quelqu’un modifie le programme pour qu'il ne soit plus nécessaire de presser un bouton pour passer à l'effet visuel suivant mais que l'enchainement se fasse automatiquement avec 5 secondes de temps mort.
Je vais essayer de vous poster une vidéo rapidement :slight_smile:

Un grand merci en tout cas !!!

C'est bon tout les défauts sont corrigés, il ne manque plus qu'a modifier le programme.
Je fais une vidéo dans l'après midi.

Voila : - YouTube

Bravo
Sacré cablage ....

Merci.
Est-il compliqué de faire les modifications que j'ai cité plus haut ?
J'aimerais créer d'autres effets visuels, savez vous si il y à un moyen simple de s'y prendre ?

Le mieux est que tu essayes toi même de comprendre et de faire les modifications nécessaires.
Là où tu ne comprend pas, pose les questions et on te répondra.

Pour ce qui est du bouton, regarde le code et regarde comment il change d'animation.
Si tu veux qu'il change d'animation automatiquement au bout d'un certain temps il faut utiliser la mesure du temps avec la fonction millis() par exemple.

pour vérifier si un certain temps s'est écoulé, il faut déjà prendre un temps de début par :

temps_debut = millis();  // temps_début doit être déclaré comme     unsigned long temps_debut;

Et pour savoir si le temps s'est ecoulé :

if ( (millis() - temps_debut) > TEMPO )
{
   // faire ici ce qu'il y a a faire quand le temps TEMPO s'est écoulé
}

Yep!

En même temps, un simple delay() entre les animations suffit ici et il est justement bien adapté à ce cas XD

@+

Zoroastre.

Vade Retro Satanzoroastre !

Non !
Un delay() va tout bloquer.

10YA, ne suit pas la voie de l'ombre. Suit la voie de la lumière et de la programmation non bloquante....

Yep!

]:smiley:

Je viens de reprendre le code et le problème de claquer des millis() et de devoir s'assurer que l'animation est bien terminé avant de passer à la suivante ]:smiley: ]:smiley: ]:smiley:

Il y a déjà une paire de millis() (frame rate) et autre delay() dans le code ]:smiley: ]:smiley: ]:smiley:

@+

Zoroastre.

EDIT1 : Ma solution, un flag (bool) pour dire animation terminée, on passe à la suivante. Pas de millis() ou de delay() !!!
EDIT2 : Allez, juste une petit delay() entre les animations pour faire plaisir à Barbudor :stuck_out_tongue_closed_eyes:

Je vais essayer de regarder mais quand je vois la quantité de boulot que j'ai à coté, genre du ponçage j'ai pas trop l'envie ni le temps ^^.
En tout cas merci !

Bonjour,

Je comprends votre position, vous trouvez peut-être un peu facile de tout me faire, mais je n'ai pas la prétention d'apprendre à programmer la carte Arduino.
Toute la partie électronique peut paraitre "impressionnante" pour certaines personnes, mais sur tout le projet cela ne représente que 20% et encore.
Je dois encore finir le master, qui me permettra de réaliser un moule pour par la suite faire des moulages....
Il me reste encore une tonne de travail, je n'ose même pas compter les heures.

Si je me suis adressé à vous c'est pour gagner du temps, je vais mettre 10 ans à modifier quelque chose que vous pouvez faire en 10 minutes comme je l'imagine. :slight_smile:
Je suis prêt à "donner la pièce" à la personne qui m'aidera si cela est nécessaire.

Si vous voulez suivre la globalité du projet vous pouvez aller ici : http://pinterest.com/silverboxx/thomas-helmet-replica/

J'espère que vous comprendrez ma position.

Yep!

Ne crois pas que cela soit si facile que cela et le principal problème est que tu dois scenariser tes animations, ceci 1 fois, tel autre chose 3 fois, pas plus de 20 secondes etc.

Chaque animation a un algo un peu différent, même si pour la plupart, un compteur calibré sur la largeur de l'ecran (40 px) activant un flag peut suffire.
Il en est autrement pour d'autres animations comme celui des yeux par exemple, car il est, je pense, non désiré de le voir cligner des yeux 40 fois de suite avant de passer à l'animation suivante. De même pour les textes défilants, il faut attendre que le dernier caractère disparaisse, etc...

D'ailleurs, les transitions par le bouton permettent à l'utilisateur de choisir la dynamique du scenarii.

10YA:
Si je me suis adressé à vous c'est pour gagner du temps, je vais mettre 10 ans à modifier quelque chose que vous pouvez faire en 10 minutes comme je l'imagine.
Je suis prêt à "donner la pièce" à la personne qui m'aidera si cela est nécessaire.

Saches aussi que tu es sur un site d'entraide, nous n'avons aucune obligation de t'aider ou même de répondre à tes sollicitations. Le règlement du forum est clair sur ce fait et chacun des participants est libre de contribuer ou pas !!!

Le règlement : http://arduino.cc/forum/index.php/topic,102175.0.html

@+

Zoroastre.

Bonjour à tous,

J'ai modifié un texte déjà existant du programme, je veux parler des textes qui défilent. J'ai donc procédé de la même manière que ce qui été déjà présent sur le programme mais mon texte semble être coupé lors du défilement. Comme si il été trop long.

Avez vous une idée pour m'aider ?

Merci

Vers le début du programme tu as ces 2 lignes :

char textBuffer[3][133];
char textBufferSize[3] = {133,51,66};

Plus bas tu as les lignes :
Qui définissent le 1er texte "Penny Arcade Expo 2012"
textBuffer[0][0] = ...
textBuffer[0][132] = ...

Puis le 2nd texte : Daft Punk
textBuffer[1][0] = ...
textBuffer[1][50] = ...

Et le 3eme texte "Volprin Prop"
textBuffer[2][0] = ...
textBuffer[2][65] = ...

Il faut que sur la ligne :

char textBufferSize[3] = {133,51,66};

Chacune des valeur représente le nombre de ligne utilisées pour chacun des textes
par exemple texte[0] va de texte[0][0] à texte[0][132] ce qui fait en tout 133 valeurs => la 1ere valeur vaut 133
idem pour la 2nde valeur qui représente les 51 lignes de texte[1][0] à texte[1][50]
Et pour la 3eme valeur qui représente les 66 lignes de texte[2][0] à texte[2][65].
Suivant quel texte tu a changé, il faut mettre à jour la ou les valeurs conformément à cette règle

Ensuite la ligne :

char textBuffer[3][133];

Le 133 doit être changé pour la plus grande des 3 valeurs utilisée ci-dessus.

Est-ce clair ?

Oui très clair, je m'étais fais la même réflexion, donc je suis content de moi mais dés que je dépasse la valeur de 127 le texte ne s'affiche plus du tout.
Alors que je vais de [0][0] à [0][131] soit 132.
132 < 133 donc je ne change pas le nombre maxi.

Je ne comprends pas.

Le code d'origine avec jusqu'à 133 marche ?
mais si tu réduit à 127 ca ne marche plus ?

TU as changé que le tableau texte[0] ?

Ce que j'ai fais :
J'ai viré dans l'enchainement des effets le truc "expo" puisque d'origine il ne fonctionnait pas.
Dans la définition des textes j'ai viré toute la liste qui correspondait à "expo machin"
J'ai modifié le "Volpin Props" par ce que je voulais mettre comme texte.

Et lorsque je met 127 à la place de 66 de mémoire j'ai quasiment tout mon nouveau texte en entier.
Par contre si je met une valeur supérieur à 127 je n'ai plus rien du tout.

Tu peux mette en piece jointe ta dernière version du programme ?

Voila

LedMatrixTest.ino (13.7 KB)