Electronique > Réalisations > Jeux de lumière > Chenillard 003 > Chenillard 003c

Dernière mise à jour : 22/12/2013

Présentation

Chenillard 8 voies à base de PIC 16F628 ou 16F628A. Plusieurs programmes internes offrant chacun une suite de plusieurs figures, qui peuvent se succéder les uns aux autres de façon automatique ou de façon manuelle, au choix de l'utilisateur.

chenillard_003c_16f628a_pcb_3d_a

Ce chenillard est le successeur du chenillard 003a basé sur un 16F84A, et présente plus de figures préprogrammées (ceci dit vous pouvez toujours vous faire plaisir avec le chenillard 003a s'il vous reste des 16F84A qui dorment dans un tiroir). Les PIC 16F628 et 16F628A diffèrent légèrement dans leur mise en oeuvre physique et logicielle, c'est pourquoi vous trouverez ici deux schémas différents et deux ensembles de fichiers différents pour la programmation du PIC, selon le modèle que vous choisirez.

Remarque : au départ, je n'avais prévu de travailler qu'avec le 16F628A et non avec le 16F628. Un internaute m'a envoyé des PIC 16F628 après m'avoir demandé si je pouvais lui mettre dedans le programme de mon chenillard 003c. Comme j'ai débuté avec le 16F628A sans avoir au préalable travaillé avec le 16F628, j'ai vite constaté que l'échange n'était pas aussi simple, mon programme pour 16F628A ne fonctionnait pas pour le 16F628. Après quelques recherches sur le net, j'ai vite compris que la raison principale en était les modes d'oscillateurs externes qui différaient, et ai adapté ce qu'il fallait pour que le programme tourne avec l'un ou l'autre (avec deux fichiers binaires différents à la clé bien entendu).

Schéma avec PIC 16F628A (conseillé)

Le circuit est fonctionnel, il m'a suffit de modifier un peu le code que j'avais employé pour mon chenillard 003a et de le recompiler, afin que le fichier binaire (*.hex) soit correctement digéré par le 16F628A. Le schéma de l'ancien chenillard et du nouveau sont donc identiques, au type de PIC près.

chenillard_003c_16F628A

Oscilateur / horloge
L'horloge assurant le cadencement des instructions du PIC n'a nullement besoin d'être très stable, et un simple réseau RC (C1 / R14 + RV1) suffit amplement. Et hop, économie d'un quartz ! La vitesse est réglable de deux façons :
- par le biais du potentiomètre RV1, qui joue directement sur la fréquence de base du cadencement des instructions du PIC, et
- par voie logicielle, avec une routine dotée d'une variable incrémentée à chaque interruption du Timer 0.
En pratique, le potentiomètre RV1 est placé en position médiane, et la vitesse est ajustée par des boutons poussoir "SpeedUp" (Plus vite) et SpeedDown" (Moins vite) reliés au port B du PIC. Mais rien ne vous interdit de faire comme bon vous semble, c'est bien la pratique qui dictera la meilleur méthode. A noter que sur mon proto, l'oscillateur fonctionnait en l'absence du condensateur C1, comme au bon vieux temps avec le PIC 16F628 et sa simple résistance externe. Si la plage de réglage du potentiomètre ne vous convient pas (ça peut bloquer aux extrêmes), modifiez le réseau RC câblé sur la broche RA7 du PIC (par exemple 1,8 kO fixe + 4,7 kO ajustable).

Interrupteur et poussoirs
Ce chenillard dispose de cinq boutons de commande, qui jouent les rôles suivants :

Alimentation
J'ai utilisé un petit régulateur de tension tripode de type LM7805 pour fournir au PIC une tension stabilisée de +5 V à partir d'une pile 9 V.

chenillard_003c_alim_regul

Je l'ai prévu sur le circuit imprimé que j'ai réalisé, mais celà n'est pas obligatoire, vous pouvez tout à fait vous passer du régulateur et utiliser une pile plate de 4,5 V.

Schéma avec PIC 16F628

La seule différence de cablage physique réside au niveau de l'oscillateur. Le 16F628A réclame un circuit externe RC (résistance + condensateur) pour son mode de fonctionnement "oscillateur RC" (RC = Resistor / Capacitor), alors que le 16F628 ne demande qu'une résistance externe pour son mode de fonctionnement "oscillateur ER" (ER = External Resistor).

chenillard_003c_16F628

On supprime donc ici le condensateur C1 qui était auparavant associé à R14 et RV1, et on cable la "résistance externe" constituée de RV1 et de R14, entre la borne 16 (OSC1) et la masse. Tout le reste ne subit aucune modification.

Prototypes

-
Premier prototype
Les deux premiers protos, avec 16F628 et 16F628A, ont été réalisés sur plaque d'expérimentation sans soudure.

chenillard_003c_proto_001a
Proto avec 16F628A

L'oeil informé et attentif aura reconnu le circuit que j'avais déjà utilisé pour le chenillard 003a à base de 16F84A. Il m'a en effet suffit de sortir le 16F84A de son "support" et de le remplacer par son successeur 16F628A... pour constater après mise sous tension que les trois premières leds ne s'allumaient pas correctement. Elles s'allumaient bien quand il le fallait, mais avec une intensité lumineuse faible. Hum... quelques secondes de reflexion, et déclic, je me dit que j'ai du oublier de désactiver les comparateurs du 16F628A. Je recherche la fameuse ligne CMCON = 7, que je ne trouve évidement pas dans mon code. Je l'ajoute, et hop, problème résolu. J'aurais pû chercher plus longtemps, du fait que les leds émettaient tout de même de la lumière... Bref, tout ça pour dire que le code était bien digéré par mon simulateur, qui n'y voyait que du feu, et le code publié ici avant le 21/10/2008 n'était donc pas correct à 100%. Mais si vous vous souvenez bien, j'avais justement précisé que la simulation fonctionnait bien mais qu'il fallait attendre la réception de mes PICs pour confirmer le bon fonctionnement dans le monde réel.

Deuxième prototype
Réalisé selon dessin de circuit imprimé proposé plus loin.

chenillard_003c_ci_001a chenillard_003c_ci_001b

Sur la deuxième photo du CI réalisé, on peut voir trois commutateurs, au lieu de cinq comme sur le schéma électronique. La raison en est simple : les deux boutons poussoir utilisés pour la vitesse sont remplacés par un unique inverseur de type ON-OFF-ON momentanné (dès qu'on le lache, l'axe mécanique revient en position centrale). Même chose pour les deux boutons poussoirs pour avancer ou reculer dans les numéros de programmes. Cette idée m'a été proposée par un internaute qui a réalisé le chenillard, je l'ai trouvée bonne et l'ai appliquée.

Prototype de Jean-Luc F.
Réalisé en "miniature" pour ses enfants.

chenillard_003c_proto_jlf_001a chenillard_003c_proto_jlf_001b chenillard_003c_proto_jlf_001c

C'est tout mignon, non ?

Circuit imprimé

Réalisé en simple face.

chenillard_003c_16f628a_pcb_composants

Typon aux format PDF, EPS et Bitmap 600 dpi

Fichiers Sources et Binaire

Code source au format MikroPascal, et fichier binaire compilé (hex) prêt à charger dans le PIC avec le programmateur de votre choix.
Chenillard 003c - 16F628A.zip - Pour 16F628A, version du 28/12/2011
Chenillard 003c - 16F628.zip - Pour 16F628, version du 28/10/2008
Si vous souhaitez recevoir par la poste un PIC préprogrammé et prêt à utiliser, merci de consulter la page PIC - Sources.

Historique

22/12/2013
- Ajout infos concernant l'oscillateur du PIC 16F628A. Les deux derniers PIC que j'ai programmés (17/12/2013) avec le programme proposé ici fonctionnaient sans le condensateur C1, et j'ai diminué la valeur des résistances fixe et ajustable reliées sur la broche RA7.
01/01/2012
- Correction erreur mineure dans code logiciel du PIC 16F628A : le bit BODEN était activé au lieu d'être désactivé. Sans aucune conséquence avec une alimentation stable, mais reset automatique possible du PIC avec une pile ou un accu faible au moment où toutes les LED s'allument (par exemple usage d'accu 4,8 V alimentant directement le PIC, sans passer par un régulateur).