Cette application va vous permettre­ de­ réaliser­ un ­petit­ journal lumineux défilant­ à ­l'aide ­d'une carte Aurduino et de ­la ­matrice ­à­ led ­Click Board MIKROE-1993 7x10­R­Click. Une variable à configurer en début de programme va vous permettre de choisir le texte du message (pouvant comporter des lettres et des chiffres) qui défilera de la droite vers la gauche de la matrice. La vitesse de défilement du message pourra également être ajustée si vous le désirez.
   
  
Modules ClickBoard MIKROE-1993 - Journal lumineux


Les modules ClickBoard™ sont de petits modules additionnels développés par la société MikroElektronika. Ils sont conçus pour s’enficher facilement sur une multitude de cartes de développement via l’interface mikroBUS™, un standard matériel et logiciel pensé pour simplifier le prototypage. Elles permettent d’ajouter rapidement une fonctionnalité sans câblage complexe. Leur format DIL vous permettra également des les utiliser sur des plaques breadboard (boite de connexions sans soudure).

La présentation du module MIKROE-1993 utilisé dans l'application qui va suivre a déjà fait l'objet d'une description complète dans notre Blog Pilotage d'une matrice 70 leds avec un Arduino. Le raccordement entre l'Arduino et le module Click Board MIKROE-1993 7x10­R­Click reste identique à celui décrit dans le blog cité ci-avant. 
 
  

Description du programme de gestion du journal lumineux défilant

Cette application met en œuvre la plupart des choses déjà vues au cours de l'application de gestion du module 7x10 R click ». La principale nouveauté réside dans l'utilisation d'une variable de type tableau à une seule dimension Message[]  dans laquelle vous allez pouvoir écrire votre message en début de programme. Ce message peut être composé de lettres (en majuscules, de chiffres et d'espaces). Pour des raisons usuelles, nous avons choisi d'utiliser le caractère [ pour signifier la présence d'un espace dans la phrase.

 
Hello World
 
 
Le caractère * permettra de signifier au programme la fin du message. Par exemple pour afficher le message HELLO WORLD, il vous faudra initialiser la variable Message[] avec const char Messagel] = "HELLO[WORLD[[[*"; Nous avons eu recours à plusieurs caractères [ en fin de message qui seront considérés par le programme comme autant d'espaces en fin de message.

Dans le cadre de notre application et du programme proposé, nous avons choisi un message plus long vantant les possibilités des modules Click Boards de Mikroelektronika ! STIMULEZ VOTRE CREATIVITE AVEC LES MODULES CLICK BOARD

Une seconde variable de type tableau (à deux dimensions) Mlettres[ ][ ] a été utilisée afin que nous puissions y stocker la représentation de chaque lettre et de chaque chiffre sur la matrice à led selon le même principe que celui que nous avions utilisé lors du tout premier programme de pilotage du module « 7x10 R Click ».

Chaque lettre et chaque chiffre est donc dessiné sur une matrice de 5 leds de large et de 7 leds de haut.

La principale différence par rapport au premier programme de gestion du module « 7x 10 R Click » est qu'il nous est possible désormais de pouvoir choisir plusieurs caractères à afficher au lieu d'un seul.

La variable Vitesse a aussi été utilisée pour déterminer la vitesse de déplacement du journal lumineux.

La boucle principale du programme va consister à récupérer les caractères du message un à un via la variable Message[].

Lors de la récupération des données on effectue un test pour vérifier si le code ascii du caractère ainsi récupéré n'est pas égal à la valeur 42 (ce qui correspondant à la valeur ascii du caractère * à qui on a attribué le rôle de définir la fin du message). Si tel est le cas, le défilement du message reprendra depuis le début de la variable Message[]

Le programme va ensuite se servir de la valeur ascii du caractère récupéré pour déterminer et sélectionner l'emplacement du caractère à afficher depuis la variable tableau Message[ ].

On notera que les codes ascii des chiffres et des lettres ne se suivent pas : Les chiffres 0 à 9 ont pour codes ascii des valeurs allant de 48 à 57 alors que les lettres A à Z ont pour codes ascii des valeurs allant de 65 à 90 ... et même 91 pour le caractère [ - raison pour laquelle nous l'avons choisi pour déterminer un espace.

En conséquence il nous a fallu réaliser quelques tests pour ajouter un index dans le calcul et la récupération des caractères à afficher depuis la variable Message[ ] en fonction de la valeur du code ascii récupéré.

Le reste du programme consiste à récupérer et à introduire bit à bit et colonne par colonne les leds à allumer de chaque caractère récupéré sur la colonne complètement à droite de la matrice, puis à effectuer un décalage de toute la matrice vers la gauche et ainsi de suite pour afficher complètement le nouveau caractère (nécessitant 5 décalages vers la gauche ­- ce qui correspond à la largeur de chaque caractère).
 
Le programme effectue d'office un décalage supplémentaire vers la gauche de la matrice après chaque caractère (afin d'obtenir un espace automatique entre chaque caractère afin que ces derniers ne soient pas collés les uns aux autres). Cet espace automatique est plus ou moins grand si le caractère à afficher est déjà un espace afin d'obtenir un affichage uniforme.
  
  
Vous pouvez retrouver le code source de ce programme en cliquant ici : code source Arduino & modules Click Board

Produit ajouté à ma liste