Weihnachtsgrüße am laufenden Band
Il ne s'agit pas forcément de l'enseigne lumineuse de Times Square à New York. Mais la lumière et le mouvement attirent plus rapidement notre attention. Alors pourquoi ne pas afficher dans notre vitrine les dernières offres spéciales ou les vœux de Noël ?

Les modules d'affichage MAX7219 8x32 4 in 1 Dot Matrix LED, que l'on peut facilement connecter les uns à la suite des autres (ce que l'on appelle une "daisy chain"), se prêtent très bien à cet usage. Dans cet article de blog, je présente un exemple avec trois écrans, mais avec une modification minimale du sketch, vous pouvez également utiliser le pack de cinq.

Avec l'exemple de sketch que j'ai adapté à partir de la bibliothèque MD_MAX72xx.h, vous avez la possibilité de faire fonctionner le microcontrôleur avec un texte prédéfini sur une banque de puissance, ou connecté à l'ordinateur, vous avez la possibilité de modifier le texte à tout moment dans le moniteur série.

Matériel nécessaire

1

Nano V3.0 avec puce FT232RL et ATmega328

alternative

Carte Microcontrôleur avec câble USB

alternative

n'importe quel microcontrôleur


Half-Breadboard, câble, Poti 10kOhm

3 - 5

MAX7219 8x32 4 à 1 module d'affichage à matrice de points LED

Pour relier les trois ou cinq modules d'affichage, nous n'avons même pas besoin d'un fer à souder. Cinq contacts enfichables sont déjà soudés du côté de l'entrée. Sur le premier module, nous connectons VCC à 5V, GND à GND, DIN à la broche numérique D11=MOSI, CS à la broche numérique D10 ainsi que CLK à la broche numérique D13=SCK. Nous avons donc affaire à l'interface SPI, mais sans MISO, comme c'est généralement le cas pour les écrans.

Pour réaliser la daisy chain, nous retirons avec précaution l'élément LED à la sortie du module d'affichage. Nous pouvons maintenant insérer les cinq broches d'entrée du module suivant dans les contacts désormais libres de la sortie et les replier avec précaution jusqu'à ce que les deux modules d'affichage soient au même niveau.

On peut ensuite replacer l'élément LED dans les 2x8 contacts enfichables. Ensuite, nous répétons ce processus pour les autres modules d'affichage. Dans mon montage expérimental, j'avais à chaque fois un contact sûr et j'ai donc renoncé à la soudure. Mais chacun est libre de relier les modules de manière permanente et de prendre le fer à souder.

Côté logiciel, pour ce type d'écran, il est préférable de recourir à une bibliothèque de programmes existante. J'ai tapé MD_MAX dans la fenêtre de recherche du gestionnaire de bibliothèque, puis j'ai installé la bibliothèque MD_MAX72XX de majicDesigns. Celle-ci est livrée avec de nombreux exemples, dont deux que nous allons utiliser.

bibliothèque

Goûter

En raison du grand nombre d'écrans supportés, il faut d'abord déterminer quel type on possède et quel type on doit définir dans le sketch. Pour cela, nous chargeons d'abord MD_MAX72xx_Dynamic_HW à partir des exemples de sketches. Je modifie seulement la ligne 16 du nombre 4 à mon nombre d'éléments individuels, donc 3 modules d'affichage avec chacun 4 afficheurs matriciels donne 12 :
  #define MAX_DEVICES 12

Maintenant, de nombreux caractères cryptés s'affichent à tour de rôle, jusqu'à ce que je puisse enfin lire clairement FC16.

Type d'affichage

Mon écran est donc de type FC16_HW. Je dois ensuite saisir cette chaîne de caractères dans les sketches d'exemple. Je souhaite utiliser le sketch MD_MAX72xx_Message_Serial pour ce billet de blog. Pour cela, je dois modifier la ligne 22 pour mon affichage :

supprimer

 #define HARDWARE_TYPE MD_MAX72XX::PAROLA_HW

insérer:

 #define HARDWARE_TYPE MD_MAX72XX::FC16_HW

À la ligne 23 suivante, je modifie

 #define MAX_DEVICES 11

dans

 #define MAX_DEVICES 12

Si vous utilisez un autre microcontrôleur, vous devez éventuellement adapter les numéros pour CLK_PIN, Data_PIN et CS_PIN dans les lignes 25 à 27.

Ceux qui souhaitent utiliser le Micro Controller avec un texte invariable sur une Power Bank inscrivent leur texte à la ligne 45 à la place du "Hello ! Pour mes vœux de Noël en plusieurs langues - Frohe Weihnachten Merry Christmas Feliz Navidad Glaedelig Jul Joyeux Noel Buon Natale Vrolijk Kerstfeest - j'ai modifié la variable BUF_SIZE à 150 dans la ligne précédente. Cette valeur est également recommandée si l'on souhaite saisir un texte plus long dans le moniteur sériel.

La vitesse du texte défilant est une autre valeur intéressante à régler. On peut choisir ici une valeur prédéfinie - on définit alors en ligne 14

 #define USE_POT_CONTROL 0

et à la ligne 38, par exemple, le préréglage

 #define SCROLL_DELAY 75  // default in milliseconds, when #define USE_POT_CONTROL 0

Si l'on utilise un potentiomètre sur l'entrée analogique A5, on met la ligne 14 à la valeur suivante

 #define USE_POT_CONTROL 1

Ensuite, la variable SCROLL_DELAY est réglée sur une valeur comprise entre 25 et 250 à l'aide de la fonction map.

C'est tout ce que vous avez à faire. Vous obtenez à peu de frais un véritable "accroche-regard" dans votre vitrine. Nous vous souhaitons beaucoup de plaisir à les reproduire.

Télécharger Sketch

Télécharger comme pdf

DisplaysFür arduinoProjekte für anfänger

Laisser un commentaire

Tous les commentaires sont modérés avant d'être publiés