Electronique > Réalisations > Jeux de lumière > Chenillard 021

Dernière mise à jour : 05/11/2012

Présentation

Ce chenillard est basé sur l'emploi d'un PIC de type 16F628A.

chenillard_021_pcb_3d_a

Encore un chenillard ? Oui, mais celui-là a quelques particularités qui le distinguent des précédents. Voici ses caractéristiques principales :
- les sorties peuvent être activées selon un mode "point" (une seule LED allumée à la fois) ou un mode "barre" (plusieurs LED peuvent être allumées en même temps).
- il est possible de spécifier le nombre de sorties activables, de 1 à 10, avant retour au point de départ (toutes LED éteintes).
- un signal sonore est produit à chaque avancée. Il est identique pour chaque étape sauf pour la dernière.
Le passage d'une configuration de sortie (étape) à la suivante se fait de façon manuelle via un bouton poussoir, mais peut être commandé par un signal externe. Le but de ce montage est de montrer qu'on peut réaliser un "chenillard / séquenceur" avec des actions qui peuvent être spécifiques pour chaque étape.

Schéma

Un schéma plutôt simple et aéré, au vu de ses caractéristiques.

chenillard_021

Fonctionnement général
Juste après la mise sous tension, le programme du PIC entame une petite animation lumineuse pour signaler que tout va bien (que le programme tourne correctement). Si rien ne se passe, vérifier la configuration des fusibles. Ensuite, il reste en attente de commande de la part de l'utilisateur et ne fait rien (si ce n'est d'attendre, ce qui est déjà quelque chose, j'en conviens). Les interruptions sur les quatres broches RB4 à RB7 du PIC sont activées, ce qui permet au logiciel de réagir quand il se passe quelque chose au niveau des boutons poussoirs SW1 à SW3. La broche RB4 étant utilisée en sortie pour piloter la dernière LED (D10), l'interruption sur cette broche ne sera jamais utilisée.
Le mode d'affichage "point" ou "barre" est défini par l'état logique de la broche RA6 du PIC, configurée en entrée :
Remarque : le changement de position du cavalier JP1 ne modifie pas l'affichage en cours. On ne voit le changement de mode d'affichage que lors de l'appui suivant sur SW1.

Générateur sonore
Un son est produit à chaque nouvel appui sur SW1 / Go. Ce son peut être un peu de n'importe quel type, fixe ou glissant. Il peut même s'agir d'une (très courte) mélodie. J'aurais pu utiliser la procédure Sound_Play incluse dans MikroPascal, mais j'ai préféré utiliser une des procédures que j'avais développées dans ma sirène 007 à base de PIC 12F675, et qui donne un son de type "laser", passant rapidement de l'aigu au grave (tout autre choix est bien sûr permis).

procedure Out_DoSound_1;
var
i, iDelay, iPeriod: byte;
begin
for iDelay := 1 to 100 do
begin
for iPeriod := 0 to 5 do
begin
Out_Sound := Out_Sound xor 1;
for i := 0 to iDelay do
delay_us(1);
end;
end;
Out_Sound := 0; // important, éviter toute tension continue sur le piezo
end;


La sortie sonore se fait grâce à un transducteur de type piezo directement raccordé sur la sortie RA7 du PIC et référencé par rapport à la masse.
Voir aussi page Programmation PIC - Bases - MP - Production sonore si le sujet vous intéresse.
Pour jouer un fichier sonore complexe (parole, musique, effets spéciaux), on peut envisager l'emploi d'un lecteur externe de fichiers MP3 (sur carte SD ou clé USB) qui est piloté par le PIC via une liaison de type I2C ou SPI (deux fils requis). Dans le cas présent il n'y a plus de lignes libre sur le PIC mais cela pourrait s'arranger de deux façons :
- soit en utilisant un PIC avec plus de broches (un de la famille 18F qui ne coûte pas forcement plus cher);
- soit en supprimant les deux poussoirs SW2 et SW3 pour faire de la place.
Pour une sortie audio de plus forte puissance, il faut amplifier en courant le signal sortant sur RA7 avec un amplificateur comme un de ceux proposés à la page amplificateurs audio pour signaux logiques.

Oscillateur PIC
On ne va surtout pas s'encombrer d'un quartz ou d'un résonateur céramique pour ce genre d'application. Aussi utilisons-nous avec modestie l'oscillateur 4 MHz intégré au PIC. Cette vitesse d'horloge de 4 MHz est amplement suffisante pour gérer tout ce qu'on veut, y compris la génération des sons. Mais la raison réelle, je dois l'avouer, est de pouvoir disposer de deux broches d'entrée / sortie supplémentaires (RA6 et RA7).

Sorties
Rien de spécial à dire de ce côté, chaque LED est raccordée à une sortie individuelle à travers une résistance de limitation de courant. N'hésitez pas à employer des LED haute luminosité pour limiter le courant consommé par l'ensemble. Songez en effet que si les dix LED sont allumées en même temps et que chacune est parcourue par un courant de 20 mA (valeur standard pour une LED classique), alors la consommation globale grimpe à 200 mA. Bien sûr il n'est pas difficile de recourir à une alimentation secteur capable de débiter un tel courant. Mais si on peut limiter cette consommation pas forcément utile, profitons-en. La commande d'ampoules reliées au secteur 230 V est tout à fait envisageable, il suffit de remplacer chaque LED par une interface secteur isolée dotée d'un optotriac et d'un triac. Vous pouvez aussi utiliser de simples transistors associés aux triacs, comme adopté dans le chenillard 020. mais dans ce cas attention, plus de danger potentiel puisqu'une borne du secteur est reliée au circuit de commande.
 

Code source et fichier compilé

Code source MikroPascal Pro V5.30 et fichier binaire compilé (*.hex) prêt à flasher dans le PIC, dans l'archive zip suivante :
Chenillard_021 - 16F628A (version du 05/11/2012)
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é, vue 3D pour aperçu des composants utilisés.

Historique

05/11/2012
- Première mise à disposition.