Auteur Sujet: Une croix de pharmacie animée avec Arduino UNO  (Lu 698 fois)

msport

  • Hero Member
  • *****
  • Messages: 895
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Cordialement

Jean-Luc

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1563
    • Voir le profil
Re : Une croix de pharmacie animée avec Arduino UNO
« Réponse #1 le: juin 09, 2020, 06:30:15 pm »
Euh, oui.

Mais physiquement, sur le boîtier, elle est où la patte 1 ?
Cordialement

deneb2119

  • Newbie
  • *
  • Messages: 26
    • Voir le profil
Re : Une croix de pharmacie animée avec Arduino UNO
« Réponse #2 le: juin 09, 2020, 06:34:04 pm »

deneb2119

  • Newbie
  • *
  • Messages: 26
    • Voir le profil
Re : Une croix de pharmacie animée avec Arduino UNO
« Réponse #3 le: juin 09, 2020, 06:35:21 pm »
 la broche 1 est celle qui se trouve la plus à gauche quand on regarde la face où est inscrite la référence du composant.

deneb2119

  • Newbie
  • *
  • Messages: 26
    • Voir le profil
Re : Une croix de pharmacie animée avec Arduino UNO
« Réponse #4 le: juin 09, 2020, 07:04:38 pm »
le programme fonctionne très bien ; mais le motif de tracé des bords n’est pas complet ni les barres verticales et horizontales alors que pour les autres motifs, toutes les leds s'allument. y a t'il une explication à cela ??

guy

Jean-Luc

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1563
    • Voir le profil
Re : Une croix de pharmacie animée avec Arduino UNO
« Réponse #5 le: juin 09, 2020, 07:09:17 pm »
Où sont les résistances ?
Cordialement

deneb2119

  • Newbie
  • *
  • Messages: 26
    • Voir le profil
Re : Une croix de pharmacie animée avec Arduino UNO
« Réponse #6 le: juin 09, 2020, 07:17:12 pm »
à coté ,, on ne les voit pas sur la photo

chris_bzg

  • Global Moderator
  • Full Member
  • *****
  • Messages: 107
    • Voir le profil
Re : Une croix de pharmacie animée avec Arduino UNO
« Réponse #7 le: juin 12, 2020, 11:07:53 am »
Si j'ai bien compris, seuls quelques motifs ne fonctionnent pas comme prévu, alors que le reste fonctionne.
Dans un premier temps, il faut discriminer entre un problème matériel qui empêcherait l'allumage de certaines LED et un problème logiciel.
Problème matériel : ce sont alors toujours les mêmes LED qui ne s'allument pas. Dans ce cas, revoir le câblage de la matrice de LED et des résistances (sont-elles bonnes ou grillées ?). Est-ce que la matrice permet l'allumage de chacune des LED (tester la matrice est assez facile même si c'est fastidieux). Parfois, une matrice peut avoir des LED grillées, surtout pour le matériel asiatique bas de gamme).
Problème logiciel : je suppose que vous avez téléchargé le programme depuis l'article, donc il ne devrait pas y avoir de problème. Néanmoins, vérifiez le par rapport au listing donné au moins pour les motifs qui ne fonctionnent pas (définition des motifs, variables de boucles pour être certain que l'affichage est réalisé pour toutes les images).
Si tout cela ne donne rien, je peux vous fournir d'autres versions du programme par mail pour faire des tests.

deneb2119

  • Newbie
  • *
  • Messages: 26
    • Voir le profil
Re : Une croix de pharmacie animée avec Arduino UNO
« Réponse #8 le: juin 12, 2020, 12:04:03 pm »
oui très bien , mais si la croix complete s'allume entièrement. cela veut dire que toutes les leds s'allument et tous les cablages sont bon ,,

chris_bzg

  • Global Moderator
  • Full Member
  • *****
  • Messages: 107
    • Voir le profil
Re : Une croix de pharmacie animée avec Arduino UNO
« Réponse #9 le: juin 12, 2020, 05:58:37 pm »
Effectivement, si toutes les LED s'allument, c'est que le câblage est bon.
Envoyez moi un mail à l'adresse citée dans l'article de Loco-Revue et je vous enverrai une autre version du programme pour essai.

deneb2119

  • Newbie
  • *
  • Messages: 26
    • Voir le profil
Re : Une croix de pharmacie animée avec Arduino UNO
« Réponse #10 le: juin 12, 2020, 06:22:51 pm »
je n'ai pas Locorevue

chris_bzg

  • Global Moderator
  • Full Member
  • *****
  • Messages: 107
    • Voir le profil
