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

Dernière mise à jour : 10/09/2009

Présentation

Ce chenillard produit des figures lumineuses similaires à celles produites par le "système K2000", et est composé de 2 x 10 leds placées sur un axe symétrique horizontal. Les figures sont codées en "dur" et ne peuvent pas être modifiées sauf si vous retouchez au code source (fourni) et que vous le recompilez. La vitesse est ajustable au moyen d'un réglage matériel (potentiomètre) et/ou logiciel (boutons poussoir "plus vite" et "moins vite").

Le schéma

Ce schéma est plus simple que celui du chenillard 006c qui a servi de base, mais possède deux fois plus de leds.

chenillard_013

Choix des leds
Les leds du schéma ci-avant sont représentées par deux bargraphes, mais il va de soi que des leds standards ou haute luminosité conviennent tout à fait, dès l'instant où leur courant nominal ne dépasse pas 20 mA. Si leur courant nominal est supérieur à cette valeur, il convient d'ajouter un transistor additionnel sur chaque sortie (un simple 2N2222 avec une résistance de base de 2,2 KO permet de monter à 500 mA sans problème).

Les figures lumineuses
Elles sont définies par la mise à l'état logique haut des sorties 0 à 3 du port A et des sorties 0 à 5 du port B du PIC, via quelques lignes de code assez simples à comprendre :

procedure Out_RefreshPort;
begin
PORTA.0 := OutData.0;
PORTA.1 := OutData.1;
PORTA.2 := OutData.2;
PORTA.3 := OutData.3;
PORTB.0 := OutData.4;
PORTB.1 := OutData.5;
PORTB.2 := OutData.6;
PORTB.3 := OutData.7;
PORTB.4 := OutData.8;
PORTB.5 := OutData.9;
end;


Les états individuels de chacune de ces dix sorties sont stockés dans une variable de type word appelée OutData, qui elle-même est modifiée à intervalles réguliers dans le corps principal du programme :

case idx of
0 : OutData := %0000000000000000;
1 : OutData := %0000000000000001;
2 : OutData := %0000000000000011;
3 : OutData := %0000000000000111;
4 : OutData := %0000000000001111;
5 : OutData := %0000000000011111;
6 : OutData := %0000000000111111;
7 : OutData := %0000000001111111;
8 : OutData := %0000000011111111;
9 : OutData := %0000000111111111;
10 : OutData := %0000001111111111;
11 : OutData := %0000001111111110;
12 : OutData := %0000001111111100;
13 : OutData := %0000001111111000;
14 : OutData := %0000001111110000;
15 : OutData := %0000001111100000;
16 : OutData := %0000001111000000;
17 : OutData := %0000001110000000;
18 : OutData := %0000001100000000;
19 : OutData := %0000001000000000;
20 : OutData := %0000000000000000;
21 : OutData := %0000001000000000;
22 : OutData := %0000001100000000;
23 : OutData := %0000001110000000;
24 : OutData := %0000001111000000;
25 : OutData := %0000001111100000;
26 : OutData := %0000001111110000;
27 : OutData := %0000001111111000;
28 : OutData := %0000001111111100;
29 : OutData := %0000001111111110;
30 : OutData := %0000001111111111;
31 : OutData := %0000000111111111;
32 : OutData := %0000000011111111;
33 : OutData := %0000000001111111;
34 : OutData := %0000000000111111;
35 : OutData := %0000000000011111;
36 : OutData := %0000000000001111;
37 : OutData := %0000000000000111;
38 : OutData := %0000000000000011;
39 : OutData := %0000000000000001;
end;
Out_RefreshPort;


Comme une variable de type word comporte 16 bits et que l'on travaille ici avec seulement dix sorties, les six bits de poids fort ne sont pas utilisés du tout et sont toujours positionnés à 0.

Vitesse de défilement
En mode automatique, la vitesse de défilement des leds est ajustable de deux façons combinées : de façon "matérielle" avec le potentiomètre RV1, et de façon "logicielle" avec les boutons poussoir SW1 (SpeedDown, ralentissement) et SW2 (SpeedUp, accélération). Pour diminuer la vitesse (rendre plus lent le défilement des leds), vous pouvez augmenter la valeur du condensateur C1, et/ou augmenter la valeur du potentiomètre RV1 (100K ou 220K, voire plus). Et pour augmenter la vitesse (rendre plus rapide le défilement des leds), vous pouvez diminuer la valeur du condensateur C1, et éventuellement descendre la valeur de R13 à 2,2 KO.

Procédure de réglage
- Placer le potentiomètre de réglage RV1 à mi-course.
- Appuyer une ou plusieurs fois sur les boutons SW1 et/ou SW2 pour atteindre la vitesse désirée, ou pour atteindre une vitesse "médiane".
Par la suite, la vitesse peut être augmentée ou diminuée grâce au potentiomètre RV1.
Si les boutons poussoir vous gênent (usage à vitesse fixe sur une voiture, par exemple), soyez rassurés : vous pouvez les supprimer une fois le réglage effectué. la dernière vitesse programmée par ces derniers est sauvegardée en mémoire (EEPROM) et est rappelé à chaque remise sous tension.

Fichiers Sources et Binaire

Code source au format MikroPascal (Pro V2.50), et fichier binaire compilé (hex) prêt à charger dans le PIC avec le programmateur de votre choix.
Chenillard 013 - 16F628A.zip (version du 10/09/2009)
Si vous souhaitez recevoir par la poste un PIC préprogrammé et prêt à utiliser, merci de consulter la page PIC - Sources.

Le circuit imprimé

Non réalisé.