Electronique > Réalisations > Jeux de lumière > Chenillard 018b

Dernière mise à jour : 07/04/2024

Présentation

Ce chenillard est de type programmable. Vous pouvez spécifier les figures lumineuses que vous voulez voir défiler les unes après les autres sur un total de 16 voies (16 sorties) maximum, soit le double de ce que permet l'ancètre Chenillard 018 à 8 voies.

chenillard_018b_fp_001a

Il est doté d'afficheurs LED sept segments permettant de connaître à tout instant :
- le mode de fonctionnement en cours (programme solo, programmes chaînés, programmation et manuel)
- le numéro du programme en cours, de 1 à 16 (de 1 à 99 avec extension mémoire, détails dans le texte);
- le numéro de la figure (étape) dans le programme en cours, de 1 à 31 (ou de 1 à 63 avec extension mémoire).

Le coeur du montage est un PIC de type 18F47K40 qui réclame peu de composants annexes autour de lui. Les sorties se font sous 230 Vac grâce à une interface de puissance pourvue d'optocoupleurs pour une excellente isolation entre la partie puissance et la partie commande. Cette interface de puissance peut être remplacée par une interface simplifiée à transistors si les lampes à commander sont de type basse tension et basse puissance.

   

Avertissements

   

Logiciel du PIC mis à disposition en l'état, pas testé en profondeur (système simulé avec succès, mais pas de prototype physique).

   

Schéma

On change de PIC et on recommence continue...
   
chenillard_018b

On retrouve dans ce schéma la recette adoptée pour mon chenillard 018, à savoir lecture d'un grand nombre de boutons-poussoirs avec un nombre extrêmement réduit de lignes d'entrée/sortie du PIC. Ici, on a tout de même 32 boutons-poussoirs associés à deux réseaux de résistances montées en diviseur multiple de tension (...) et pour tout ce beau monde, seules deux lignes du PIC configurées en entrées analogiques sont réquisitionnées. C'est grâce à cette "astuce" qu'on peut disposer de 16 lignes de sorties (commandes) avec un PIC qui reste malgré tout modeste (40 broches certes, mais ça aurait pu être pire).
 
Lecture des boutons-poussoirs

Les deux réseaux de résistances associées aux 16 boutons-poussoirs correspondants sont totalement indépendants. Le premier (RN1 à RN18) s'occupe des fonctions (commandes utilisateur) et le second (RN19 à RN36) est dédié à l'état logique des 16 sorties. Une fois de plus, j'ai jugé plus opportun d'avoir toutes les commandes à portée de main en multipliant les organes de commande. Certes, ça fait moins "hi-tech informatique" et ça revient un peu plus cher, mais quelle souplesse d'utilisation ! La tension "variable" issue du premier réseau est traitée par l'entrée analogique AN0 du PIC, tandis que celle issue du second réseau est traitée par l'entrée analogique AN1.

   
Recherche mémoire externe
Comme dans la version 018, une tentative de lecture de la mémoire externe est effectuée lors du démarrage. La difficulté que j'avais rencontrée à l'époque reste d'actualité, à savoir ne pas bloquer le logiciel si aucun périphérique mémoire n'est localisé sur la liaison I2C lors de sa scrutation. Les routines standards de lecture ou d'écriture sur le bus I2C étant bloquantes (le système attend que le périphérique questionné réponde), j'ai dû une fois de plus adopter une technique plus sophistiquée pour disposer d'un accès non bloquant au bus I2C, c'est à dire qui permette au logiciel du PIC de continuer sur sa lancée même si aucune puce mémoire externe n'est localisée.

Là encore, le principe est simple : si une mémoire externe est localisée, alors c'est elle qu'on utilise et on dispose alors d'une capacité de stockage maximale. Si aucune mémoire externe n'est détectée, alors c'est l'EEPROM interne du PIC qu'on met au travail - avec une capacité de stockage moindre, mais c'est mieux que rien.

Remarque : pour pouvoir utiliser au choix la mémoire interne du PIC ou la mémoire externe (bien entendu installée), il existe une petite astuce. Il suffit de relier la broche d'adresse physique A2 de la mémoire externe non pas directement à la masse, mais à la masse à travers une résistance de 10k, et de placer un interrupteur entre cette même broche d'adresse A2 et le rail d'alimentation positif VDD. Si l'interrupteur est ouvert, l'adresse mémoire physique [000] correspond à l'adresse [000] spécifiée dans le logiciel du PIC. Si au contraire l'interrupteur est fermé, l'adresse mémoire physique [100] ne correspond plus à l'adresse [000] spécifiée dans le logiciel du PIC et le programme ne peut plus localiser le composant.

Pour résumer :

(*) limité à 99 programmes à cause de l'affichage 2 digits
   
Fonctions et activation des sorties

Actuellement, les 16 boutons-poussoirs des fonctions ne sont pas tous exploités.


Le réglage de la vitesse de défilement des séquences est assuré par le potentiomètre RV1/Vitesse, dont le curseur (qui fournit une tension variable) aboutit sur l'entrée RA2/AN2 du PIC. Plus la tension délivrée au curseur est élevée et plus le rythme des séquences s'accélère.
   
Affichage principal
L'affichage principal (numéro de programme, numéro de l'étape et mode en cours) est confié à l'afficheur AFF1 (8 digits de 7 segments), lui-même piloté par un driver HT16K33 qui permet de réduire considérablement le nombre de fils de liaisons. L'inconvénient de ce circuit HT16K33 est qu'il n'existe qu'en version CMS, ce qui impose l'achat d'un adaptateur CMS/DIL (avec ou sans le circuit intégré) pour ceux qui veulent le tester sur une plaque sans soudure (breadboard). Heureusement, il existe des modules tout faits.

Remarque : les afficheurs pourraient également être contrôlés par des SN74595, un TM1637 / TM1638 ou encore un MAX7219 :
   
ht16k33_breakout-cms-dil_001a   tm1638_breakout-disp-and-pb_001a   74595_breakout-disp_001a
 
Pour s'adapter à ces autres circuits de commande, il faut bien sûr modifier le logiciel du PIC qui pour l'instant ne sait gérer que le pilote HT16K33 (MAX7219 en préparation).
      
Affichage de l'état des 16 sorties
Deux méthodes sont implémentées, une "minimale" et l'autre "luxueuse". Vous avez le choix.
L'absence de l'afficheur AFF2 (refus du luxe) n'empêche en rien le fonctionnement du programme. Encore heureux !

   

Logiciel du PIC

Fichier compilé (hex) disponible dans l'archive suivante :
Chenillard 018b - PIC 18F47K40 - (06/04/2024)
Si vous souhaitez recevoir par la poste un PIC préprogrammé et prêt à utiliser, merci de consulter la page PIC - Sources.

    

Circuit imprimé

Non réalisé.

   

Historique

07/04/2024
- Première mise à disposition.