Je ne traiterai que le cas que j'ai moi-même mis en oeuvre dans mon horloge: le driver de LED.
Son utilisation est assez simple: une librairie MATRIX existe pour en faciliter l'usage.
Cette librairie se résume (vue de l'extérieur) à une ligne de déclaration et 3 commandes:
- Déclaration:
- Matrix led_clock = Matrix(DIN, CLK, LOAD, nb_MAX);
Les variables DIN, CLK, LOAD correpondent aux num de pins Arduino reliées à ces signaux
La variable nb_MAX correspond au nombre de MAX7219 mis en cascade. Jusqu'à 8 chips peuvent être mis en cascade - Commandes:
- led_clock.setBrightness(taux);Permet de régler la luminosité, de 0 à 15. Le réglage se fait malheureusement pour toutes les LED de façon globale
- led_clock.clear();
Eteint toutes les LED - led_clock.write(col,rang,valeur);
Affecte la valeur LOW ou HIGH à la LED située aux coordonnées x,y
Matrice de LED:
Brochage MAX7219:
Din, Load, Clock sont à relier à l'Arduino
Dout n'est utilisé qu'en cas d'utilisation en cascade de plusieurs MAX7219
Iset doit être relié au +5v par l'intermédiaire d'une résistance.
La valeur de cette résistance est à choisir avec précaution car le driver peut surchauffer en cas de mauvais dimensionnement. Un tableau de dimensionnement est disponible dans la datasheet, page 11. Voici son extract:
La datasheet indique d'autre part le positionnement d'une capa de 0.1µF entre la pin 19 et la masse
Sketch:
La mise en oeuvre du MAX7219 est on ne peut plus simple avec ces 4 instructions.
Tout se jouera sur l'imagination du développeur pour faire des animations recherchées.
Il suffit d'allumer/éteindre la LED visée. L'adressage se fait LED à LED (pas de traitement de groupe avec cette librairie)