Re : Une croix de pharmacie animée avec Arduino UNO
« Réponse #11 le: juin 13, 2020, 03:40:15 pm »
Utilise la fonction "envoyer un mail" du forum ; cela revient au même.

chris_bzg

  • Global Moderator
  • Full Member
  • *****
  • Messages: 107
    • Voir le profil
Re : Une croix de pharmacie animée avec Arduino UNO
« Réponse #12 le: juin 13, 2020, 04:21:11 pm »
Pour ceux qui ont une matrice de LED à cathodes communes

Voici les changements à faire dans le programme si votre matrice est à cathodes communes sur les lignes (ou rangées). N'ayant pas ce genre de matrice, je ne pourrai pas tester mais je pense que certains pourront le faire à ma place.

Reprenons la figure 3 et imaginons que nos LED soient inversées (cathodes communes sur les lignes).
Dans ce cas, c'est un niveau bas L (au lieu de H) qu'il faut appliquer à la ligne et un niveau haut H (au lieu de L) qu'il faut appliquer à la colonne pour allumer la LED.

Le balayage se fera toujours sur les lignes, mais avec un niveau LOW et l'affichage de toute la ligne (donc les différentes colonnes) se fera avec un niveau HIGH. Il suffit de changer tout cela dans la fonction affiche(,).

Oui mais dans ce cas, faut-il réécrire les motifs en changeant les 0 en 1 et les 1 en 0 ?

Heureusement non ! D'ailleurs, ce serait assez fastidieux alors que le programme peut s'en charger pour nous grâce à l'opérateur bitwise NOT (noté par un tilda) dont la propriété est d'inverser tous les bits d'une donnée binaire (les 0 sont remplacés par 1 et réciproquement). (voir https://www.arduino.cc/reference/en/language/structure/bitwise-operators/bitwisenot )

Dans le setup, on met les lignes de la matrice à l'état HIGH au lieu de LOW (ligne 180) et les colonnes à l'état LOW au lieu de HIGH (ligne 183).

Dans la fonction affiche(,), à la ligne 194, on commande la ligne par un état LOW et à la ligne 196, on utilise l'opérateur bitwise NOT (le caractère tilda -> Alt Gr 2) ce qui fait que chaque bit du motif est inversé (0 au lieu de 1 et 1 au lieu de 0). Les lignes 199 et 200 sont également changées pour normaliser la matrice en fin de traitement.

Finalement, voici la nouvelle fonction affiche(,) qui doit être mise à la place de l'ancienne dans le programme que vous avez téléchargé :

void affiche(const byte motif[7], const unsigned long duree){
  // Réalise l'affichage d'un motif sur la matrice pendant un certain temps (duree)
  unsigned long topDuree;
  topDuree = millis();
  while(millis() - topDuree < duree){
    // tant que la durée n'est pas réalisée, on affiche une trame de 7 lignes
    for(int ligne=1; ligne<=7; ligne++){
      // On met la broche à l'état LOW. N° broche = N° ligne + 7
      digitalWrite(ligne+7, LOW);
      // On met les colonnes comme il se doit
      PORTD = ~motif[ligne-1];  // la première ligne est l'indice 0 du tableau !
      delay(3);
      // On éteint la ligne avant de passer à la suivante
      digitalWrite(ligne+7, HIGH);
      PORTD = 0b00000000;  // On met les colonnes à l'état LOW
    }  // fin de boucle for
  }  // fin du while 
}  // fin de la fonction affiche

J'espère ne rien avoir oublié. Le montage est exactement le même, donc ceux qui ont une matrice de LED à cathodes communes (peu importe la couleur) vont pouvoir tester et me dire ce qu'il en est...

double

  • Newbie
  • *
  • Messages: 2
    • Voir le profil
Re : Re : Une croix de pharmacie animée avec Arduino UNO
« Réponse #13 le: juin 14, 2020, 10:16:47 am »
Pour ceux qui ont une matrice de LED à cathodes communes

Voici les changements à faire dans le programme si votre matrice est à cathodes communes sur les lignes (ou rangées). N'ayant pas ce genre de matrice, je ne pourrai pas tester mais je pense que certains pourront le faire à ma place.



Merci beaucoup je vais tester cela dès que possible ;D

double

  • Newbie
  • *
  • Messages: 2
    • Voir le profil
Re : Une croix de pharmacie animée avec Arduino UNO
« Réponse #14 le: juin 14, 2020, 10:52:32 am »
JE VIENS DE TESTER .......EXCELLENT CELA FONCTIONNE A MERVEILLE !!!!
Milles merci