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.
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...
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 :
- avec mémoire interne (1 Ko) : capacité de 16 programmes de
31 pas (modèle adopté) ou de 8 programmes de 63 pas
- avec mémoire externe (16 Ko) : capacité de 128
programmes(*) de 63 pas (modèle adopté) ou de 64 programmes de 127 pas
(*) 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.
- NormO
- Sélectionne le mode NormO (NormalOne)
pour lecture en boucle d'un programme unique (celui en cours de
sélection)
- NormA
- Sélectionne le mode NormA (NormalAll)
pour lecture en boucle d'une succession de programmes
- Prog
- Permet de passer en mode programmation, dans
lequel l'utilisateur peut modifier et enregistrer des séquences
- Manual
- Dans ce mode, les sorties sont commandées manuellement avec les
boutons L1 à L16.
- Bank+
et Bank- -
Actuellement non utilisés
- Prog+
et Prog- -
Permettent de choisir la séquence à jouer ou à modifier
- Step+
et Step- -
Permettent de se déplacer dans le programme en cours, soit pour
visualisation soit pour modification
- BlackOut
- Permet de désactiver instantanément toutes les sorties, quel que soit
le mode en cours (contenu programmes non modifié)
- BlackoutOff
- Permet de réactiver instantanément les sorties qui étaient
actives juste avant un Blackout
- Run
- Démarre le programme actuellement sélectionné, uniquement si le mode
en cours est NormO ou NormA. Si le mode NormO est sélectionné, alors le
même programme tourne en boucle. Si le mode NormA est sélectionné,
alors tous les programmes se succèdent.
- Stop
- Arrêt du défilement du programme en cours.
- L1 à L16
- Permettent de spécifier l'état de chacune des 16 sorties, de façon
individuelle, en mode programmé ou manuel.
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 :
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.
- La méthode
minimale consiste simplement à allumer des LED, une par
sortie (L1 à L16).
- La méthode
luxueuse
consiste à allumer ou éteindre des segments sur un second
afficheur numérique de 8 digits, AFF2. Chaque "bâton"
représente
une sortie, et sa hauteur indique l'état : bâton court si sortie
désactivée, bâton long si sortie activée.
Je l'ai dit, c'est une solution luxueuse qui n'apporte pas grand chose
aux LED simples... c'est juste pour le fun ;)
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.